wsqWD

Dependencies:   4DGL-uLCD-SE MMA8452Q2

Files at this revision

API Documentation at this revision

Comitter:
lukeamlicke
Date:
Wed Apr 01 15:06:02 2020 +0000
Commit message:
fhdfgh

Changed in this revision

4DGL-uLCD-SE.lib Show annotated file Show diff for this revision Revisions of this file
MMA8452Q2.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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4DGL-uLCD-SE.lib	Wed Apr 01 15:06:02 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/sparkfun/code/4DGL-uLCD-SE/#e39a44de229a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MMA8452Q2.lib	Wed Apr 01 15:06:02 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/lukeamlicke/code/MMA8452Q2/#6285eaac7766
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 01 15:06:02 2020 +0000
@@ -0,0 +1,57 @@
+// Demo for the uLCD-144-G2 and MMA8452Q 3-axis accelerometer
+
+#include "mbed.h"
+#include "MMA8452Q.h"
+#include "uLCD_4DGL.h"
+
+// Graphic LCD - TX, RX, and RES pins
+uLCD_4DGL uLCD(p9,p10,p11);
+
+// Accelerometer - SDA, SCL, and I2C address
+MMA8452Q accel(p28, p27, 0x1D);
+
+int main() {
+
+    // Initialize uLCD
+    uLCD.baudrate(115200);
+    uLCD.background_color(BLACK);
+    uLCD.cls();
+
+    // Initialize accelerometer
+    accel.init();
+
+    // Initial parameters for the circle
+    float x = 64;
+    float y = 64;
+    int radius = 4;
+    int speed = 4;
+
+    // Make a ball "fall" in direction of accelerometer
+    while (1) {
+
+        // Draw a red circle
+        uLCD.filled_circle((int)x, (int)y, radius, RED);
+
+        // Wait before erasing old circle
+        wait(0.02);         // In seconds
+
+        // Erase old circle
+        uLCD.filled_circle((int)x, (int)y, radius, BLACK);
+
+        // Move circle. IMPORTANT! Notice how we adjust for sensor orientation!
+        x -= (speed * accel.readY());
+        y -= (speed * accel.readX());
+
+        // Make circle sit on edges
+        if ( x <= radius + 1 ) {
+            x = radius + 1;
+        } else if ( x >= 126 - radius ) {
+            x = 126 - radius;
+        }
+        if ( y <= radius + 1 ) {
+            y = radius + 1;
+        } else if ( y >= 126 - radius ) {
+            y = 126 - radius;
+        }
+    }
+}