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.
main.cpp
- Committer:
- garphil
- Date:
- 2016-10-11
- Revision:
- 11:c0728c05f977
- Parent:
- 10:983ed805d74f
- Child:
- 12:60c531df03fd
File content as of revision 11:c0728c05f977:
#include "LaLaBox.h" Serial pc_uart(PA_2, PA_3); // ---------------- Local global variables -------------- // --- Sound --- Music song_happy_birthday("Happy Birthday Song:d=4,o=5,b=125:16c,32p,32c,32p,8d,32p,8c,32p,8f,32p,e,16p,16c,32p,32c,32p,8d,32p,8c,32p,8g,32p,f,8p,16c,32p,32c,32p,8c6,32p,8a,32p,8f,32p,8e,32p,8d,32p,16a#,32p,32a#,32p,8a,32p,8f,32p,8g,32p,f"); 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 myButton(USER_BUTTON); InterruptIn buttonBox(PB_9); // --- Define the Four PINs & Time of movement used for Motor drive ----- Motor motorBox(PA_6, PA_7, PB_6, PC_7, 20000); Motor motorDancer(PA_4,PB_0,PC_1,PC_0, 10000); // PIN & number of LEDS. Available color ==> BLUE, LIGHTBLUE, RED, GREEN, BLACK, WHITE, PURPLE, PINK, YELLOW LED_WS2812 ledBand(D3,16); // --- Define PC_8 as the output of PWM use for Tones ----- Buzzer buzzer(PB_8); Note la("A#4",50); //the sound // init int state = 0; void help() // Display list of Commands { DEBUG("List of commands:\n\r"); DEBUG(" h --> Help, display list of cammands\n\r"); } void clicked() { motorBox.Stop(); motorDancer.Stop(); ledBand.ResetColor(); } void pressed() { state++; switch(state) { case 1: motorDancer.Stop(); motorBox.RunDegrees(COUNTERCLOCKWISE, (float)60.0); motorDancer.RunDegrees(COUNTERCLOCKWISE, 6*(float)360.0); ledBand.SetColor(WHITE); break; case 2: // motorDancer.RunDegrees(CLOCKWISE, (float)180.0); motorBox.RunDegrees(CLOCKWISE, (float)100.0); ledBand.SetColor(0x0000FF); ledBand.SetIntensity(20.0); break; case 3: ledBand.InsertColor(BLUE); ledBand.InsertColor(WHITE); ledBand.InsertColor(RED); break; case 4: ledBand.StartRotation(1); break; case 5: ledBand.StopRotation(); ledBand.ResetColor(); ledBand.InsertColorNtimes(3,BLUE,20.0); ledBand.InsertColorNtimes(1,WHITE); ledBand.InsertColorNtimes(4,RED,50.0); ledBand.StartRotation(0.1); // PLAY_MUSIC(song_happy_birthday, buzzer); break; default: ledBand.StopRotation(); // motorDancer.Stop(); // motorBox.Stop(); state = 0; break; } myled = !myled; // To see something is alive } int main() { myled = 1; // To see something is alive bool flaghelp; DEBUG("\n\n%d\r",SystemCoreClock); DEBUG("------------------------------------------\n\r"); DEBUG("----- LaLaBox (CreaLab) version 1.0 ----\n\r"); DEBUG("------------------------------------------\n\r"); help(); DEBUG("------------------------------------------\n\r"); ledBand.SetColor(BLACK); DEBUG("SystemCoreClock = %d Hz = %f\n\r", SystemCoreClock); CATCH_BUTTON(myButton,clicked); CATCH_BUTTON(buttonBox,clicked); buttonBox.mode(PullUp); buttonBox.rise(&clicked); // PLAY_NOTE(la, buzzer); wait(2); // Some delay myled = 0; // Real stuff starts here while(1) { char command; // Command to execute DEBUG(">> "); command = pc_uart.getc(); DEBUG("%c", command); flaghelp = false; switch (command) { case 'h': DEBUG("List of commands:\n\r"); DEBUG(" h --> Help, display list of cammands\n\r"); flaghelp=true; CASE('o', "OpenBox", motorBox.RunDegrees(COUNTERCLOCKWISE, (float)60.0); ) CASE('c', "CloseBox", motorBox.RunDegrees(CLOCKWISE, (float)60.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 ", clicked(); ) CASE('l', "Light ", ledBand.StopRotation(); ledBand.ResetColor(); ledBand.InsertColorNtimes(3,BLUE,20.0); ledBand.InsertColorNtimes(1,WHITE); ledBand.InsertColorNtimes(4,RED,50.0); ledBand.StartRotation(0.1); ) default : DEBUG("invalid command; use: 'h' for help()"); } } }