Car safety project.

Dependencies:   mbed-os FXAS21000 FXOS8700Q

Revision:
2:d08625231a9f
Parent:
1:7a49fd0692fd
--- a/main.cpp	Mon Mar 07 00:30:36 2022 +0000
+++ b/main.cpp	Tue Apr 26 21:26:04 2022 +0000
@@ -1,13 +1,48 @@
 #include "mbed.h"
 #include "FXOS8700Q.h"
 #include "FXAS21000.h"
+#include "hcsr04.h"
     I2C i2c(PTE25, PTE24);
     Serial pc(USBTX,USBRX);
     FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1);    // Configured for the FRDM-K64F with onboard sensors
     FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1);
     FXAS21000 gyro(D14,D15);
+    HCSR04 usensor1(D8,D9);                     //ECHO Pin=D9, TRIG Pin=D8
+    HCSR04 usensor2(D7,D6);                     //ECHO Pin=D7, TRIG Pin=D6
+
     int main(void)
     {
+        int num = 0;
+        int distance1, distance2;
+        float dist_remaining1, dist_percent1, dist_remaining2, dist_percent2;
+        char snd[255],rcv[1000];                    //snd: send command to ESP8266
+                                            //rcv: receive response from ESP8266
+
+        //Ultrasound Sensor (HC-SR04) #1 Initialization
+        int a = 30;
+        usensor1.start();
+        wait_ms(500);
+        
+    //Calculating Distance Percentage Remaining for Sensor # 1
+        distance1 = usensor1.get_dist_cm();
+        dist_remaining1 = a-distance1;
+        dist_percent1 = (dist_remaining1/30)*100;
+        
+    //LED and Tera Term Output
+        if (distance1<30 && distance2<30) {
+            //RLed = 1;
+//            BLed = 1;
+//            GLed = 0;
+            pc.printf("You are colse!\n\r"); while(1) {
+                    pc.putc(pc.getc() + 1);}
+            //printf("Percent remaining: %f\r", dist_percent1 && dist_percent2);
+        } else {
+            //GLed = 1;
+//            BLed = 1;
+//            RLed = 0;
+            pc.printf("You are far!\n\r"); while(1) {
+                    pc.putc(pc.getc() + 1);}
+            }
         float gyro_data[3];
         motion_data_units_t acc_data, mag_data;
         motion_data_counts_t acc_raw, mag_raw;
@@ -50,18 +85,22 @@
            if(abs(acc.getX(faX)) > 1.5 || abs(acc.getZ(faZ)) > 1.3 || abs(acc.getY(faY)) > 0.1)
            {
             
-            Red = 0;
-            Blue = 1;
-            Green = 1;
+            //Red = 0;
+//            Blue = 1;
+//            Green = 1;
+            pc.printf("Going too fast!\n\r"); while(1) {
+            pc.putc(pc.getc() + 1);}
 
             } 
             
             
             else{
                 
-                Red = 1;
-                Green = 0;
-                Blue = 1;
+                //Red = 1;
+//                Green = 0;
+//                Blue = 1;
+                    pc.printf("You are safe!\n\r"); while(1) {
+                    pc.putc(pc.getc() + 1);}
                 };
             wait(1.0f);
         }