diff options
Diffstat (limited to 'libraries/Robot_Control/examples/explore/R01_Logo/R01_Logo.ino')
-rw-r--r-- | libraries/Robot_Control/examples/explore/R01_Logo/R01_Logo.ino | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/libraries/Robot_Control/examples/explore/R01_Logo/R01_Logo.ino b/libraries/Robot_Control/examples/explore/R01_Logo/R01_Logo.ino deleted file mode 100644 index 794479e..0000000 --- a/libraries/Robot_Control/examples/explore/R01_Logo/R01_Logo.ino +++ /dev/null @@ -1,134 +0,0 @@ -/* Robot Logo - - This sketch demonstrates basic movement of the Robot. - When the sketch starts, press the on-board buttons to tell - the robot how to move. Pressing the middle button will - save the pattern, and the robot will follow accordingly. - You can record up to 20 commands. The robot will move for - one second per command. - - This example uses images on an SD card. It looks for - files named "lg0.bmp" and "lg1.bmp" and draws them on the - screen. - - 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 - -int commands[20]; // array for storing commands - -void setup() { - // initialize the Robot, SD card, and display - Robot.begin(); - Robot.beginTFT(); - Robot.beginSD(); - - // draw "lg0.bmp" and "lg1.bmp" on the screen - Robot.displayLogos(); -} - -void loop() { - - Robot.drawBMP("intro.bmp", 0, 0); //display background image - - iniCommands(); // remove commands from the array - addCommands(); // add commands to the array - - delay(1000); // wait for a second - - executeCommands(); // follow orders - - Robot.stroke(0,0,0); - Robot.text("Done!", 5, 103); // write some text to the display - delay(1500); // wait for a moment -} - -// empty the commands array -void iniCommands() { - for(int i=0; i<20; i++) - commands[i]=-1; -} - -// add commands to the array -void addCommands() { - Robot.stroke(0,0,0); - // display text on the screen - Robot.text("1. Press buttons to\n add commands.\n\n 2. Middle to finish.", 5, 5); - - // read the buttons' state - for(int i=0; i<20;) { //max 20 commands - int key = Robot.keyboardRead(); - if(key == BUTTON_MIDDLE) { //finish input - break; - }else if(key == BUTTON_NONE) { //if no button is pressed - continue; - } - commands[i] = key; // save the button to the array - PrintCommandI(i, 46); // print the command on the screen - delay(100); - i++; - } -} - -// run through the array and move the robot -void executeCommands() { - // print status to the screen - Robot.text("Excuting...",5,70); - - // read through the array and move accordingly - for(int i=0; i<20; i++) { - switch(commands[i]) { - case BUTTON_LEFT: - Robot.turn(-90); - break; - case BUTTON_RIGHT: - Robot.turn(90); - break; - case BUTTON_UP: - Robot.motorsWrite(255, 255); - break; - case BUTTON_DOWN: - Robot.motorsWrite(-255, -255); - break; - case BUTTON_NONE: - return; - } - // print the current command to the screen - Robot.stroke(255,0,0); - PrintCommandI(i, 86); - delay(1000); - - // stop moving for a second - Robot.motorsStop(); - delay(1000); - } -} - -// convert the button press to a single character -char keyToChar(int key) { - switch(key) { - case BUTTON_LEFT: - return '<'; - case BUTTON_RIGHT: - return '>'; - case BUTTON_UP: - return '^'; - case BUTTON_DOWN: - return 'v'; - } -} - -// display a command -void PrintCommandI(int i, int originY) { - Robot.text(keyToChar(commands[i]), i%14*8+5, i/14*10+originY); -} - |