a cool bubble game

Dependencies:   DmTouch_UniGraphic UniGraphic mbed

Fork of DAY_8_miniproject by Ishan Gauli

Revision:
0:4898efdb611a
diff -r 000000000000 -r 4898efdb611a main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jan 12 23:17:49 2017 +0000
@@ -0,0 +1,297 @@
+/* Do not publish changes to this program back to the remote repository.  Fork your own copy, or else */
+#include "stdio.h"
+#include "mbed.h"
+#include "string"
+#include "ILI932x.h"
+#include "DmTouch.h"
+
+
+#include "Arial12x12.h"
+#include "Arial24x23.h"
+#include "pavement_48x34.h"
+
+Serial pc(USBTX, USBRX);
+DigitalIn x_up(p6);
+DigitalIn x_down(p5);
+AnalogIn Ain(p19);
+DigitalIn slide(p9);
+
+/* Configure the DisplayModule ILI9325 2.4" display for 8-bit bus communication
+
+    mbed pin    display pin
+    --------    -----------
+    p15         CS (L15)
+    p17         RST (L17)
+    p16         RS (L4)
+    p14         WR (L5)
+    p20         RD (L6)
+    
+    p30         DB8 (L7)
+    p29         DB9 (L8)
+    p28         DB10 (L9)
+    p27         DB11 (L10)
+    p26         DB12 (L11)
+    p25         DB13 (L12)
+    p24         DB14 (L13)
+    p23         DB15 (L14)
+    
+    p1          GND (L1)
+    p40         Vin (L2)
+    p40         LED Backlight (L19)
+*/  
+PinName dataBus[]= {p30, p29, p28, p27, p26, p25, p24, p23};
+ILI932x myLCD(BUS_8, dataBus, p15, p17, p16, p14, p20, "myLCD", 240, 320); // Bus 8 bit, bus pin array, CS, RST, DC, WR, RD, name, xpixels, ypixels
+
+/* Additional connections to add touch response
+
+    mbed pin    display pin
+    --------    -----------
+    p5          T_MOSI (R11)
+    p6          T_MISO (R13)
+    p7          T_CLK (R9)
+    p8          T_CS (R10)
+    p9          T_IRQ (R14)
+*/
+DmTouch touch(DmTouch::DM_TFT24_104, p5, p6, p7, p8, p9);
+
+char orient=3;
+int x,y;
+uint16_t tx, ty;
+Timer t;
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+SPI acc(p5,p6,p7);
+DigitalOut cs(p14);
+char buffer[6];
+int16_t data[3];
+float x1,y1,z1;
+int main()
+{
+    
+
+
+int main(){
+    cs=1;
+    acc.format(8,3);
+    acc.frequency(2000000);
+    cs=0;
+    acc.write(0x31);
+    acc.write(0x0B);
+    cs=1;
+    cs=0;
+    acc.write(0x2D);
+    acc.write(0x08);
+    cs=1;
+    while(1){
+        wait(0.2);
+        cs=0;
+        acc.write(0x80|0x40|0x32);
+        for(int i = 0; i <=5;i++){
+            buffer[i] = acc.write(0x00);
+            }
+        cs=1;
+        data[0]= buffer[1]<<8 |buffer[0];
+        data[1] = buffer[3]<<8|buffer[2];
+        data[2]= buffer[5]<<8 |buffer[4];
+        x1=0.004*data[0];
+        y1 = 0.004*data[1];
+        z1 = 0.004*data[2];
+        pc.printf("x = %+1.2fg\t y = %+1.2fg\t z = %1.2fg\n\r", x1,y1,z1);
+        }    
+    
+
+    
+    //Day 8 Lab 2
+    /*int y_pos = 120,x_pos = 160; //Just Variables for x-axis and y-axis
+    while (1) {
+            
+        if (!slide){
+            myLCD.cls();
+            }
+            
+        y_pos = Ain*240;            //converts to pixals   
+        
+        if (x_up == 1){
+            if (x_pos >= 320)
+                x_pos = 314;
+            wait(0.08);
+            x_pos = x_pos + 1;
+            led1 = 1;
+        }   
+        if (x_down == 1){
+            if (x_pos <= 0)
+                x_pos = 5;
+            wait(0.08);
+            x_pos = x_pos - 1;
+            led2 = 1;
+            }
+        myLCD.locate(y_pos,x_pos);
+        myLCD.pixel(y_pos,x_pos,White);
+        }*/
+    /*
+    
+    bool down, lastDown;
+    touch.init();
+    t.start();
+    myLCD.set_orientation(orient);
+    myLCD.set_font((unsigned char*) Arial24x23);
+    myLCD.background(Blue);    // set background to Blue
+    myLCD.foreground(White);    // set chars to White
+    myLCD.cls();                // clear the screen
+    myLCD.locate(10,30);
+    myLCD.printf("UniGraphics Demo\r\n");
+    wait(2);
+    
+    while(1)
+    {
+        myLCD.cls();  // clear the screen
+        myLCD.set_font((unsigned char*) Arial24x23);
+        myLCD.locate(0,30);
+        myLCD.printf("Orientation mode: %x\r\n", orient%4);
+        wait(2);
+        myLCD.printf("Font is\r\n");
+        myLCD.printf("Arial24x23\r\n");
+        wait(2);
+        
+        myLCD.background(Black);
+        myLCD.foreground(White);
+        myLCD.cls();                // clear the screen
+        myLCD.set_font((unsigned char*) Arial12x12);
+        myLCD.locate(0,10);
+        myLCD.printf("Font changed to Arial12x_pos2\r\n");
+        myLCD.printf("Background and foreground color also changed.\n\r\n\r");
+        wait(2);
+        myLCD.printf("Notice that if some text is too long to fit the width of the screen that it is automatically wrapped to the next line.\r\n\r\n");
+        wait(2);
+        myLCD.set_font((unsigned char*) Terminal6x8);
+        myLCD.printf("Font changed to Terminal6x8\r\n");
+        myLCD.printf("This is pretty small!\r\n");
+        wait(2);
+        
+        myLCD.cls();
+        myLCD.set_font((unsigned char*) Arial24x23);
+        myLCD.locate(10,10);
+        myLCD.printf("Draw lines\n\r");
+        myLCD.line(0,50,myLCD.width()-1,50,Yellow);
+        myLCD.line(myLCD.width()-50,51,myLCD.width()-50,myLCD.height()-1,Green);
+        wait(2);        
+        
+        myLCD.cls();
+        myLCD.locate(10,10);
+        myLCD.printf("Draw rectangles");
+        myLCD.rect(10,50,50,80,Red);
+        myLCD.rect(15,55,45,75,Red);
+        myLCD.rect(20,60,40,70,Red);
+        myLCD.fillrect(160,130,200,240,Blue);
+        wait(2);
+        
+        myLCD.cls();
+        myLCD.locate(10,10);
+        myLCD.printf("Draw circles");
+        myLCD.circle(150,132,30,Yellow);
+        myLCD.fillcircle(140,70,25,Cyan);
+        wait(2);
+        
+        myLCD.cls();
+        myLCD.set_font((unsigned char*) Arial12x12);
+        myLCD.locate(10,10);
+        myLCD.printf("Draw function with pixels");
+        double s;
+        for (unsigned short i=0; i<myLCD.width(); i++)
+        {
+        s =10 * sin((long double) i / 10 );
+        myLCD.pixel(i,80 + (int)s ,White);
+        }
+        wait(3);
+        
+        // Touch screen demo
+        myLCD.background(Blue);    // set background to Blue
+        myLCD.foreground(White);    // set chars to White
+        myLCD.cls();                // clear the screen
+        myLCD.locate(10,30);
+        myLCD.set_font((unsigned char*) Arial24x23);
+        myLCD.printf("DmTouch Demo\r\n");
+        myLCD.set_font((unsigned char*) Arial12x12);
+        myLCD.locate(10,70);
+        myLCD.printf("Coming soon...\r\nTouch screen and coordinates will display\r\n");
+        myLCD.printf("Moves to next portion of demo after 30 seconds\r\n");
+        wait(2);
+        myLCD.background(Black);    // set background to Black
+        myLCD.foreground(White);    // set chars to White
+        myLCD.cls();                // clear the screen
+
+        touch.setOrientation(orient);
+        down = false;
+        lastDown = false;
+        tx = (uint16_t)0;
+        ty = (uint16_t)0;
+        myLCD.locate(20,20);
+        myLCD.printf("x:");
+        myLCD.locate(100, 20);
+        myLCD.printf("y:");
+
+        t.reset();
+        while (t.read()<30) {
+            touch.readTouchData(tx, ty, down);
+            if (down) {
+                myLCD.locate(40, 20);
+                myLCD.printf("%5i", tx);
+                myLCD.locate(120, 20);
+                myLCD.printf("%5i", ty);
+                myLCD.fillcircle(tx, ty, 2, Red);
+            } else if (lastDown) {
+                // no longer pressed, clean text
+                myLCD.locate(40, 20);
+                myLCD.printf("     ", tx);
+                myLCD.locate(120, 20);
+                myLCD.printf("     ", ty);
+            }
+            wait(0.040);
+            lastDown = down;
+          }
+        
+        
+    // scroll test, only for TFT
+    myLCD.cls();
+    myLCD.set_font((unsigned char*) Arial24x23);
+    myLCD.locate(2,10);
+    myLCD.printf("Scrolling");
+    myLCD.rect(0,0,myLCD.width()-1,myLCD.height()-1,White);
+    myLCD.rect(1,1,myLCD.width()-2,myLCD.height()-2,Blue);
+    myLCD.setscrollarea(0,myLCD.sizeY());
+    wait(1);
+    myLCD.scroll(1); //up 1
+    wait(1);
+    myLCD.scroll(0); //center
+    wait(1);
+    myLCD.scroll(myLCD.sizeY()-1); //down 1
+    wait(1);
+    myLCD.scroll(myLCD.sizeY()); // same as 0, center
+    wait(1);
+    myLCD.scroll(myLCD.sizeY()>>1); // half screen
+    wait(1);
+    myLCD.scrollreset(); // center
+    wait(1);
+    for(unsigned short i=1; i<=myLCD.sizeY(); i++)
+    {
+        myLCD.scroll(i);
+        wait_ms(2);
+    }
+    wait(2);
+    // color inversion
+    for(unsigned short i=0; i<=8; i++)
+    {
+        myLCD.invert(i&1);
+        wait_ms(200);
+    }
+    wait(2);
+    // bmp 16bit test
+    myLCD.cls();
+    for(int y=0; y<myLCD.height(); y+=34)
+    {
+        for(int x=0; x<myLCD.width(); x+=48) myLCD.Bitmap(x,y,48,34,(unsigned char *)pavement_48x34);
+    }
+    wait(2);
+    myLCD.set_orientation((++orient)%4);
+    }*/
+}
\ No newline at end of file