eLab Team / Mbed 2 deprecated LaLaBox

Dependencies:   mbed CREALIB

Committer:
garphil
Date:
Fri Jun 17 14:58:17 2016 +0000
Revision:
4:d452a7e3461a
Parent:
3:50e030d90648
Child:
5:f62e799558c3
Compile OK, not tested on board yet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
garphil 1:ab4c9a0a5374 1 #include "LaLaBox.h"
garphil 1:ab4c9a0a5374 2
garphil 1:ab4c9a0a5374 3 // ---------------- Local global variables --------------
garphil 1:ab4c9a0a5374 4
garphil 1:ab4c9a0a5374 5 // --- Sound ---
garphil 1:ab4c9a0a5374 6 char *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";
garphil 1:ab4c9a0a5374 7 char *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";
garphil 1:ab4c9a0a5374 8 char *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";
garphil 1:ab4c9a0a5374 9 char *song_xfile = "Xfiles:d=4,o=5,b=140:e,b,a,b,d6,2b.";
garphil 1:ab4c9a0a5374 10 char *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,";
garphil 1:ab4c9a0a5374 11
garphil 2:050f12806bc5 12 // ---------------- PIN DEFINITIONS ---------------------
garphil 2:050f12806bc5 13 DigitalOut myled(LED1); // Blinking LED
garphil 2:050f12806bc5 14
garphil 2:050f12806bc5 15 // --- Define the Foor PINs used for Motor drive -----
garphil 4:d452a7e3461a 16 Motor motorBox(PA_9, PC_7, PB_6, PA_7);
garphil 3:50e030d90648 17 // Motor motorDancer(PA_9, PC_7, PB_6, PA_7)
garphil 2:050f12806bc5 18
garphil 1:ab4c9a0a5374 19 // --- Define PC_8 as the output of PWM use for Tones -----
garphil 1:ab4c9a0a5374 20 Buzzer buzzer(PC_8);
garphil 0:30cb0f6dad87 21
garphil 1:ab4c9a0a5374 22 Music* pMusic=0; //the song
garphil 1:ab4c9a0a5374 23 Note la("A#4",50); //the sound
garphil 1:ab4c9a0a5374 24
garphil 1:ab4c9a0a5374 25 // --- Motor Routine
garphil 2:050f12806bc5 26
garphil 1:ab4c9a0a5374 27 void help() // Display list of Commands
garphil 1:ab4c9a0a5374 28 {
garphil 1:ab4c9a0a5374 29 DEBUG("List of commands:\n\r");
garphil 1:ab4c9a0a5374 30 DEBUG(" h --> Help, display list of cammands\n\r");
garphil 1:ab4c9a0a5374 31 DEBUG(" z --> Go to motor zero\n\r");
garphil 1:ab4c9a0a5374 32 DEBUG(" k --> Calibrate motor\n\r");
garphil 1:ab4c9a0a5374 33 DEBUG(" n dddd --> define Number of coils (default=100)\n\r");
garphil 1:ab4c9a0a5374 34 DEBUG(" c --> define Clockwise (default)\n\r");
garphil 1:ab4c9a0a5374 35 DEBUG(" a --> define Anti-clockwise\n\r");
garphil 1:ab4c9a0a5374 36 DEBUG(" m --> Memorise configuration\n\r");
garphil 1:ab4c9a0a5374 37 DEBUG(" l --> List current configuration\n\r");
garphil 1:ab4c9a0a5374 38 DEBUG(" w --> start Wiring the coils\n\r");
garphil 1:ab4c9a0a5374 39 DEBUG(" p --> Pause wiring\n\r");
garphil 1:ab4c9a0a5374 40 DEBUG(" r --> Resume wiring\n\r");
garphil 1:ab4c9a0a5374 41 DEBUG(" s --> Stop (abort) wiring\n\r");
garphil 1:ab4c9a0a5374 42 DEBUG(" [space] --> print remaining Motor steps\n\r");
garphil 1:ab4c9a0a5374 43 }
garphil 1:ab4c9a0a5374 44
garphil 0:30cb0f6dad87 45 int main() {
garphil 3:50e030d90648 46 uint32_t NumberOfTurns;
garphil 1:ab4c9a0a5374 47 myled = 1; // To see something is alive
garphil 1:ab4c9a0a5374 48 DEBUG("\n\n\r");
garphil 1:ab4c9a0a5374 49 DEBUG("------------------------------------------\n\r");
garphil 4:d452a7e3461a 50 DEBUG("----- LaLaBox (fbd38) version 1.0 ----\n\r");
garphil 1:ab4c9a0a5374 51 DEBUG("------------------------------------------\n\r");
garphil 1:ab4c9a0a5374 52 help();
garphil 1:ab4c9a0a5374 53 DEBUG("------------------------------------------\n\r");
garphil 1:ab4c9a0a5374 54 wait(5); // Some delay
garphil 1:ab4c9a0a5374 55 myled = 0; // Real stuff starts here
garphil 3:50e030d90648 56 //
garphil 1:ab4c9a0a5374 57 while(1) {
garphil 1:ab4c9a0a5374 58 char command; // Command to execute
garphil 4:d452a7e3461a 59 DEBUG(">> ");
garphil 1:ab4c9a0a5374 60 command = pc_uart.getc();
garphil 1:ab4c9a0a5374 61 DEBUG("%c", command);
garphil 1:ab4c9a0a5374 62 switch (command) {
garphil 1:ab4c9a0a5374 63 case 'h': help(); break;
garphil 4:d452a7e3461a 64 case 'z': motorBox.SetCommand(MOTOR_zero); break;
garphil 4:d452a7e3461a 65 case 'k': motorBox.TestMotor(); break;
garphil 1:ab4c9a0a5374 66 case 'n':
garphil 3:50e030d90648 67 pc_uart.scanf("%d", &NumberOfTurns);
garphil 4:d452a7e3461a 68 motorBox.TurnMotor(NumberOfTurns);
garphil 3:50e030d90648 69 break;
garphil 4:d452a7e3461a 70 case 'c':
garphil 4:d452a7e3461a 71 DEBUG(" -- Direction CLOCKWISE --\n\r");
garphil 4:d452a7e3461a 72 motorBox.SetDirection(DIRECTION_CLOCKWISE);
garphil 1:ab4c9a0a5374 73 break;
garphil 4:d452a7e3461a 74 case 'a':
garphil 4:d452a7e3461a 75 DEBUG(" -- Direction COUNTER CLOCKWISE --\n\r");
garphil 4:d452a7e3461a 76 motorBox.SetDirection(DIRECTION_COUNTERCLOCKWISE);
garphil 4:d452a7e3461a 77 break;
garphil 4:d452a7e3461a 78 case 'w': DEBUG(" -- Starting --\n\r"); motorBox.SetCommand(MOTOR_start); break;
garphil 4:d452a7e3461a 79 case 'p': DEBUG(" -- Pause --\n\r"); motorBox.SetCommand(MOTOR_pause); break;
garphil 4:d452a7e3461a 80 case 'r': DEBUG(" -- Re-Start --\n\r"); motorBox.SetCommand(MOTOR_restart); break;
garphil 4:d452a7e3461a 81 case 's': DEBUG(" -- Stop --\n\r"); motorBox.SetCommand(MOTOR_stop); break;
garphil 1:ab4c9a0a5374 82 default : DEBUG("invalid command; use: 'h' for help()");
garphil 1:ab4c9a0a5374 83 }
garphil 0:30cb0f6dad87 84 }
garphil 1:ab4c9a0a5374 85 }