for publish
Dependencies: HC_SR04_Ultrasonic_Library mbed
main.cpp
- Committer:
- jasonbx
- Date:
- 2017-03-14
- Revision:
- 0:fded9bf799e2
File content as of revision 0:fded9bf799e2:
#include "mbed.h" #include "motordriver.h" #include "ultrasonic.h" #include "SongPlayer.h" int x=1; void dist(int distance) { if (distance<100){ x=0; } //put code here to execute when the distance has changed printf("Distance %d mm\r\n", distance); } ultrasonic mu(p9, p10, .1, 1, &dist); //BusOut myled(LED1,LED2,LED3,LED4); DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); Serial blue(p28,p27); AnalogIn ain(A0); //p15 SongPlayer mySpeaker(p26); Motor A(p23, p6, p5, 1); // pwm, fwd, rev, can brake Motor B(p21, p7, p8, 1); // pwm, fwd, rev, can brake float note[18]= {1568.0,1396.9,1244.5,1244.5,1396.9,1568.0,1568.0,1568.0,1396.9, 1244.5,1396.9,1568.0,1396.9,1244.5,1174.7,1244.5,1244.5, 0.0 }; float duration[18]= {0.48,0.24,0.72,0.48,0.24,0.48,0.24,0.24,0.24, 0.24,0.24,0.24,0.24,0.48,0.24,0.48,0.48, 0.0 }; int main() { mu.startUpdates();//start measuring the distance char bnum=0; char bhit=0; while(x==1){ mu.checkDistance(); led1 = (ain > 0.15f) ? 1 : 0; led2 = (ain > 0.30f) ? 1 : 0; led3 = (ain > 0.45f) ? 1 : 0; led4 = (ain > 0.7f) ? 1 : 0; A.speed(0.4); B.speed(0.4); // printf("Distance %d mm\r\n", distance); } mySpeaker.PlaySong(note,duration); // loops forever while song continues to play to end using interrupts A.speed(0); B.speed(0); while(1){ if (blue.getc()=='!') { if (blue.getc()=='B') { //button data packet bnum = blue.getc(); //button number bhit = blue.getc(); //1=hit, 0=release if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK? // myled = bnum - '0'; //current button number will appear on LEDs switch (bnum) { case '1': //number button 1 if (bhit=='1') { A.speed(0); B.speed(0); } else { //add release code here } break; case '2': //number button 2 if (bhit=='1') { //add hit code here } else { //add release code here } break; case '3': //number button 3 if (bhit=='1') { //add hit code here } else { //add release code here } break; case '4': //number button 4 if (bhit=='1') { //add hit code here } else { //add release code here } break; case '5': //button 5 up arrow if (bhit=='1') { A.speed(1); B.speed(1); wait(0.02); } else { //add release code here } break; case '6': //button 6 down arrow if (bhit=='1') { A.speed(-1); B.speed(-1); wait(0.02); } else { //add release code here } break; case '7': //button 7 left arrow if (bhit=='1') { A.speed(-1); B.speed(1); wait(0.02); } else { //add release code here } break; case '8': //button 8 right arrow if (bhit=='1') { A.speed(1); B.speed(-1); wait(0.02); } else { //add release code here } break; default: A.speed(0.3); B.speed(0.3); break; } } } } } }