adding pink trombone, rfid arduino code, camera views rotater, !go and !turn commands
[lolcam] / ir_send / ir_send.ino
1 #include <IRLibSendBase.h>
2 #include <IRLib_P01_NEC.h>
3 #include <IRLibCombo.h>
4 #include "lolcam_globals.h"
5
6 IRsend mySender;
7
8 void setup()
9 {
10   Serial.begin(BAUDRATE);
11   Serial.println("Infrared transmitter initialized");
12 }
13
14 void loop()
15 {
16     unsigned long ir_command = 0;
17     if (Serial.available() > 0)
18     {
19         int length = 11;
20         byte input[length];
21         char newline = '\n';
22         Serial.readBytesUntil(newline, input, length);
23         Serial.print("I received: ");
24         for (int ii = 0; ii < length; ii++)
25         {
26             Serial.print(input[ii], DEC);
27             Serial.print(" ");
28         }
29         Serial.println();
30         unsigned long swap = (unsigned long) input[9] << 23;
31         unsigned long repeat_delay = (unsigned long) input[8] << 19;
32         unsigned long repeats = (unsigned long) input[7] << 16;
33         unsigned long flip = (unsigned long) input[6] << 15;
34         unsigned long robot_id = (unsigned long) input[5] << 14;
35         unsigned long right_sign = (unsigned long) input[4] << 13;
36         unsigned long left_sign = (unsigned long) input[3] << 12;
37         unsigned long right = (unsigned long) input[2] << 8;
38         unsigned long left = (unsigned long) input[1] << 4;
39         unsigned long time = (unsigned long) input[0];
40         unsigned long command = 0xFF000000 | swap | repeat_delay | repeats | flip | robot_id | right_sign | left_sign | right | left | time;
41         Serial.print("Constructed command: ");
42         Serial.print(command, HEX);
43         Serial.print(" ");
44         Serial.println(command, BIN);
45         mySender.send(PROTOCOL, command, IR_SIGNAL_BITCOUNT);
46     }
47     if (ir_command == 0)
48     {
49         delay(IR_TRANSMITTER_SLEEP);
50     }
51 }