Skip to content

Instantly share code, notes, and snippets.

@lucabelluccini
Last active December 17, 2015 11:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucabelluccini/5604634 to your computer and use it in GitHub Desktop.
Save lucabelluccini/5604634 to your computer and use it in GitHub Desktop.
DesktopDefender Sketch for Arduino v1 + Schematics
/*
+-------+-------+------+--------+------+-------+--------+ 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