Last active
December 17, 2015 11:48
-
-
Save lucabelluccini/5604634 to your computer and use it in GitHub Desktop.
DesktopDefender Sketch for Arduino v1 + Schematics
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
+-------+-------+------+--------+------+-------+--------+ K BLACK | |
| BLACK | WHITE | GREY | PURPLE | BLUE | GREEN | YELLOW | | |
+---+---+--+----+--+---+-+------+--+---+---+---+----+---+ R RED | |
+ + + + + + + | |
| | | | | | | G GREEN | |
+------|-----+-|-----|-+ | | | | |
+-|-----|-|-----|-|-----+-|-----+-+ | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | |
+ + + + + + + + + + + + + +------+ | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+---+-+ | |
|D 4 | D 2 | D 3 | D 1 | C NO | | |
+-----+-------+-------+-------+-------+ +------------------------+ | |
|GND I1 I2 I3 I4 VCC|R K G| |BLUETOOTH MODULE | | |
+-----------------------------+-------+ +------------------------+ | |
| 4 RELAIS MODULE |RELAY M| |RTS RX TX VCC CTS GND | | |
+-+---+----+----+-----+----+--++--+--++ +----+--+--+-------+-----+ | |
+ + + + + + + + + + + + + | |
| | | | | | | | | | | | | | |
| | | | | +---+ | | | | | | | |
| | | | | | | | | | | | | |
+ + + + + + + + + + + + | |
+-+---+----+----+-----+----+------+--+-----------------+--+--+-------+-----+ | |
| GND D7 D6 D5 D4 5V GND D8 D3 D2 5V GND | | |
|--------------------------------------------------------------------------| | |
| ARDUINO | | |
+--------------------------------------------------------------------------+ | |
*/ | |
#include <SoftwareSerial.h> | |
int bluetoothTx = 2; // TX-O | |
int bluetoothRx = 3; // RX-I | |
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); | |
enum ePinMapping { | |
Up = 4, | |
Down = 5, | |
Left = 6, | |
Right = 7, | |
Play = 8 | |
}; | |
int Period = 50; | |
int aPin = 0; | |
void setupBluetooth() | |
{ | |
bluetooth.begin(115200); // Default baud rate for bluetooth | |
bluetooth.print("$$$"); // CMD mode | |
delay(100); // Short delay, wait for the Mate to send back CMD | |
bluetooth.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity | |
bluetooth.begin(9600); // Start bluetooth serial at 9600 | |
} | |
void setup() | |
{ | |
Serial.begin(9600); | |
setupBluetooth(); | |
pinMode(Up, OUTPUT); | |
pinMode(Down, OUTPUT); | |
pinMode(Left, OUTPUT); | |
pinMode(Right, OUTPUT); | |
pinMode(Play, OUTPUT); | |
} | |
int commandToPin(const char iData) | |
{ | |
switch(iData) | |
{ | |
case 'U': return Up; | |
case 'D': return Down; | |
case 'L': return Left; | |
case 'R': return Right; | |
case 'P': return Play; | |
default: return 0; | |
} | |
} | |
void activatePin(const int iPin) | |
{ | |
digitalWrite(iPin, HIGH); | |
delay(Period); | |
digitalWrite(iPin, LOW); | |
} | |
bool dataAvailable() | |
{ | |
//return (Serial.available() > 0); | |
return (bluetooth.available() > 0); | |
} | |
char dataRead() | |
{ | |
//return Serial.read(); | |
return bluetooth.read(); | |
} | |
void loop() | |
{ | |
// Receive data from serial port | |
if(dataAvailable()) | |
{ | |
aPin = commandToPin(dataRead()); | |
if(aPin) | |
activatePin(aPin); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment