Arduino RC auto met FPV Camera (6 / 15 stap)

Stap 6: C# applicatie-Threading en XBox 360 Controller-Input


De eerste bit van software die ik schreef voor dit project was voor de XBox 360-controller (je hebt misschien gemerkt dat de oorspronkelijke naam van het Visual Studio-project heeft doorgevoerd in het einde!). De XBox controller code vindt u in het eerste deel van het bestand "Form1.cs". Zoals vermeld in de vorige stap, deze code werkt alleen als de Xinput dotnet wrapper is geconfigureerd (d.w.z. "XInputDotNetPure.dll" is toegevoegd als een verwijzing in het C#-project, en "XInputInterface.dll" is in de zelfde omslag zoals het .exe-bestand).

De code werkt door herhaaldelijk polling de controller om op te halen de status van de knoppen en de analoge besturingselementen. Als gevolg van deze verkiezingen, realiseerde ik me dat het programma meerdere threads, moeten zou om te kunnen werken op alle. Dit was een beetje een uitdaging, als ik niet had eigenlijk een multithread-toepassing vóór deze geschreven. Na het kijken naar enkele voorbeelden en tutorials, besloten heb ik dat er zou een draad van de hoofdtoepassing voor de grafische gebruikersinterface (GUI), een aparte thread voor het afhandelen van de XBox 360-controller, en diverse meer threads voor andere dingen. Meerdere threads toestaan dat al deze dingen om te werken in parallel, zonder enige merkbare vertraging in de GUI.

In de Xbox controller thread, is de status van de controller ondervraagden ongeveer 50 Hz, dus het is altijd zeer actuele gegevens. Deze controller-gegevens wordt ook weerspiegeld op de GUI, en knooppersen zijn oranje gemarkeerd. Om dit te doen, kruis-draad gegevens overdracht nodig waren. Ik gebruikt het concept van "delegates" om draden aan elkaar "beïnvloeden". U ziet ook een aantal "shared_..."-variabelen die binnen meerdere threads worden gebruikt.

Deze sectie van code heeft ook een teller die houdt van controller "frames". In het kader van mijn code verwijzen de frames naar wanneer de status van de controller ook daadwerkelijk is gelezen. De tellers "samplecount" en "oldsamplecount" worden gebruikt zodat lange knop indrukt correct worden afgehandeld. Als voorbeeld, heb ik sommige digitale knoppen toegewezen zodat één druk op een functie activeert, en de volgende pers die functie deactiveert. Als een lange druk is niet correct behandeld, zal het programma die functie in- en uitschakelen continu schakelen. De code behandelt een lange druk correct als één enkele pers door vergelijking van de waarde van oldsamplecount tegen samplecount. Als het verschil tussen de twee variabelen te klein is, wordt dit gedetecteerd als een lange druk op.

Gerelateerde Artikelen

Arduino gecontroleerde auto met vermijding van de colission

Arduino gecontroleerde auto met vermijding van de colission

Gezien de juiste tijd en liefde, zal deze auto vermijden dingen achter zit. Kom en volg mee als we gaan door de stappen te bouwen dit geweldige project...Stap 1: Verzamel materialen Pak een oude auto van uw lokale zuinigheid winkel, en het verzamelen
Arduino RC auto met lange afstand en aangepaste zender.

Arduino RC auto met lange afstand en aangepaste zender.

Hallo! Dit is mijn eerste instructable.Daarin zal ik u tonen hoe te maken van een RC auto met Arduino en de draadloze nrf24l01 +-module, of hoe om te upgraden een goedkope 27 MHz RC auto.De oude RC auto, die van I het chassis, en de heli Controller n
Controle Arduino RC auto met behulp van android telefoon & 1Sheeld

Controle Arduino RC auto met behulp van android telefoon & 1Sheeld

Als u besturen RC auto met uw Androïde slimme telefoon wilt zonder met behulp van Bluetooth-module en programmering androïde toepassing, kunt u 1Sheeld gebruiken in plaats van hen.1Sheeld bestaat in principe uit twee delen. Het eerste deel is een sch
1ste BM ARDUINO gecontroleerde auto met HC-SR04

1ste BM ARDUINO gecontroleerde auto met HC-SR04

Met dit project wil ik je laten zien de manier op hoe te converteren van een RC auto in een automatisch gecontroleerde auto met Arduino Uno R3.Stap 1: Benodigde materialen: RC auto (met gescheiden achterwiel motors)Arduino Uno R39V battaryDradenUltra
RC tank met een bewegende FPV camera

RC tank met een bewegende FPV camera

Hallo.In dit instructable ik u tonen hoe te bouwen van afstandsbediening tank met FPV camera. Begin bouw ik alleen RC tank zonder FPV camera maar wanneer ik het in het huis reed ik heb niet gezien waar het is. Dus ik kwam met dat ik aan het toevoegen
Autonome Arduino auto met infrarode nabijheidssensor

Autonome Arduino auto met infrarode nabijheidssensor

Dit Instructable laat zien hoe een preloved RC auto te wijzigen zodat het kan worden gecontroleerd door een Arduino. Vervolgens zal de Instructable u tonen hoe te maken van de RC uitvoeren dat een eenvoudige figuur 8 code vanaf daar de Instructable z
Bluetooth gecontroleerde Arduino RC auto

Bluetooth gecontroleerde Arduino RC auto

dit Project is iets wat ik voor mijn klas Microcontroller gestart. Wij waren belast met het plukken van de Arduino of Raspberry pi en dan krijgen de MCU voor controle van een RC auto of verrichten iets fancy met een RC auto; Dan zodra we besloten wat
No.02 Steering Wheel Drive R/C auto met Arduino, Webcam en net. USB enz

No.02 Steering Wheel Drive R/C auto met Arduino, Webcam en net. USB enz

IP Control Car werd gelanceerd in 2001.Ik maak de soortgelijke functie auto met behulp van gecommercialiseerde producten.Het concept van auto No.02 is gecommercialiseerd producten gebruiken, en ik ben een amateur in elektrische. Dus, niet kwalijk mij
Elke externe gecontroleerde auto met behulp van Arduino

Elke externe gecontroleerde auto met behulp van Arduino

zoals dit mijn eerste is instructable ik probeerde mijn best. Deze auto is gemaakt met behulp van de arduino zonder motor Shield of ics. Deze rover kan met elke afstandsbediening die aangestuurd worden. Ten eerste moeten we om te decoderen van de afs
Lego Technic auto met Arduino en XBee Wireless Control

Lego Technic auto met Arduino en XBee Wireless Control

ik was doorlezen Instructables een fijne winter zaterdag, toen mijn 8 yo zoon kwam in en tuurde over mijn schouder en zag dit: door sath02. Mijn zoon is een grote fan van alle dingen Lego, en houdt van robots en auto's, en dit had gelijk zijn straatj
Hoe maak je een bekabelde Rc auto met behulp van een Arduino

Hoe maak je een bekabelde Rc auto met behulp van een Arduino

Ik ga u tonen hoe te maken van een RC auto met een arduinoStap 1: materialen2 Arduino unos (dat is net wat ik gebruikt.)Jumper draden en Male naar vrouwelijke draden2 Arduino joysticks2 9v batterijenoplaadbare RC accu van 1 9.6v1 tower Pro Servo1 mot
Hoe maak je Drift auto met behulp van de Arduino

Hoe maak je Drift auto met behulp van de Arduino

Hallo iedereen. Laat me voorstellen over hoe ik een DRIFT-auto met behulp van de arduino, pololu VNH5019, NRC-20 controlesysteem en verwoeste lichaam van RC auto gemaakt.Stap 1: Deze DRIFT auto bevat... 1. de Arduino UNO R3 programmeerbare bestuur2.
Arduino Bluetooth RC auto met LCD

Arduino Bluetooth RC auto met LCD

LCD-scherm laat zien waar uw auto rubriek (bijvoorbeeld bewegende vooruit, achteruit,..)Ik heb alleen maar bewerkt de code en voeg een LCDStap 1: Onderdelenlijst Arduino unoHC06 Bluetooth-moduleL293D Motor DriverLCD 16 * 2Auto chassisVariabele weerst
Afstandsbediening auto met Arduino en Bluetooth

Afstandsbediening auto met Arduino en Bluetooth

Dit project bestaat uit het maken van een auto van de afstandsbediening met behulp van een bluetooth-verbinding. Deze auto is bedoeld om te worden gebruikt in een ballon knallen competitie tegen andere soortgelijke auto's. De draadloze verbinding wor