for publish
Dependencies: Motordriver mbed
Diff: main.cpp
- Revision:
- 0:3ec2ed675b62
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Mar 14 15:51:43 2017 +0000 @@ -0,0 +1,147 @@ +#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; + } + } + } + } + } +} \ No newline at end of file