Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed mbed-rtos 4DGL-uLCD-SE Motor BNO055 SDFileSystem HC_SR04_Ultrasonic_Library
Revision 0:d2f4489d6f31, committed 2019-11-28
- Comitter:
- elisham11
- Date:
- Thu Nov 28 02:02:03 2019 +0000
- Commit message:
- Testing for documentation
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/4DGL-uLCD-SE.lib Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/4180_1/code/4DGL-uLCD-SE/#e39a44de229a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/BNO055.lib Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/vargham/code/BNO055/#f5880506defe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HC_SR04_Ultrasonic_Library.lib Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/ejteb/code/HC_SR04_Ultrasonic_Library/#e0f9c9fb4cf3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Motor.lib Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/Motor/#f265e441bcd9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDFileSystem.lib Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/neilt6/code/SDFileSystem/#e4d2567200db
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Thu Nov 28 02:02:03 2019 +0000
@@ -0,0 +1,234 @@
+#include "mbed.h"
+#include "rtos.h" //mbed's thread and mutex are included here
+#include <string>
+#include "SDFileSystem.h"
+#include "Motor.h"
+#include "BNO055.h"
+#include "ultrasonic.h"
+
+//Timer
+Timer t; //t.start(), t.stop(), t.read()
+
+//Semaphore s(1);
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+
+//H-bridge
+Motor m_left(p21, p15, p16); // pwm,fwd,rev pwmA
+Motor m_right(p22, p19, p20); // pwm,fwd,rev
+
+//SDcard
+SDFileSystem sd(p5, p6, p7, p8, "sd");
+
+//Sonar 1 & 2
+//void newdist();
+//ultrasonic mu1(p29, p30, .07, 1, &newdist);
+//ultrasonic mu2(p11, p12, .07, 1, &newdist);
+
+//Bluetooth
+// don't forgot to use mutex and volatile
+//RawSerial pc(USBTX, USBRX);
+/*
+1 for imu rotation
+2 for reverse
+3 for forward
+4 for left
+5 for right
+*/
+Serial pc(USBTX, USBRX);
+RawSerial Bluetooth(p28,p27);
+
+//Global variables for bluetooth control
+bool sonarOn = false; //Indicates when sonar is taking measurements
+bool running = true; //Keeps main while loop going
+
+
+
+//Code for interrupt routine for Bluetooth input
+enum statetype {start = 0, got_exclm, got_B, got_one, got_two, got_three, got_five, got_six, got_seven, got_eight, got_11, got_21, got_31, got_51, got_61, got_71, got_81};
+statetype state = start;
+//Interrupt routine to parse message with one new character per serial RX interrupt
+void parse_message()
+{
+ led1 = !led1;
+ switch (state)
+ {
+ case start:
+ if (Bluetooth.getc()=='!')
+ {
+ led2 = 1;
+ state = got_exclm;
+ }
+ else state = start;
+ break;
+ case got_exclm:
+
+ if (Bluetooth.getc() == 'B')
+ {
+ led3 = 1;
+ state = got_B;
+ }
+ else state = start;
+ break;
+ case got_B:
+ {
+ char recv = Bluetooth.getc();
+ if (recv == '1') state = got_one;
+ else if (recv == '2') state = got_two;
+ else if (recv == '3') state = got_three;
+ else if (recv == '5') state = got_five;
+ else if (recv == '6') state = got_six;
+ else if (recv == '7') state = got_seven;
+ else if (recv == '8') state = got_eight;
+ else state = start;
+ }
+ break;
+ case got_one:
+ if (Bluetooth.getc() == '1')
+ {
+
+ }
+ else state = start;
+ break;
+ case got_two: //Stop everything
+ if (Bluetooth.getc() == '1')
+ {
+ //Make sure motors are stopped
+ m_left.speed(0.0);
+ m_right.speed(0.0);
+ sonarOn = false;
+ running = false;
+ }
+ else state = start;
+ break;
+ case got_three: //currently unimplemented
+ if (Bluetooth.getc() == '1')
+ {
+
+ }
+ else state = start;
+ break;
+ case got_five: //up arrow pressed
+ {
+ char recv = Bluetooth.getc();
+ if (recv == '1') //Button pressed or held
+ {
+ sonarOn = true;
+ m_left.speed(0.3);
+ m_right.speed(0.3);
+ led3 = 1;
+ }
+ else if (recv == '0') //Button released
+ {
+ sonarOn = false;
+ m_left.speed(0.0);
+ m_right.speed(0.0);
+ led4 = 1;
+ }
+ else state = start;
+ }
+ break;
+ case got_six: //down arrow pressed
+ {
+ char recv = Bluetooth.getc();
+ if (recv == '1') //Button pressed or held
+ {
+ sonarOn = true;
+ m_left.speed(-0.3);
+ m_right.speed(-0.3);
+ }
+ else if (recv == '0')
+ {
+ sonarOn = false;
+ m_left.speed(0.0);
+ m_right.speed(0.0);
+ }
+ else state = start;
+ }
+ break;
+ case got_seven: //turn left
+ {
+ char recv = Bluetooth.getc();
+ sonarOn = false;
+ if (recv == '1')
+ {
+ m_left.speed(-0.3);
+ m_right.speed(0.3);
+ }
+ else if (recv == '0')
+ {
+ m_left.speed(0.0);
+ m_right.speed(0.0);
+ }
+ else state = start;
+ }
+ break;
+ case got_eight: //turn right
+ {
+ char recv = Bluetooth.getc();
+ sonarOn = false;
+ if (recv == '1')
+ {
+ m_left.speed(0.3);
+ m_right.speed(-0.3);
+ }
+ else if (recv == '0')
+ {
+ m_left.speed(0.0);
+ m_right.speed(0.0);
+ }
+ else state = start;
+ }
+ break;
+
+ default:
+ Bluetooth.getc();
+ state = start;
+ }
+}
+
+
+//phototransistor and IC
+
+
+
+
+
+//Function to run in thread for speaker music
+
+
+void newDist()
+{
+
+}
+
+
+
+int main()
+{
+
+ //Thread t1;
+ //Thread t2;
+ //Thread t3;
+ //t1.set_priority(osPriorityHigh);
+ //t2.set_priority(osPriorityLow);
+ //t3.set_priority(osPriorityRealtime);
+
+
+ //Thread t4;
+ //t4.start(parse_direction);
+
+ //Attach Bluetooth interrupt routine
+ Bluetooth.attach(&parse_message,Serial::RxIrq);
+
+ while (1)
+ {
+ //printf("print\t");
+ Thread::wait(1000);
+ }
+
+
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-rtos.lib Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +https://mbed.org/users/mbed_official/code/mbed-rtos/#58563e6cba1e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Nov 28 02:02:03 2019 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/0ab6a29f35bf \ No newline at end of file