DIY Wireless Joystick (trådlös Gaming) (4 / 11 steg)
Steg 4: Att göra mottagaren (ladda upp programmet)
Om du har följt stegen är du i slutfasen av att göra mottagaren. Använd lim eller kran eller band för att fixa allt. Jag använde gummibandet för att göra jobbet. Bilder läggs. Slutligen behöver du en USB-kabel till att ansluta den till datorn. Jag missade en sak. Du kanske använt en kort bit hopparen tråd som antenn för att öka den klingade av styrspaken trådlöst.
Jag tror att du redan gjort din mottagare. Bara ladda upp följande program till mottagaren för att göra den komplett. Du kommer att märka i skiss tre bibliotek ware används. Tangentbord och mus bibliotek ingår till Arduino IDE men du måste lägga till VirtualWire bibliotek att prata med RF-mottagare.
Du kan läsa mer om tangentbordet och musen bibliotek från Sparkfun tutorial.
#include < Mouse.h >
#include < Keyboard.h >
#include < VirtualWire.h >
CONST int led_pin = 13.
CONST int transmit_pin = 11;
CONST int receive_pin = 9;
CONST int transmit_en_pin = 3;
#define KEY_UP_ARROW 0xDA
#define KEY_DOWN_ARROW 0xD9
#define KEY_LEFT_ARROW 0xD8
#define KEY_RIGHT_ARROW 0xD7
#define KEY_BACKSPACE 0xB2
void setup()
{
Delay(1000);
Serial.BEGIN(9600); Felsökning av endast
Serial.println("Setup");
Initialisera IO och ISR
vw_set_tx_pin(transmit_pin);
vw_set_rx_pin(receive_pin);
vw_set_ptt_pin(transmit_en_pin);
vw_set_ptt_inverted(true); Krävs för DR3100
vw_setup(2000); Bitar per sekund
vw_rx_start(); Starta mottagaren PLL driften
}
void loop()
{
uint8_t buf [VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
om (vw_get_message (buf, och buflen)) / / icke-blockerande
{
digitalWrite (led_pin, hög); Flash ett ljus att Visa mottagna bra budskap
Meddelande med en bra kontrollsumma emot, skriva ut den.
Serial.Print ("fick:");
Serial.println((Char)BUF[0]);
char c = (char) buf [0];
IF(c=='W') {
Keyboard.write('w');
Delay(100);
}
IF(c=='A') {
Keyboard.write('a');
Delay(100);
}
IF(c=='S') {
Keyboard.write('s');
Delay(100);
}
IF(c=='D') {
Keyboard.write('d');
Delay(100);
}
IF(c=='U') {
Keyboard.write(KEY_UP_ARROW);
Delay(100);
}
IF(c=='B') {
Keyboard.write(KEY_DOWN_ARROW);
Delay(100);
}
IF(c=='L') {
Keyboard.write(KEY_LEFT_ARROW);
Delay(100);
}
IF(c=='R') {
Keyboard.write(KEY_RIGHT_ARROW);
Delay(100);
}
IF(c=='G') {
Keyboard.write(KEY_BACKSPACE);
Delay(100);
}
IF(c=='1') {
Mouse.Move(0,5,0);
Delay(100);
}
IF(c=='2') {
Mouse.Move(0,10,0);
Delay(100);
}
IF(c=='3') {
Mouse.Move(0,15,0);
Delay(100);
}
IF(c=='4') {
Mouse.Move(0,20,0);
Delay(100);
}
IF(c=='5') {
Mouse.Move(5,0,0);
Delay(100);
}
IF(c=='6') {
Mouse.Move(10,0,0);
Delay(100);
}
IF(c=='7') {
Mouse.Move(15,0,0);
Delay(100);
}
IF(c=='8') {
Mouse.Move(20,0,0);
Delay(100);
}
}
}