Sparki comes with an infrared remote control, similar to the kind used to control TVs. It is used to send infrared codes to Sparki, which it can receive with its infrared remote receiver.
This command returns the last code that was sent to Sparki. It returns this number in the form of an integer. If there has not been a code sent since the last time Sparki ran this command, it will send back a -1.
SparkiDuino already has code examples for you to use:
File > Examples > Remote
Also, you can try more complex programs, such as Sparki’s Default Program.
How It Works
Each button on the remote sends a certain code to Sparki, which it can receive with its infrared remote receiver. The codes each button on the remote sends is listed below:Using the Part
With the basic Sparki code in place, you can measure an infrared sensor by using this command:
1 |
sparki.readIR(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
/******************************************* IR Remote Sparki has a sensor that lets it receives commands from the included remote control. Try moving it around! ********************************************/ #include <Sparki.h> // include the sparki library void setup() { sparki.clearLCD(); } // /------^----- // | | // | 69 70 71 | // | 68 64 67 | // | 7 21 9 | // | 22 25 13 | // | 12 24 94 | // | 8 28 90 | // | 66 82 74 | // ____________/ void loop() { int code = sparki.readIR(); if(code != -1){ sparki.print("Received code: "); sparki.println(code); } switch(code){ // Movement buttons case 70: sparki.moveForward(); break; case 21: sparki.moveBackward(); break; case 67: case 71: sparki.moveRight(); break; case 69: case 68: sparki.moveLeft(); break; case 64: sparki.moveStop(); sparki.gripperStop(); break; // Gripper Buttons case 9: sparki.gripperOpen(); break; case 7: sparki.gripperClose(); break; // buzzer case 74: sparki.beep(); break; // Servo Buttons case 90: sparki.servo(SERVO_LEFT); break; case 28: sparki.servo(SERVO_CENTER); break; case 8: sparki.servo(SERVO_RIGHT); break; // RGB LED case 25: sparki.RGB(RGB_OFF); break; case 12: sparki.RGB(RGB_RED); break; case 24: sparki.RGB(RGB_GREEN); break; case 94: sparki.RGB(RGB_BLUE); break; default: break; } sparki.updateLCD(); } |