Styra Arduino med Gamepad (4 / 5 steg)

Steg 4: Att sätta BITARNA ihop



Om du förstått fullt ut allt material i föregående steg, bör du kunna skriva ett XBox controller-till-UART gränssnitt eller genomföra PC-Arduino kommunikation på egen hand.

Som ett sista exempel jag kommer att använda en mycket enkel grej: en Arduino med några ljusdioder och summern.

Ursprungligen jag ville bygga en liten RC bil, men på grund av långa förseningar i delar leverans kommer inte jag kunna göra det åtminstone för en vecka eller så... Om du har ett par av EasyDriver stiger ombord kan du ansluta riktning stift i stället för gula lampan, och motor steg stift i stället för röda lysdioder (se skiss ovan). En piezo-Summer ansluten till pin D3 reagerar på tryck på varje knapp på handkontrollen.

Den hela funktionsbeskrivning kokar ner till detta:

  1. Läs XBox controller staten och omvandla det till en kort, men väl avgränsad sträng.
    I mitt fall skickar jag bara motor hastighet, riktning och knappläge, så meddelandet ser ut så här:
    LLL RRR D BBBB
    där LLL är vänster Motor hastigheten, RRR är den rätt varvtal och BBBB representerar knappläge.
    D är en motor riktning, som äger endast två värden: 1 för framåt och 0 för bakåt.
    Både LLL och RRR kommer att normaliseras för d÷dzoner och skalas till mindre värden (under 255)

    Alternativt kan du skicka XINPUT rådata till arduino och bearbeta den på mikrokontroller själv.

  2. Nästa, vi skickar detta meddelande via UART till Arduino
  3. Ange alla motor hastigheter till förvärvade värden och kontrollera knappen för att fastställa ytterligare åtgärder
  4. Skicka data till PC (jag skickar bara motor hastigheter för felsökning)
  5. Förvärvade data bearbetas till vissa visuell representation. Använd vad du vill, vare sig det är en enkel text i konsolfönster, eller GUI-baserat utmatning, som förloppsindikatorer, diagram, flödesscheman eller även OpenGL renderingen.

Vi har redan lärt sig att läsa UART meddelanden med evenemang, så vi inte behöver verkligen oroa rätt tid. PC-side-koden kan förbättras ytterligare med sådana häftiga saker, som multi-threading och asynkron kommunikation, men vi kommer inte att göra det idag.

Så, låt oss börja med Arduino.

Bifogat är en enkel skiss för vår RC bil. Inget speciellt, bara ställa motor hastigheter beroende på thumbstick position.

sqrt(LX*LX+ly*ly) anger omfattningen av varvtal

LY sign(-or +) bestämmer rörelseriktning (framåt / bakåt).

Baserat på värdet av LX vi definiera skillnaden mellan vänster och höger varvtal. Om LX är positivt, då lämnade motor är inställt på aktuella hastighet värdet och höger motor uses(128-LX). Om LX är negativt, tilldelar vi värden motsatt sätt.

Jag har skapat en liten klass, som kallas XBoxUart, som kombinerar allt vi lärt oss tidigare i ett enda program på PC-sidan.

Snälla, Använd länkarna nedan för att ladda ner källkoden för PC och Arduino sida.

Först, ladda upp den arduino skissen. Du kan testa om det fungerar genom att öppna en seriell bildskärm på 115200 bod och skickar data manuellt. Till exempel meddelande "100 100 1 0" är en motsvarighet till flytta framåt 100 steg (vänster och höger motors) med inga knappar tryckte. Svar bör du få strängar, visas i skärmdumpen ovan.

Obs: Glöm inte att ändra namnet på COM port till vad din Arduino CDC är. Om du har en HC-05 modul, kan du ansluta den direkt till Arduino RX och TX stift, om du vill prova det utan sladdar.

Nu kan du kompilera C++-kod i Visual Studio, starta handkontrollen XBox, starta programmet på din PC och se hur lysdioder (eller motorer) ändrar sitt beteende med rörligheten för med styrspak! Att trycka på någon knapp kommer att utlösa summern. Produktionen i konsolfönstret kommer vara som liknar det du ser på den sista skärmbilden.

Se Steg
Relaterade Ämnen

Styra Arduino med Android-telefon via Bluetooth

Hej gott folk, här kan du lära dig hur man styr Arduino med Android-telefon via Bluetooth. Du kan använda din smartphone som en fjärrkontroll för dig hem belysningssystem eller du kan använda som en drone remote etc.För att göra anslutningen mellan A...

Styra Arduino med Blynk [USB] [nybörjare] trådlöst var som helst i världen

här är hur du styr arduino med blynk via USB från var som helst i världen!Steg 1: Här är hur du styr arduino med blynk via USB från var som helst i världen!titta och njut!...

Hur man styr arduino med ett mail

Det finns många lösningar för att styra en Arduino ombord: web lösningar, desktopen applicering lösningar, lösningar. Men hur mail? Ja, du kan hitta något på nätet men de behöver ethernet sköldar och ofta är Arduino som skickar e-post. Jag kontroll A...

Styra arduino med Blynk över usb

Detta är min andra instructable. I detta instructable jag visar hur man styr LED med Blynk.Blynk är program som ger oss instrumentpanel samt connectivity. som du kan hämta den från google spela store (för Android). & app store (för apple) .using blyn...

Styra Arduino med python based web API (ingen php)

I denna guide kommer jag visa dig hur att kontrollera din arduino enhet från en webbsida! Efteråt, jag ska visa dig hur man styr din arduino från din mobila enhet och även skapa en webb-baserad API för att styra din arduino från din webbsida med andr...

Styra arduino med Blynk via usb

Detta är min andra instructable. I detta instructable jag visar hur man styr LED med Blynk.Blynk är program som ger oss instrumentpanel samt connectivity. som du kan hämta den från google spela store (för Android). & app store (för apple) .using blyn...

Styra Arduino med Facebook - det enkla sättet

Hej vänner idag jag ska visa dig hur du ansluter din Arduino till FACEBOOK och fjärrstyra din Arduino från var som helst i världen genom ditt Facebook-konto. OK det här är hur det fungerar, det finns en Facebook-konto som är ansluten till Arduino via...

Styra Arduino med PHP

Jag har nyligen sett en hel del problem när det gäller PHP och Arduino. Många människor vet inte om fakta som en arduino behöver en 2 sekunders fördröjning för (!) innan den kan ta emot meddelanden genom följetong. Det finns några andra fakta du behö...

Styra Arduino med Bluetooth (tvåspråkig Lesson)(Arabic/English)

يتيح لك هذا الدرس التحكم بتشغيل ضوء الليد عن طريق الجوال بنظام الاندرويد و يشرح كيفية عمل لوح التحكم الاردوينو مع قطعة البلوتوثDenna lektion gör att du kan styra en LED använder en Android-telefon samt förklara hur Arduino interagerar med Bluetooth-m...

Styra arduino med visual studio via bluetooth

Hej alla,Här kommer att vi kontrollera en ledde via bluetooth med din dator av en progam wirtten med visual studiovad du behöver är:1) Arduino (en)2) Bluetooth-modul (hc05 eller hc 06)3) ledde4) 2 motstånd (10ko och 15ko)och du kan göra det ;)alla ko...

Styra Arduino med visual basic 6.0

Detta instructable är en del av min bok Arduino + visual basic 6.0 (gör din egen mjukvara till kontroll arduino Robot.Visual basic 6.0 är en mycket gammal version som vissa människor kan fråga varför vi vill använda visual basic 6.0. Visual basic 6.0...

Styra arduino med joystick

efter ungefär en månad av har min arduino fick jag uttråkad så jag surfade på nätet och fann detta cool sätt att kontrollera arduinoOm du gör någon sak olaglig är jag inte hållas ansvarigaSteg 1: saker som behövs 1. arduino (duh)2. dator (om du läser...

Pyduino, gränssnitt Arduino med Python via seriell kommunikation

Lär dig hur gränssnittet arduino via seriell kommunikation med python med hjälp av pyduino biblioteket. Det finns några andra tutorials ute på instructables om hur gränssnittet arduino med python men de Visa inte dig hur man gör allt, där förhoppning...

Hack-A-lampan eller hur man kontrollerar Arduino med din smartphone

Jag fick en ikea-lampa i min lägenhet, det fungerar bra, vänd om, vänd bort... som allt det gör. Det är kindy tråkig, inte sant? Jag tänkte, Tänk om jag hacka den? Sedan kommer RGB-lysdioder till mitt huvud och idéer började flöda.På jobbet visste ja...

Styra en Arduino med PHP

här är hur man gör din Arduino göra saker från över internet utan en ethernet eller wifi sköld. Detta är ett enkelt sätt att göra ditt projekt kunna kontrolleras från var som helst i världen!Steg 1: Plattform kompatibilitetDenna metod kommer inte att...

Styra Arduino trådlöst med MATLAB

varit att se några DIYs på hur du upprättar en kommunikation mellan MATLAB ansökan och Arduino som är hårdkodade till PC. Men har inte jag stött på något som styr Arduino via MATLAB trådlöst via ENC28J60 kompatibel Ethernet shield. I denna kompatibel...

Styra enheter med röststyrning med android och arduino

Denna kompatibel kommer att tjäna frågor som, hur att styra enheter av röstkommandon, taligenkänning finns i android.Alla android enheter levereras med den inbyggda taligenkänningen. Detta kan användas för att konvertera tal till text, genom att blue...

Styra Arduino RoverBot med TV-fjärrkontrollen

jag är en dålig 15 år gammal Arduino hacka, som har liten tillgång på delar och material för att bygga en högteknologisk robot. Jag är säker på att det finns många andra där ute som är i min situation. Detta lilla Instructable kommer förklara och vis...

Arduino Nano och Visuino: styr Servo med Rotary Encoder

Det finns en hel del Instructables på hur man styr Servo med potentiometer, men ibland är det bra att styra med en Rotary Encoder. I detta Instructable kommer jag visa dig hur lätt det är att genomföra detta med hjälp av Visuino - en enkel att använd...