Arduino RC bil med FPV Camera (6 / 15 steg)

Steg 6: C# program gängning och XBox 360 Controller Input




Den första biten av programvara jag skrev för detta projekt var för XBox 360-styrenheten (du kanske har märkt att det ursprungliga namnet Visual Studio-projekt har genomförts till slutet!). XBox controller koden hittar du i den första delen av filen "Form1.cs". Som nämnts i föregående steg, här koden fungerar bara om Xinput dotnet omslaget har konfigurerats (dvs "XInputDotNetPure.dll" har lagts till som en referens i C#-projektet, och "XInputInterface.dll" är i samma mapp som den .exe-fil).

Koden fungerar genom att upprepade gånger polling handkontrollen för att hämta status för knappar och analoga kontroller. På grund av denna polling insåg jag att programmet skulle behöva flera trådar, för att fungera alls. Detta var lite av en utmaning, som jag inte hade faktiskt skrivit ett flertrådat program innan den här. Efter att titta på några exempel och tutorials, jag bestämde mig för att det skulle vara en huvudprogrammet tråd för det grafiska användargränssnittet (GUI), en separat tråd för hantering av XBox 360-handkontrollen och flera fler trådar för andra saker. Flera trådar kan alla dessa saker att arbeta parallellt, utan någon märkbar fördröjning i GUI.

I Xbox controller tråd, är controller status intervjuade med ca 50Hz, så det har alltid mycket aktuella data. Denna controller-data återspeglas också på GUI, och knapptryckningar är markerad i orange. Det gör cross-tråd data överföringar behövdes. Jag använde begreppet "delegates" för att tillåta trådar att "påverka" varandra. Du märker också ett antal "... shared_" variabler som används i flera trådar.

Denna del av koden har också en räknare som håller koll på controller "ramar". I samband med min kod avser ramarna när controller status har lästs. Räknare "samplecount" och "oldsamplecount" används så att långa knapptryckningar kan hanteras korrekt. Som ett exempel, har jag kopplat vissa digitala knappar så att ett tryck aktiverar en funktion, och nästa pressen deaktiverar funktionen. Om en lång tryckning inte är hanteras på rätt sätt, kommer att programmet växla funktionen på och av kontinuerligt. Koden kan hantera en lång tryckning som enda tryck genom att jämföra värdet av oldsamplecount mot samplecount. Om skillnaden mellan de två variablerna är för liten, visas det som en lång tryckning.

Se Steg
Relaterade Ämnen

Kontroll Arduino RC bil med android telefon & 1Sheeld

Om du vill kontrollera RC bil med din android smartphone utan att använda Bluetooth-modul och programmering android ansökan, kan du använda 1Sheeld i stället för dem.I grund och botten består 1Sheeld av två delar. Den första delen är en sköld som är...

Arduino RC bil med lång räckvidd och anpassade sändare.

Hej! Detta är min första instructable.I det ska jag visa dig hur man gör en RC bil med Arduino och den trådlösa modulen nrf24l01 +, eller hur du uppgraderar ett billigt 27 MHz RC bil.Den gamla RC bil, som från jag ta chassit och heli Controller, jag...

1. BM ARDUINO kontrollerad bil med HC-SR04

Med detta projekt vill jag visa dig vägen om hur du konverterar en RC bil in i en bil kontrolleras bil med Arduino Uno R3.Steg 1: Material som behövs: RC bil (med avskilda bakhjulet motorer)Arduino Uno R39V battarySladdarUltra Sonic sensor HC-SR04Str...

Arduino kontrollerad bil med colission undvikande

Tanke på rätt tid och kärlek, kommer att denna bil undvika saker framför den. kom och följ med när vi går igenom stegen för att bygga detta awesome projekt...Steg 1: Samla material Ta en gammal bil från din lokala sparsamhet butik, och samla in alla...

RC tank med en glidande FPV camera

Hej.I detta instructable jag visa dig hur man bygger fjärrkontroll tank med FPV camera. I början jag bygger bara RC tank utan FPV kamera men när jag körde det i huset har jag inte sett vart det är. Så jag kom på att jag kommer att lägga till det kame...

Autonoma Arduino bil med infraröd närhets-Sensor

Detta Instructable visar hur du ändrar en preloved RC bil så det kan styras med en Arduino. Sedan visar Instructable dig hur man gör RC kör en enkel figur 8 kod därifrån Instructable visar dig hur du lägger till en infraröd rörelsesensor så det kan i...

Bluetooth kontrollerad Arduino RC bil

detta projekt är något som jag började för min Microcontroller klass. Vi var i uppdrag att plocka antingen Arduino eller Raspberry pi och sedan få MCU styra en RC bil eller göra något fancy med en RC bil; Sedan när vi bestämt vad vi ska göra skulle v...

Remote Control bil med Arduino och Bluetooth

Projektet består i att göra en fjärrkontroll bil använder en bluetooth-anslutning. Denna bil är tänkt att användas i en ballong poppar konkurrens mot andra liknande bilar. Den trådlösa anslutningen uppnås genom att använda en bluetooth-modul som är a...

Datorstyrd RC bil med två Arduinos

krävs delar: detta projekt kräver två Arduino styrelser som kan köpas från http://www.adafruit.com/category/17Detta projekt använder två Arduino Uno kompatibel styrelser.En L293D eller andra Dual H-Bridge motorn förarens chip kommer att behövas att k...

Hur man gör en trådbunden Rc bil med en Arduino

Jag ska visa dig hur man gör en RC bil med en arduinoSteg 1: material2 Arduino unos (det är vad jag använde bara.)Hoppare ledningar och manliga till kvinnliga ledningar2 Arduino joysticks2 9v batterier1 9.6v laddningsbara RC bilbatteri1 tower Pro Ser...

Snabba Controlled RC bil med (4 CH Motor Driver styrenhet + Arduino + Bluetooth)

Hej, eftersom detta är min första instructable här, jag hoppas du gillar det och Känn dig fri att fråga om något inte klart i den.För det första, jag började detta projekt efter jag ville styra 4 motorer som kräver relativt hög effekt (12Volts, 4 amp...

Arduino Bluetooth RC bil med LCD-

LCD-skärmen visar var din bil riktning (till exempel rör framåt, bakåt,..)Jag har bara ändrat koden och bifoga en LCDSteg 1: Reservdelslista Arduino unoHC06 Bluetooth-modulL293D motorn förarensLCD 16 * 2Bil chassiVarierande resistorBatteri (jag använ...

Bygga ett högpresterande FPV Camera Quadcopter

Detta Instructable kommer att visa dig, i detalj, hur man bygger en hög kvalitet quadcopter för flygande FPV och inspelning antenn bilder/video.Vi vet alla människor inte kan flyga. Våra ben är alltför tät och flaxa med armarna inte producerar tillrä...

Android kontrollerade RC bil med Video i realtid via Bluetooth & Wi-Fi

på Internet finns det många artiklar om användningen av RC bilar med IP eller webbaserade kamera. Men de flesta av dem används en bärbar dator eller en intern router med Open-WRT eller DD-WRT firmware. Visa video och kontroll av RC bil i sådana proje...

Bearbetning kontroller R/C bil med XBee moduler

detta instructable är en modifiering av min presentation till Bearbetning Chicago gemenskapen vid (EVL) elektroniska visualisering Laboratory, University of Illinois i Chicago den 1 okt 2012. I ämnetBearbetning bibliotek serienBearbetning och trådlös...

Hur man styr alla R/C bil med ett flygplan sändare!

Har du någonsin undrat om du använda din R/C flygplan sändare för att styra alla R/C bil också?Hur häftigt vore det att ha 6 eller fler kanaler för att styra din R/C bil, och även anpassa varje kanal enligt ditt val?Jag har längtat att göra något så...

Arduino Bluetooth bil kontrolleras av Labview

Detta är en Arduino RC bil, ursprungligen baserade bort av ett projekt av Owen_soo. Det är mycket lättmanövrerad, kunna göra snabba svängar, gå bakåt och framåt med bara en hjälp av en strömbrytare. Detta ursprungligen bara kommer att vara en mycket...

Arduino kontrollerad bil Tracking System baserade på SMS-

Hej jag gjorde en Arduino kontrollerad bil Tracking System baserat på SMS för min fars bil.Använda modulerna är;Arduino nano V3.0SkyLab GPS-modulenWaveCom GSM-modulSoftwareSerial bibliotek, TinyGPS används för att kommunicera med moduler.När jag ring...

Pinewood derby video bil (med fjädring)

år min äldsta söner Cub Scout pack hade en öppen avdelning. Jag tror bilarna att barnen loppet bör vara sin egen skapelse. Så efter att ha tjänstgjort som säkerhet-skärm för att skapa verkliga bilen. Jag skapade en video bil med mina yngre barn.Steg...