diff options
author | Fede85 <f.vanzati@gmail.com> | 2013-07-03 22:00:02 +0200 |
---|---|---|
committer | Fede85 <f.vanzati@gmail.com> | 2013-07-03 22:00:02 +0200 |
commit | fd8c367304fe62a107332db19880c88f9ac0d082 (patch) | |
tree | a6a2713b1e788a2eb6f95ef701a0a01e0d258c67 /libraries/Robot_Control/examples/explore/R03_Disco_Bot | |
parent | cb3003082e7e140850071eba914c0b4347bc3bf1 (diff) |
SPI library to the new format and moved Robot_Motor and Robot_Control libraries
Diffstat (limited to 'libraries/Robot_Control/examples/explore/R03_Disco_Bot')
-rw-r--r-- | libraries/Robot_Control/examples/explore/R03_Disco_Bot/R03_Disco_Bot.ino | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/libraries/Robot_Control/examples/explore/R03_Disco_Bot/R03_Disco_Bot.ino b/libraries/Robot_Control/examples/explore/R03_Disco_Bot/R03_Disco_Bot.ino deleted file mode 100644 index 3574b01..0000000 --- a/libraries/Robot_Control/examples/explore/R03_Disco_Bot/R03_Disco_Bot.ino +++ /dev/null @@ -1,179 +0,0 @@ -/* Disco Bot - - This sketch shows you how to use the melody playing - feature of the robot, with some really cool 8-bit music. - Music will play when the robot is turned on, and it - will show you some dance moves. - - Circuit: - * Arduino Robot - - created 1 May 2013 - by X. Yang - modified 12 May 2013 - by D. Cuartielles - - This example is in the public domain - */ - -#include <ArduinoRobot.h> // include the robot library - -/* Dancing steps: - S: stop - L: turn left - R: turn right - F: go forward - B: go backwards - - The number after each command determines how long - each step lasts. Each number is 1/2 second long. - - The "\0" indicates end of string -*/ -char danceScript[] = "S4L1R1S2F1B1S1\0"; - -int currentScript = 0; // what step are we at - -int currentSong = 0; // keep track of the current song -static const int SONGS_COUNT = 3; // number of songs - -// an array to hold the songs -char musics[][11] = { - "melody.sqm", - "menu.sqm", - "chase.sqm", -}; - -// variables for non-blocking delay -long waitFrom; -long waitTime = 0; - -void setup() { - // initialize the Robot, SD card, display, and speaker - Robot.begin(); - Robot.beginSpeaker(); - Robot.beginSD(); - Robot.beginTFT(); - - // draw "lg0.bmp" and "lg1.bmp" on the screen - Robot.displayLogos(); - - // Print instructions to the screen - Robot.text("1. Use left and\n right key to switch\n song", 5, 5); - Robot.text("2. Put robot on the\n ground to dance", 5, 33); - - // wait for a few soconds - delay(3000); - - setInterface(); // display the current song - play(0); //play the first song in the array - - resetWait(); //Initialize non-blocking delay -} - -void loop() { - // read the butttons on the robot - int key = Robot.keyboardRead(); - - // Right/left buttons play next/previous song - switch(key) { - case BUTTON_UP: - case BUTTON_LEFT: - play(-1); //play previous song - break; - case BUTTON_DOWN: - case BUTTON_RIGHT: - play(1); //play next song - break; - } - - // dance! - runScript(); -} - -// Dancing function -void runScript() { - if(!waiting()) { // if the previous instructions have finished - // get the next 2 commands (direction and duration) - parseCommand(danceScript[currentScript], danceScript[currentScript+1]); - currentScript += 2; - if(danceScript[currentScript] == '\0') // at the end of the array - currentScript = 0; // start again at the beginning - } -} - -// instead of delay, use this timer -boolean waiting() { - if(millis()-waitFrom >= waitTime) - return false; - else - return true; -} - -// how long to wait -void wait(long t) { - resetWait(); - waitTime = t; -} - -// reset the timer -void resetWait() { - waitFrom = millis(); -} - -// read the direction and dirstion of the steps -void parseCommand(char dir, char duration) { - //convert the scripts to action - switch(dir) { - case 'L': - Robot.motorsWrite(-255, 255); - break; - case 'R': - Robot.motorsWrite(255, -255); - break; - case 'F': - Robot.motorsWrite(255, 255); - break; - case 'B': - Robot.motorsWrite(-255, -255); - break; - case 'S': - Robot.motorsStop(); - break; - } - //You can change "500" to change the pace of dancing - wait(500*(duration-'0')); -} - -// display the song -void setInterface() { - Robot.clearScreen(); - Robot.stroke(0, 0, 0); - Robot.text(musics[0], 0, 0); -} - -// display the next song -void select(int seq, boolean onOff) { - if(onOff){//select - Robot.stroke(0, 0, 0); - Robot.text(musics[seq], 0, 0); - }else{//deselect - Robot.stroke(255, 255, 255); - Robot.text(musics[seq], 0, 0); - } -} - -// play the slected song -void play(int seq) { - select(currentSong, false); - if(currentSong <= 0 && seq == -1) { //previous of 1st song? - currentSong = SONGS_COUNT-1; //go to last song - } else if(currentSong >= SONGS_COUNT-1 && seq == 1) { //next of last? - currentSong = 0; //go to 1st song - } else { - currentSong += seq; //next song - } - Robot.stopPlayFile(); - Robot.playFile(musics[currentSong]); - select(currentSong, true); //display the current song -} |