Complete Build
Dependencies: 4DGL-uLCD-SE1 Motor SDFileSystem X_NUCLEO_53L0A1 mbed-rtos mbed BotwithWavePlayerLevel
Fork of BotWithBluetoothLIDARV2 by
Revision 17:2c6549be1ecb, committed 2017-11-20
- Comitter:
- ctallardc
- Date:
- Mon Nov 20 01:47:29 2017 +0000
- Parent:
- 16:61e88b0e3689
- Child:
- 18:aa7f48962bdb
- Commit message:
- First Version BotWithLIDAR Working
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| wave_player.lib | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Nov 16 16:45:51 2017 +0000
+++ b/main.cpp Mon Nov 20 01:47:29 2017 +0000
@@ -3,6 +3,8 @@
#include "Motor.h"
#include "rtos.h"
+#define SD_DBG 1
+
#include "SDFileSystem.h"
SDFileSystem sd(p5, p6, p7, p29, "sd");
@@ -11,7 +13,7 @@
AnalogOut DACout(p18);
wave_player waver(&DACout);
-
+PwmOut speaker(p23);
//BusOut myled(LED1,LED2,LED3,LED4);
#include "XNucleo53L0A1.h"
@@ -29,18 +31,60 @@
Thread lidar;
Thread siren;
uint32_t distance;
-FILE *wave_file;
+int level = 8; //Volume level is turned off
+//wave_file;
+
+void listdir(void) {
+ DIR *d;
+ struct dirent *p;
-
+ d = opendir("/sd");
+ if (d != NULL) {
+ while ((p = readdir(d)) != NULL) {
+ pc.printf(" - %s\r\n", p->d_name);
+ }
+ } else {
+ pc.printf("Could not open directory!\r\n");
+ }
+ closedir(d);
+}
void t3(){
-
+ // int i;
+ pc.printf("Speaker\r\n");
+ listdir();
+ //waver.set_verbosity(1);
+ // FILE *fp = fopen("/sd/myfile2.txt", "w");
+ // fprintf(fp, "Hello World 11/18\n");
+ // fclose(fp);
while(1){
-
- wave_file=fopen("/sd/Bee Gees - Stayin' Alive.wav","r");
+
+
+/* generate a 500Hz tone using PWM hardware output
+ speaker.period(1.0/500.0); // 500hz period
+ speaker =0.5; //50% duty cycle - max volume
+ wait(3);
+ speaker=0.0; // turn off audio
+ wait(2);
+
+// generate a short 150Hz tone using PWM hardware output
+// something like this can be used for a button click effect for feedback
+ for (i=0; i<10; i++) {
+ speaker.period(1.0/150.0); // 500hz period
+ speaker =0.25; //25% duty cycle - mid range volume
+ wait(.02);
+ speaker=0.0; // turn off audio
+ wait(0.5);
+ }
+ */
+ while(1){
+ FILE *wave_file=fopen("/sd/LoudSound.wav","r");
+
waver.play(wave_file);
+
fclose(wave_file);
- Thread::wait(50);
+ //Thread::wait(50);
+ }
}
}
@@ -52,6 +96,7 @@
board = XNucleo53L0A1::instance(device_i2c, A2, D8, D2);
shdn = 0; //must reset sensor for an mbed reset to work
Thread::wait(100);
+ //lidar power off
shdn = 1;
Thread::wait(100);
/* init the 53L0A1 board with default values */
@@ -67,7 +112,15 @@
while (1) {
status = board->sensor_centre->get_distance(&distance);
if (status == VL53L0X_ERROR_NONE) {
- //pc.printf("D=%ld mm\r\n", distance);
+ pc.printf("D=%ld mm\r\n", distance);
+ if(distance > 240) level = 8;
+ if(distance < 90) level = 0;
+ if (distance >=90 && distance <=240){
+ int value=floor(static_cast<double>(8*(distance-90)/150));
+ if(value >=0 && value<=8){
+ level=value;
+ }
+ }
}
//LIDAR checks
@@ -90,9 +143,12 @@
int main()
{
+ char previousButton='0';
+ char current;
myled=0;
- //lidar.start(t2);
- //siren.start(t3);
+ pc.printf("in main\n\r");
+ lidar.start(t2);
+ siren.start(t3);
char bnum=0;
char bhit=0;
while(1) {
@@ -102,6 +158,10 @@
if (blue.getc()=='B') { //button data packet
bnum = blue.getc(); //button number
bhit = blue.getc(); //1=hit, 0=release
+ current=bnum;
+ //Thread::wait(250);
+ //pc.printf("Button Pressed %c bhit = %c PreviousButton = %c CurrentButton = %c\n\r", bnum, bhit, previousButton, current);
+ previousButton = current;
if (blue.getc()==char(~('!' + 'B' + bnum + bhit))) { //checksum OK?
//myled = bnum - '0'; //current button number will appear on LEDs
switch (bnum) {
@@ -163,8 +223,8 @@
break;
case '7': //button 7 left arrow
if (bhit=='1') {
- RW.speed(1);
- LW.speed(-1);
+ RW.speed(-1.0);
+ LW.speed(1.0);
//add hit code here
} else {
@@ -175,8 +235,8 @@
break;
case '8': //button 8 right arrow
if (bhit=='1') {
- RW.speed(-1);
- LW.speed(1);
+ RW.speed(1.0);
+ LW.speed(-1.0);
//add hit code here
} else {
RW.speed(0);
--- a/wave_player.lib Thu Nov 16 16:45:51 2017 +0000 +++ b/wave_player.lib Mon Nov 20 01:47:29 2017 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/sravet/code/wave_player/#acc3e18e77ad +https://os.mbed.com/teams/Local/code/BotwithWavePlayerLevel/#a1e60a36fe87
