RC speelgoed Arduino PC gecontroleerd door 2 draden (signaal en grond) (7 / 7 stap)

Stap 7: Stuur Codes naar RX


Nu is het tijd om te proberen om de codes van Arduino naar RX, RX69A gegevensblad zegt dat de pin 6 (VI2) wordt ingevoerd (zoals V02 is de output die we lezen), absolute maximale waarderingen op gegevensblad vertellen ons dat max spanning is GND-0.2V aan VDD + 0.2V (ik heb gemeten 1.57 volt met behulp van mijn multimeter, dus als iemand welke gegevensblad probeert vertellen kan te zeggen , gelieve te helpen ;)

Ik begon de scheidingslijn van de spanning met behulp van waarden uit 1 gelijkstroomweerstand, maar lijkt dat stroom was onvoldoende, aan het einde ik gebruikte twee 100 kilohms weerstanden, daalt de spanning te 2.5v (spanning onder 2 volt lijkt niet kracht).

Ik heb geprobeerd om de code één keer alleen en soms werkte soms niet (gerelateerd aan 5684 micos vertraging?), verzenden van twee keer, en het lijkt ok.

 <p>#define SYNC_US 1300<br>#define SPACING_US 500 #define SIGNAL_US 800 #define PinPPM 8 #define CYCLES 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(); if(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); } else if (inChar == 'o'){ Serial.println(inChar); uint16_t CodeToSend = 0b0000000110000000; SendCode(CodeToSend); } } }</p><p>// set thr port high/low, used in SendCode void pulseOut(uint8_t pin, uint16_t TimeMicro){ digitalWrite(pin,HIGH); delayMicroseconds(TimeMicro); digitalWrite(pin, LOW); delayMicroseconds(TimeMicro); }</p><p>void SendCode(uint16_t CodeToSend){ Serial.print(F("#SendCode: S")); for (int index = 0; index < 13; index++) { uint8_t bit = (CodeToSend & (1 << index)) != 0; Serial.print(bit); } Serial.println(); for(int x = 0; x < CYCLES; x++){ pulseOut(PinPPM, SYNC_US); for (int index = 0; index < 13; index++) { uint8_t bit = (CodeToSend & (1 << index)) != 0; if(bit == 1) pulseOut(PinPPM, SIGNAL_US); else pulseOut(PinPPM, SPACING_US); } } }</p> 

Werkte! Verzenden 'p' of ' o ' van seriële monitor ik kan het Tank aan en uit zetten.

Testen "linker motor vooruit" code, lijkt de motor werkte voor een tijdje en gestopt, dat we zullen moeten blijven de opdracht verzenden, terwijl we de tank in beweging willen.

Nu is het tijd om de volledige toepassing. Het gebruik van ascii in seriële transmissies is de eenvoudigste manier, maar ik wil economie van bytes (op zoek naar mijn toekomstige projecten, als wij voor elke knop een char gebruiken zullen we 8 bytes, met behulp van bits moeten we slechts één byte).

Mijn communicatiestructuur hebben 10 bytes vanwege een andere (gelijktijdig) projecten, de eerste byte is voorvoegsel, de tweede is type, bytes 3 tot en met 8 is gegevens (opdrachten, sensoren, enz.) en bytes 9 en 10 is voor CRC. Neem een kijkje in de codes.

Compatibiliteit met de mededeling van de ASCII-ik gebruik "#" als voorvoegsel en "\r" als postfix, voor mijn gebruik it's ok.

Ik aangesloten de twee broncodes, een "de controller" voor visual studio 2010 c# .net en één voor de Arduino. Houd in gedachten dat de code niet compleet is en niet bug vrij. ;)

Als u niet over visual studio beschikt en u wilt proberen dit instructable, kunt u uitvoeren van Controller\bin\Debug\Controller.exe (het kader van het require.net 4), sluit aan op de seriële poort Arduino (u kunt Arduino USB kabel of Bluetooth-apparaat aangesloten op TX/RX), Controleer het vakje 'capture toetsenbordtoetsen te controleren' en gebruik de toetsen hieronder (de controller zal luisteren alleen deze sleutels) :

OMHOOG = Tank vooruit

OMLAAG = Tank achteruit

LINKS = links van de Tank

RECHTS = rechts van de Tank

Q = torentje links

W = brand

E = rechts van het torentje

P = vermogen (aan/uit)

Controller zal ontvangen van de toets ingedrukt (actie) en toets omhoog (stop) evenementen en instellen van de bits in een byte en verzenden van Arduino.

Arduino ontvangt dit byte-bereik via seriële en set bits aan een 16-bits variabele de code te sturen naar de RX.

Als je goed de codes leest, alles zal duidelijk en gemakkelijk (hoop ik) ;)

Sorry voor mijn slechte Engels (ik probeerde mijn best. als je wilt om een herziening, u bent welkom bij Stuur me een prive bericht)

Ik hoop dat u geniet van dit artikel.

Gerelateerde Artikelen

Arduino kleurenmixer gecontroleerd door iPhone

Arduino kleurenmixer gecontroleerd door iPhone

robotwedstrijd 18 jaar of ouderDit is de video demonstratie van hoe het uiteindelijke product zal uitzien.  Dit kan ook gemakkelijk worden gebruikt om te bepalen van een arduino robot of alles op alles wat de arduino draait!Als de video niet afgespee
Arduino-vak gecontroleerd door TV afstandsbediening en CODE

Arduino-vak gecontroleerd door TV afstandsbediening en CODE

Dit instructable u tonen hoe ik heb gemaakt een doos gecontroleerd ras door een infrarood zender TV. Ik heb genomen inspiratie door dit instructable controle om het even welk Circuit met een TV Remote (en een Arduino). In deze link kunt u ontdekken b
Automatische Blinds met Arduino. Gecontroleerd door Android-TV Remote-knoppen-klok

Automatische Blinds met Arduino. Gecontroleerd door Android-TV Remote-knoppen-klok

Hallo jij daar!Eerste Instructable...Dagelijks in de ochtend open ik de blind bij 8:00 am en ik dicht op waas @ 19:00 uur, dus heb ik besloten voor het automatiseren van de gehele procedure.Ik gebruik een Arduino pro mini 5v, Encoder voor huidige pos
Android + Arduino + bluetooth gecontroleerde RC speelgoed

Android + Arduino + bluetooth gecontroleerde RC speelgoed

Hoi techneuten dit is ma eerste project met behulp van de Arduino.This is een eenvoudig project. Ik dank de andere instructable leden in ma problemen op te lossen.Dit speelgoed kan worden gecontroleerd met behulp van touch bediening anders met behulp
Arduino 4WD rover bluetooth gecontroleerd door Android telefoon/tablet

Arduino 4WD rover bluetooth gecontroleerd door Android telefoon/tablet

Arduino 4WD bluetooth gecontroleerde roverDit is een eenvoudige 4WD rover die ik heb met Arduino gemaakt.de rover is aangestuurd met een android telefoon of tablet via bluetooth. Met deze app kunt u snelheid (met behulp van de Arduino pwm), voeren me
Scanner Rgb Led Lamp Pwm gecontroleerd door Arduino Nano

Scanner Rgb Led Lamp Pwm gecontroleerd door Arduino Nano

Gerecycled scanner rgb led lamp pwm gecontroleerd door Arduino NanoStap 1: EindresultaatDit is wat je krijgt als je dit volgen instructable.Stap 2: Een printer zoekenZoekt u een gebroken hp all-in-one printer. (Andere merken kunnen ook de onderdelen,
4.0 van de Bluetooth aan uw Arduino Project [IoT] - gecontroleerd door Smartphone toe te voegen

4.0 van de Bluetooth aan uw Arduino Project [IoT] - gecontroleerd door Smartphone toe te voegen

Wij zijn groep van internet van dingen-liefhebbers die houden van hacken samen verschillende apparaten. Check out onze huidige project op onze website en neem een kijkje op deze handleiding in een andere indeling op onze blog.Stap 1: InleidingArduino
Robotic Hand gecontroleerd door gebaar met Arduino + sprong Motion

Robotic Hand gecontroleerd door gebaar met Arduino + sprong Motion

Belangrijk: Zoals beloofd ik m maken een volledige stap voor stap instructies: Klik hierHallo iedereen, dit is gewoon een video over mijn laatste project van de Universiteit!De hand wordt gecontroleerd door sprong Motion Arduino Uno (standaard Firmat
Een videogame gecontroleerd door uw hond

Een videogame gecontroleerd door uw hond

Arduino hond is een project dat ik voor de cursus belichaamd interactie als onderdeel van de MSc in Interaction Design aan de Universiteit van Malmö (Zweden verricht). Aangezien de opdracht was om een spel met Arduino en Processing met behulp van fys
Pan-Tilt gecontroleerd door Cell Phone

Pan-Tilt gecontroleerd door Cell Phone

Hallo allemaal,In dit mijn nieuwe project laat ik aan u een Pan-Tilt gecontroleerd door Cell Phone.Alle bewegingen van de mobiele telefoon worden gereproduceerd in de pan-tilt-apparaat via Bluetooth.De bouw is zeer eenvoudig met behulp van een Arduin
ROBOT gecontroleerd door menselijke VINGERS

ROBOT gecontroleerd door menselijke VINGERS

Deze vernieuwing komt van de handbewegingen die controle een robot kunnen. In dit project ik gebruik flex sensor en ik ben het nemen van de flex-sensor lezen en zetten deze lezing op de intel edison. Als een analoge waarde en manipuleren van deze waa
Hoe te hardwire een discobal motor te worden gecontroleerd door een externe schakelaar!

Hoe te hardwire een discobal motor te worden gecontroleerd door een externe schakelaar!

Ooit had een tijd met een batterij aangedreven discobal motor, waar je moest bereiken en morrelen voor de switch?Die tijden zijn voorbij!Niveau: beginnerWAARSCHUWING! ALS JE DIT VERKEERD DOET, ZAL UW MOTOR BREKEN!!! PROBEER ALS JE ONERVAREN BENT NIET
Robotarm gecontroleerd door Intel Edison

Robotarm gecontroleerd door Intel Edison

Hallo mijn vriend!Hier zal ik je laten zien hoe ik een robotachtig wapen gecontroleerd door Intel Edison en onder bevel van Motion sprong gemaakt.Het 3D-model gebruikt in dit project is een zeer goede open bronproject hier gevonden: http://inmoov.frS
Mini kruisboog gecontroleerd door joystick shield

Mini kruisboog gecontroleerd door joystick shield

In dit project maakte we een mini kruisboog in 3D-printer gecontroleerd door een joystick schild compatibel gemaakt met ArduinoStap 1: materialenIntel EdisonArduino Expansion BoardJoystick Shield v2.43 servomotoren9 jumpersHotmelt lijmpistoolVeilighe