Publish
Dependencies: mbed MMA8452Q 4DGL-uLCD-SE
main.cpp
- Committer:
- daroldkellyjr
- Date:
- 2022-05-12
- Revision:
- 0:ba1ff21c7bad
File content as of revision 0:ba1ff21c7bad:
/*------------------------------------------------------------- //-------------------------------------------------------------\\ || Bought to you by.... || || _____ _ _ || || \ _ \ _ _ | | / / _ _ _ _ || || | | | |__ ___ ___ | | __| | | |/ /___ | | | |\ \ / / || || | | | | -\ - \ __ \ |/ _` | | / __\| | | | \ \/ / || || | |/ | \ _ / __| || (_| | | |\ \ _\| | | | | | || || /____/ _/\_\ \_\ __/_|\__,_| |_| \_\____\| |_| |_| || || Electrical Engineer @ University of the District of Colombia || || || || Date: 5/11/22 || || || || Description: MECH478 CBE Completion Project || || || \\-------------------------------------------------------------// ------------------------------------------------------------- */ // 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; } } }