RC toy Arduino PC kontrolleras av 2 ledare (signal och marken) (7 / 7 steg)

Steg 7: Skicka koder till RX



Nu är det dags att prova att skicka koderna från Arduino till RX, RX69A datablad säger att stift 6 (VI2) input (som V02 utdata som vi läser), absolut högsta betyg på databladet säger att max spänning är GND-0.2V till VDD + 0.2V (Jag mätte 1,57 volt med min multimeter, så om någon kan berätta vad datablad försöker säga , snälla hjälp ;)

Jag började spänningsavdelare med värden från 1 milliohms, men verkar det strömmen var otillräckligt, i slutet jag använde två 100 kilohms motstånd, släppa spänningen till 2.5V (spänning under 2 volt verkar inte träda i kraft).

Jag försökte skicka koden en gång bara och ibland fungerade ibland inte (släkt till 5684 micos dröjsmål?), skicka två gånger och det verkar ok.

< p > #define SYNC_US 1300 < br > #define SPACING_US 500
#define SIGNAL_US 800
#define PinPPM 8
#define cykler 2 < /p >< p > void setup() {
Serial.BEGIN(57600);
Serial.println F ("#Serial Ready").
pinMode (PinPPM, OUTPUT);
} < /p >< p > void
loop() {
IF(Serial.available() > 0) {
char inChar = Serial.read();
om (inChar == "p") {
Serial.println(inChar);
Power
pulseOut(PinPPM,SYNC_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SIGNAL_US);
pulseOut(PinPPM,SIGNAL_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
Power
pulseOut(PinPPM,SYNC_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SIGNAL_US);
pulseOut(PinPPM,SIGNAL_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
pulseOut(PinPPM,SPACING_US);
}
annars om (inChar == ' o ') {
Serial.println(inChar);
uint16_t CodeToSend = 0b0000000110000000;
SendCode(CodeToSend);
}
}
} < /p >< p > / / Ange thr port hög/låg, som används i SendCode
void pulseOut (uint8_t stift, uint16_t TimeMicro) {
digitalWrite(pin,HIGH);
delayMicroseconds(TimeMicro);
digitalWrite (pin, låg);
delayMicroseconds(TimeMicro);
} < /p >< p > void SendCode (uint16_t CodeToSend) {
Serial.Print (F ("#SendCode: S"));
för (heltal index = 0; index < 13; index ++) {
uint8_t bit = (CodeToSend & (1 << index))! = 0;
Serial.Print(bit);
}
Serial.println();

för (int x = 0; x < cykler; x ++) {
pulseOut (PinPPM, SYNC_US);
för (heltal index = 0; index < 13; index ++) {
uint8_t bit = (CodeToSend & (1 << index))! = 0;
IF(bit == 1)
pulseOut (PinPPM, SIGNAL_US);
annat
pulseOut (PinPPM, SPACING_US);
}
}
} < /p >

Arbetat! Skicka "p" eller "o ' från seriella monitor jag kunde vända tanken på och av.

Testa "vänster motor fram" kod, verkar motorn fungerade för lite tid och slutade, att vi kommer att behöva hålla kommandot skickades samtidigt som vi vill ha tanken i rörelse.

Nu är det dags att den fullständiga ansökan. Använda ascii i seriella överföringar är det enklaste sättet, men jag vill ekonomin byte (ser att min framtida projekt, om vi använder en röding för varje knapp behövs 8 byte, med bitar vi behöver bara en byte).

Min kommunikation struktur har 10 byte på grund av en annan (samtidig) projekt, den första byten är prefix, andra är typ, byte 3 till 8 är data (kommandon, sensorer, etc) och byte 9 och 10 är för CRC. Ta en titt i koder.

Kompatibilitet med ascii meddelande jag använder "#" som prefix och "\r" som postfix, för min användning är det ok.

Jag bifogade två källkoder, en "registeransvarige" för visual studio 2010 c# .net och en för Arduino. Tänk på din att koden är inte komplett inte och buggfri. ;)

Om du inte har visual studio och du vill prova detta instructable, kan du köra Controller\bin\Debug\Controller.exe (require.net framework 4), ansluter till Arduino seriell port (du kan använda Arduino USB datakabel eller Bluetooth-enhet ansluten till TX/RX), kontrollera kryssrutan "fånga tangentbord för att styra" och Använd knapparna nedan (registeransvarige lyssnar endast dessa nycklar) :

UPP = Tank fram

NED = Tank bakåt

VÄNSTER = Tank vänster

HÖGER = Tank höger

Q = torn vänster

W = brand

E = torn höger

P = Power (på/av)

Controller få nyckeln ner (action) och nyckel (stop) händelser och anger bitarna i en byte och skicka till Arduino.

Arduino får den byten genom seriella och ange bitar till en 16 bitar variabel att skicka koden till RX.

Om du läser noga koderna, allt blir klart och tydligt (hoppas jag) ;)

Ledsen för min dålig engelsk (jag försökte mitt bästa. om du vill göra en översyn, är du välkommen att skicka mig ett privat meddelande)

Jag hoppas du gillar denna artikel.

Se Steg
Relaterade Ämnen

Arduino bil kontrolleras via Bluetooth

Alla vet vi att Arduino är en utmärkt prototyping plattform, främst eftersom den använder ett eget programmeringsspråk och det finns en hel del extra otroliga komponenter som ger oss stora upplevelser.Vi kan integrera Arduino med differents sköldar e...

Stripboard Arduino shield för att programmera ATtiny45 och ATtiny85

detta instructable (angett i Arduino Challenge contest - du kan rösta på det ovan) visar hur man gör en stripboard Arduino shield för programmering antingen ATtiny45 eller ATtiny85 mikrokontroller med en Arduino, enligt dessa tutorials från High-Low...

Hur man gör en billig 16 MHz Arduino oscilloskop med hjälp av Excel och skärmen till Visa

Ofta kommer att en elektronik hobby designa och bygga något bara för att upptäcka att det inte beter sig som han eller hon tänkt. Ibland i dessa situationer är problemet relaterat till en elektrisk signal, men att saker rör sig med ljusets hastighet!...

Arduino BLE temperatur/luftfuktighet logger med DHT11 och iOS-skärm

I detta projekt kommer vi att bygga en enkel temperatur/luftfuktighet datalogger utifrån BlueDuino R2 och display på iOS. Det är lätt att bygga och hålla liten storlek.Steg 1: material BlueDuino Rev2 är en Arduino kompatibel microcontroller utvecklin...

Kontrollera lamporna med Pebble smartwatch och Arduino

The Pebble smartwatch är... Tja, smart! De senaste uppdateringarna på en tredje part iOS app har gjort för att skicka HTTP-begäran, vilket är bra för att kontrollera många hemautomation system.I denna tutorial jag visar hur du ställer in en webbserve...

Arduino låda kontrolleras av TV-fjärrkontroll och koden

Detta instructable visar dig hur jag har skapat en låda kontrolleras fjärrkontroll av en IR-sändare för TV. Jag har tagit inspiration av detta instructable kontroll någon krets med en TV Remote (och en Arduino). I denna länk kan du upptäcka bibliotek...

Arduino tal kontrollera och upptäcka hinder Robot

Roboten kontrolleras av röstkommandon med Arduino och med Android telefon google röst till text kontrolleras med hjälp av programmethttp://make.robimek.com/Voice-commands-Controlled-robot/Steg 1: material:1-applikationer: https://play.google.com/stor...

Arduino Bluetooth kontrolleras båt - fartyg

Hej, i detta projekt ska jag visa dig hur att förvandla en enkel RC båt till Bluetooth kontrolleras genom din Android smartphone!I min rc båt valde jag att bygga mitt eget Arduino-baserad krets eftersom Arduino uno ombord inte passar inuti den! Men,...

Arduino Bluetooth kontrolleras RC bil

I detta instructable jag ska visa dig hur man gör Bluetooth kontrolleras bil med 2 DC motorer.Steg 1: material Material:1,2 x DC-motor2.L298N (motor controler)3. Arduino Uno (eller klon)4.HC-05 (bluetooth-modul)Steg 2: Chassi redigering Jag avbröt mi...

Arduino Uno kontrollera min 8-note Sequencer

detta är en video av mig med min Arduino Uno för att styra min anpassade 8-note sequencer.Här är programmet:Source code.Detta är den ursprungliga videon där jag demo 8-note sequencer på egen hand:Ursprungliga VideoOm du har frågor, Välkommen att fråg...

Kontrollera din motors med L293D och Arduino

efter lång forskning och försök och misstag, jag kom till en ny genomgång om detta fina chip, L293D.Varje projekt är ett projekt och var och en har sin egen unika power konfigurationer, så du måste vara medveten om det bästa batteri valet och hur du...

Arduino dubbla kontrolleras RC bil (Bluetooth och WiFi)

Detta projekt kommer att kombinera programvara och hårdvara med en Android app och Arduino modul.Saker du behöver för att slutföra detta projekt:1. gamla, begagnad eller skräp RC bil2. Arduino nano3. HC-05 / HC-06 Bluetooth-modul4. ESP8266 WiFi modul...

Automatiska mörkar med Arduino. Kontrolleras av Android-TV Remote-knappar-klocka

Hej där!Första Instructable...Varje dag på morgonen jag öppna upp rullgardinen på 8:00 och jag stänger det @ 19:00 pm, så jag bestämde mig att automatisera hela förfarandet.Jag använder en Arduino pro mini 5v, kodare för nuvarande position, RTC klock...

Arduino låter dig spela Atari 2600 och ZX Spectrum handkontroll NES

detta instructable visar hur du använder NES controller i Atari 2600 eller ZX Spectrum (med Kempston Interface) med hjälp av en Arduino.Steg 1: Bakgrund tala jag har nyligen köpt ett par Atari 2600s och en massa joysticks. Båda konsolerna arbetade me...

Industriella Arduino! Låg kostnad industriella pick och place maskin

jag har velat gå med denna gemenskap i evigheter, så nu tiden är inne. Och jag ville dela detta med er alla. Så detta är min första tid, vara mjuk...Jag har alltid diskuterat väder kan du använda en Arduino för industriellt bruk... Och Jo jag tror ja...

Smart hemautomation webserver på OpenWRT router WR703N kopplats ihop till Arduino, jämfört med Raspberry Pi och Ubuntu

Hämta WR703N Digest (340MB zip-fil):https://sourceforge.net/projects/wr703n/---------------------------------------------------------------------------------------------------------------------------------Kära läsare,Det finns många Linux styrelser p...

Arduino Bluetooth Garage dörrkontroll med sensorer och anpassningsbara Android App

Använda en arduino till aktivera reläer för att öppna garageportar och elektriska dörrlås.En anpassningsbar Android App, ansluter till arduino via lösenordsskyddade bluetooth-ihopparningen.En bluetooth hc-05 modul tar emot kommandon från en android-t...

DIY - Hur att använda Arduino Uno att skicka ett mail, SMS och göra en röst kalla

Undrar hur man skickar e-post via din Arduino Uno? Var inte orolig... Denna handledning video kommer att upplysa du på steg för steg process för att skicka e-post, SMS-meddelanden samt ringa röstsamtal med 3G/GPRS sköld genom libelium kommunikation.N...

Arduino Real tid väckarklocka med temperatur och LED belysning. Fjärrstyrda

Arduino klocka, med batteribackup (realtidsklocka), tid, datum, Alarm, temperatur, LCD utgång, IR-fjärr ingång, viloläge, LED-belysning (10 X) röd och blå multi-mode.Steg 1: Steg 1: delar listaArduino klocka, med batteribackup (realtidsklocka), tid,...