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.
Diff: main.cpp
- Revision:
- 20:cdbc31a89c7f
- Parent:
- 17:04c9b524dd94
- Child:
- 24:59caeaa9f82d
diff -r 04c9b524dd94 -r cdbc31a89c7f main.cpp --- a/main.cpp Tue Apr 11 22:58:06 2017 +0000 +++ b/main.cpp Mon Jul 17 11:46:27 2017 +0000 @@ -1,7 +1,7 @@ /* - * Crealab Template + * LaLaBOX program * - * Version 2.0, March 12, 2017 + * Version 3.0, July 17, 2017 * for Nucleo32: F303K8 * */ @@ -10,15 +10,109 @@ Serial bt_uart(PA_9, PA_10); Serial pc_uart(USBTX, USBRX); -/ +// ---------------- Local global variables -------------- + +Music song_greensleaves("Greensleaves:d=4,o=5,b=140:g,2a#,c6,d.6,8d#6,d6,2c6,a,f.,8g,a,2a#,g,g.,8f,g,2a,f,2d,g,2a#,c6,d.6,8e6,d6,2c6,a,f.,8g,a,a#.,8a,g,f#.,8e,f#,2g"); +Music song_lightmyfire("LightMyFire:d=4,o=5,b=140:8b,16g,16a,8b,8d6,8c6,8b,8a,8g,8a,16f,16a,8c6,8f6,16d6,16c6,16a#,16g,8g#,8g,8g#,16g,16a,8b,8c#6,16b,16a,16g,16f,8e,8f,1a,a"); +Music song_xfile("Xfiles:d=4,o=5,b=140:e,b,a,b,d6,2b."); +Music song_christmas("Christmas:d=4,o=5,b=100:f#,g#,2a#,2a#,d#.,8f,f,f,2f#,2d#,2f#.6,f#,#g,8g#,g#,8a#,b,8c#,c#,2c#,8d#,8f.,8f#.,8f.,d#,f,2f#.,a#,8b.,8b.,8b.,d#,f,2c#.,a#,8b.,8b.,8b.,d#,f,f#,p,g#,g#,g#,8g#,8a#,8g#,f#.,g#,a#,p,c,c,c,8c,8c#,8c,a#.,c,c#,a#,b,a#,a,a#,b,c,"); + // ---------------- PIN DEFINITIONS --------------------- DigitalOut myled(LED1); // Blinking LED -InterruptIn buttonBox(PB_1); +InterruptIn buttonBox(PB_1); + +// --- Define the Four PINs & Time of movement used for Motor drive ----- +Motor motorBox(PA_8, PA_11, PB_5, PB_4, 5000); +Motor motorDancer(PA_4, PA_13, PA_1, PA_0, 2000); + +// PIN & number of LEDS. Available color ==> BLUE, LIGHTBLUE, RED, GREEN, BLACK, WHITE, PURPLE, PINK, YELLOW +LED_WS2812 ledBand(PB_3,16); + +// --- Define PB_0 as the output of PWM use for Tones ----- +Buzzer buzzer(PB_0); + +Note la("A#4",50); //the sound + +void help() // Display list of Commands +{ + DEBUG("List of commands:\n\r"); + DEBUG(" h --> Help, display list of cammands\n\r"); +} +/* Stop all processes */ +void stop_all() +{ + motorBox.Stop(); + motorDancer.Stop(); + ledBand.ResetColor(); + buzzer.stopPlay(); +} + +/* Interrupt routine, switch of end of course */ +void clicked() +{ + DEBUG("End of Course\n\r"); + stop_all(); +} + +/* Launch Light Mega Show ! */ +void illuminati() { + ledBand.StopRotation(); ledBand.ResetColor(); + ledBand.InsertColorNtimes(3,YELLOW,5.0); + ledBand.InsertColorNtimes(1,PURPLE,5); + ledBand.InsertColorNtimes(4,GREEN,10.0); + ledBand.StartRotation(0.1); + +} /* Main Routine */ int main() { myled = 1; // To see something is alive - -} + bool flaghelp; + DEBUG("------------------------------------------\n\r"); + DEBUG("----- LaLaBox (CreaLab) version 2.0 ----\n\r"); + DEBUG("------------------------------------------\n\r"); + ledBand.SetColor(WHITE); + DEBUG("SystemCoreClock = %d Hz =\n\r", SystemCoreClock); + DEBUG("Wait 2s\n\r"); + + /* Connect EoC button */ + CATCH_BUTTON(buttonBox,clicked); + + /* Play a tone */ + PLAY_NOTE(la, buzzer); + + wait(2); // Some delay + myled = 0; // Real stuff starts here + ledBand.SetColor(BLACK); + DEBUG("Enter a command : \n\r"); + + while(1) { + char command; // Command to execute + DEBUG(">> "); + command = bt_uart.getc(); + DEBUG("%c", command); + flaghelp = false; + switch (command) { + case 'h': + help(); + flaghelp=true; + CASE('o', "OpenBox", motorBox.RunDegrees(COUNTERCLOCKWISE, (float)140.0); ) + CASE('c', "CloseBox", motorBox.RunDegrees(CLOCKWISE, (float)140.0); ) + CASE('d', "1 step OpenBox ", motorBox.RunDegrees(COUNTERCLOCKWISE, (float)1.0); ) + CASE('e', "1 step CloseBox ", motorBox.RunDegrees(CLOCKWISE, (float)1.0); ) + CASE('f', "Dancer Clock Wise ", motorDancer.RunInfinite(CLOCKWISE); ) + CASE('j', "Dancer Counter Clock Wise ", motorDancer.RunInfinite(COUNTERCLOCKWISE); ) + CASE('s', "STOP ", stop_all(); ) + CASE('m', "Music 1", PLAY_MUSIC(song_xfile,buzzer); ) + CASE('n', "Music 2", PLAY_MUSIC(song_lightmyfire,buzzer); ) + CASE('p', "Music 3", PLAY_MUSIC(song_greensleaves,buzzer); ) + CASE('q', "Music 4", PLAY_MUSIC(song_christmas,buzzer); ) + CASE('l', "Light ", illuminati(); ) + + default : + DEBUG("invalid command; use: 'h' for help()"); + } + } +} \ No newline at end of file