Mini SmartGPU Intelligent Graphics Processor- Vizic Technologies 2012

Dependencies:   MINISMARTGPU mbed

Files at this revision

API Documentation at this revision

Comitter:
emmanuelchio
Date:
Thu Aug 30 21:52:13 2012 +0000
Commit message:
Mini SmartGPU Intelligent Graphics Processor- Vizic Technologies 2012

Changed in this revision

MINISMARTGPU.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MINISMARTGPU.lib	Thu Aug 30 21:52:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/emmanuelchio/code/MINISMARTGPU/#83a75a056cfa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Aug 30 21:52:13 2012 +0000
@@ -0,0 +1,141 @@
+/*********************************************************
+VIZIC TECHNOLOGIES. COPYRIGHT 2012.
+THE DATASHEETS, SOFTWARE AND LIBRARIES ARE PROVIDED "AS IS." 
+VIZIC EXPRESSLY DISCLAIM ANY WARRANTY OF ANY KIND, WHETHER 
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
+OR NONINFRINGEMENT. IN NO EVENT SHALL VIZIC BE LIABLE FOR 
+ANY INCIDENTAL, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, 
+LOST PROFITS OR LOST DATA, HARM TO YOUR EQUIPMENT, COST OF 
+PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES, 
+ANY CLAIMS BY THIRD PARTIES (INCLUDING BUT NOT LIMITED TO 
+ANY DEFENCE THEREOF), ANY CLAIMS FOR INDEMNITY OR CONTRIBUTION,
+OR OTHER SIMILAR COSTS.
+*********************************************************/
+/**************************************************************************************/
+/*MINI SMARTGPU intelligent embedded graphics processor unit
+ those examples are for use the MINI SMARTGPU with the mbed microcontoller, just connect tx,rx,and reset
+ Board:
+ http://vizictechnologies.com/#/mini-smart-gpu/4566376187
+ 
+ www.vizictechnologies.com 
+ Vizic Technologies copyright 2012*/
+/**************************************************************************************/
+/**************************************************************************************/
+ 
+#include "mbed.h"
+#include "MINISMARTGPU.h"
+
+MINISMARTGPU lcd(p13,p14,p15);        //(TX,RX,Reset); Create Object "lcd"
+
+// defines for balls
+#define radiusBall1 10     //ball1 size
+#define colourBall1 GREEN  //ball1 colour
+#define radiusBall2 5      //ball2 size
+#define colourBall2 YELLOW //ball2 colour
+#define radiusBall3 8      //ball3 size
+#define colourBall3 RED    //ball3 colour
+#define radiusBall4 15     //ball4 size
+#define colourBall4 BLUE   //ball4 colour
+
+//variables used by move ball methods
+int speedBall1=2; //ball1 moving speed - amount of pixels that ball move each time
+int speedBall2=3; //ball2 moving speed - amount of pixels that ball move each time 
+int speedBall3=5; //ball3 moving speed - amount of pixels that ball move each time 
+int speedBall4=4; //ball4 moving speed - amount of pixels that ball move each time 
+int dirx1=1;      //xball1 initial positive direction
+int diry1=1;      //yball1 initial positive direction
+int xBall1=110;   //x initial position of ball1
+int yBall1=80;    //y initial position of ball1
+int dirx2=-1;     //xball2 initial negative direction
+int diry2=-1;     //yball2 initial negative direction
+int xBall2=20;    //x initial position of ball2
+int yBall2=70;    //y initial position of ball2
+int dirx3=-1;     //xball3 initial negative direction
+int diry3=1;      //yball3 initial negative direction
+int xBall3=60;    //x initial position of ball3
+int yBall3=15;    //y initial position of ball3
+int dirx4=1;      //xball4 initial negative direction
+int diry4=-1;     //yball4 initial negative direction
+int xBall4=130;   //x initial position of ball4
+int yBall4=80;    //y initial position of ball4
+
+/***************************************************/
+//Function that updates the current position of the ball1
+void moveBall1(){
+   lcd.drawCircle(xBall1,yBall1,radiusBall1,BLACK,UNFILL);       // Erase previous ball position
+   xBall1+=(dirx1*speedBall1);                                   // Calculate new x coordinate for ball1 
+   yBall1+=(diry1*speedBall1);                                   // Calculate new y coordinate for ball1  
+   lcd.drawCircle(xBall1,yBall1,radiusBall1,colourBall1,UNFILL); // Draw new ball position
+   if((xBall1+speedBall1+radiusBall1)>158 | (xBall1-speedBall1-radiusBall1)<=1){           // if ball reaches the left or right corner, we invert moving direction 
+    dirx1= dirx1*(-1);                                         // Invert the moving direction by multiplying by -1
+   }
+   if((yBall1+speedBall1+radiusBall1)>126 | (yBall1-speedBall1-radiusBall1)<=1){           // if ball reaches the top or bottom corner, we invert moving direction 
+    diry1= diry1*(-1);                                         // Invert the moving direction by multiplying by -1
+   }                       
+}
+
+/***************************************************/
+//Function that updates the current position of the ball2
+void moveBall2(){                    
+   lcd.drawCircle(xBall2,yBall2,radiusBall2,BLACK,FILL);       // Erase previous ball position
+   xBall2+=(dirx2*speedBall2);                                 // Calculate new x coordinate for ball2
+   yBall2+=(diry2*speedBall2);                                 // Calculate new y coordinate for ball2  
+   lcd.drawCircle(xBall2,yBall2,radiusBall2,colourBall2,FILL); // Draw new ball position
+   if((xBall2+speedBall2+radiusBall2)>158 | (xBall2-speedBall2-radiusBall2)<=1){  // if ball reaches the left or right corner, we invert moving direction
+    dirx2= dirx2*(-1);                                         // Invert the moving direction by multiplying by -1
+   }
+   if((yBall2+speedBall2+radiusBall2)>126 | (yBall2-speedBall2-radiusBall2)<=1){  // if ball reaches the top or bottom corner, we invert moving direction 
+     diry2= diry2*(-1);                                        // Invert the moving direction by multiplying by -1
+   }                        
+}
+
+/***************************************************/
+//Function that updates the current position of the ball3
+void moveBall3(){                    
+   lcd.drawCircle(xBall3,yBall3,radiusBall3,BLACK,FILL);       // Erase previous ball position
+   xBall3+=(dirx3*speedBall3);                                 // Calculate new x coordinate for ball3
+   yBall3+=(diry3*speedBall3);                                 // Calculate new y coordinate for ball3  
+   lcd.drawCircle(xBall3,yBall3,radiusBall3,colourBall3,FILL); // Draw new ball position
+   if((xBall3+speedBall3+radiusBall3)>158 | (xBall3-speedBall3-radiusBall3)<=1){  // if ball reaches the left or right corner, we invert moving direction
+    dirx3= dirx3*(-1);                                         // Invert the moving direction by multiplying by -1
+   }
+   if((yBall3+speedBall3+radiusBall3)>126 | (yBall3-speedBall3-radiusBall3)<=1){  // if ball reaches the top or bottom corner, we invert moving direction 
+     diry3= diry3*(-1);                                        // Invert the moving direction by multiplying by -1
+   }                        
+}
+
+/***************************************************/
+//Function that updates the current position of the ball4
+void moveBall4(){
+   lcd.drawCircle(xBall4,yBall4,radiusBall4,BLACK,UNFILL);       // Erase previous ball position
+   xBall4+=(dirx4*speedBall4);                                   // Calculate new x coordinate for ball4 
+   yBall4+=(diry4*speedBall4);                                   // Calculate new y coordinate for ball4  
+   lcd.drawCircle(xBall4,yBall4,radiusBall4,colourBall4,UNFILL); // Draw new ball position
+   if((xBall4+speedBall4+radiusBall4)>158 | (xBall4-speedBall4-radiusBall4)<=1){           // if ball reaches the left or right corner, we invert moving direction 
+    dirx4= dirx4*(-1);                                         // Invert the moving direction by multiplying by -1
+   }
+   if((yBall4+speedBall4+radiusBall4)>126 | (yBall4-speedBall4-radiusBall4)<=1){           // if ball reaches the top or bottom corner, we invert moving direction 
+    diry4= diry4*(-1);                                         // Invert the moving direction by multiplying by -1
+   }                       
+}
+
+/**********************************************************************************/
+/**********************************************************************************/
+/**********************************************************************************/
+int main() { 
+  lcd.reset();                    //physically reset MINISMARTGPU
+  lcd.start();                    //initialize the MINISMARTGPU processor
+  wait_ms(200);
+
+  lcd.baudChange(1000000); //set a fast baud! for fast drawing
+  lcd.drawRectangle(0,0,159,127,MAGENTA,UNFILL); //draw corners
+  
+  while(1){             // Loop forever
+    moveBall1();        // move ball1
+    moveBall2();        // move ball2
+    moveBall3();        // move ball3
+    moveBall4();        // move ball4
+    wait_ms(15);        // wait a little
+  }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Aug 30 21:52:13 2012 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/cd19af002ccc
\ No newline at end of file