Kshitij Kulkarni / Mbed 2 deprecated flamebot

Dependencies:   HC_SR04_Ultrasonic_Library Motor Servo mbed

Files at this revision

API Documentation at this revision

Comitter:
kkulkarni36
Date:
Wed May 02 04:26:40 2018 +0000
Commit message:
ECE 4180 Flamebot

Changed in this revision

HC_SR04_Ultrasonic_Library.lib Show annotated file Show diff for this revision Revisions of this file
Motor.lib Show annotated file Show diff for this revision Revisions of this file
Servo.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/HC_SR04_Ultrasonic_Library.lib	Wed May 02 04:26:40 2018 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/users/ejteb/code/HC_SR04_Ultrasonic_Library/#e0f9c9fb4cf3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Motor.lib	Wed May 02 04:26:40 2018 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/users/simon/code/Motor/#f265e441bcd9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Servo.lib	Wed May 02 04:26:40 2018 +0000
@@ -0,0 +1,1 @@
+http://os.mbed.com/users/simon/code/Servo/#36b69a7ced07
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed May 02 04:26:40 2018 +0000
@@ -0,0 +1,149 @@
+#include "mbed.h"
+#include "Motor.h"
+#include "Servo.h"
+#include "ultrasonic.h"
+
+Motor m1(p25, p15, p14); // pwm, fwd, rev
+Motor m2(p26, p19, p20 ); // pwm, fwd, rev
+volatile bool move = 1; 
+Serial bluemod(p9,p10);
+Serial pc(USBTX,USBRX);
+Servo myservo(p24);
+DigitalOut myled1(LED1); 
+DigitalOut myled2(LED2); 
+DigitalOut myled3(LED3); 
+DigitalOut myled4(LED4); 
+
+
+ 
+//C union can convert 4 chars to a float - puts them in same location in memory
+//trick to pack the 4 bytes from Bluetooth serial port back into a 32-bit float
+union f_or_char {
+    float f;
+    char  c[4];
+};
+
+void dist(int distance)
+{
+    if (distance < 500.0) {
+    m1.speed(0.0);
+    m2.speed(0.0);
+    wait(1);
+    myservo = 0.0;
+    wait(1);
+    m1.speed(0.3);
+    m2.speed(-0.3);
+    wait(1.5);
+    m1.speed(0.0);
+    m2.speed(0.0);
+    wait(1.5); 
+    move = 0;
+    myservo = 1.0;
+    myled1 = 1;
+    myled2 = 1;
+    myled3 = 1;
+    myled4 = 1; 
+    wait(1);
+    myservo = 0.0;
+    myled1 = 0;
+    myled2 = 0;
+    myled3 = 0;
+    myled4 = 0; 
+    wait(1);
+    }
+}
+
+ultrasonic sonar(p6, p7, .1, 1, &dist);
+ 
+int main()
+{
+    float s1;
+    float s2;
+    char bchecksum=0;
+    char temp=0;
+    union f_or_char x,y,z;
+    
+    sonar.startUpdates();//start measuring the distance
+    
+    while(1) {
+        bchecksum=0;
+        if (bluemod.getc()=='!') {
+            if (bluemod.getc()=='A') { //Accelerometer data packet
+                for (int i=0; i<4; i++) {
+                    temp = bluemod.getc();
+                    x.c[i] = temp;
+                    bchecksum = bchecksum + temp;
+                }
+                for (int i=0; i<4; i++) {
+                    temp = bluemod.getc();
+                    y.c[i] = temp;
+                    bchecksum = bchecksum + temp;
+                }
+                for (int i=0; i<4; i++) {
+                    temp = bluemod.getc();
+                    z.c[i] = temp;
+                    bchecksum = bchecksum + temp;
+                }
+                if (bluemod.getc()==char(~('!' + 'A' + bchecksum))) { //checksum OK?
+                //pc.printf("X = %f  Y = %f  Z = %f\n\r",x.f, y.f, z.f);         
+                    move = 1;
+                    if (x.f < -4.0) {
+                        s1 = 0.3;
+                        s2 = -0.3;
+                        m1.speed(s1);
+                        m2.speed(s2);
+                        myled1 = 1;
+                        myled2 = 0;
+                        myled3 = 0;
+                        myled4 = 0; 
+                        wait(0.05);
+                        }
+                    if (x.f > 4.0) {
+                        s1 = -0.3;
+                        s2 = 0.3;
+                        m1.speed(s1);
+                        m2.speed(s2);
+                        myled1 = 0;
+                        myled2 = 1;
+                        myled3 = 0;
+                        myled4 = 0; 
+                        wait(0.05);
+                        }
+                    if (y.f < -3.5) {
+                        s1 = -0.2;
+                        s2 = -0.2;
+                        m1.speed(s1);
+                        m2.speed(s2);
+                        myled1 = 0;
+                        myled2 = 0;
+                        myled3 = 1;
+                        myled4 = 0; 
+                        wait(0.05);
+                        }
+                    if (y.f > 3.0) {
+                        s1 = 0.2;
+                        s2 = 0.2;
+                        m1.speed(s1);
+                        m2.speed(s2);
+                        myled1 = 0;
+                        myled2 = 0;
+                        myled3 = 0;
+                        myled4 = 1; 
+                        wait(0.05);
+                        }     
+                    if (x.f > -4.0 && x.f < 4.0 && y.f > -4.0 && y.f <4.0) {
+                        s1 = 0.0;
+                        s2 = 0.0;
+                        m1.speed(s1);
+                        m2.speed(s2);
+                        wait(0.05); 
+                        }  
+                    while(move) {
+                        sonar.checkDistance();
+                        move = 0;
+                    }        
+                }
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed May 02 04:26:40 2018 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/5aab5a7997ee
\ No newline at end of file