Innehållsförteckning:
- Steg 1: Lödpinnhuvuden till Arduinos extra I/O -portar
- Steg 2: Lägg till Arduino Joystick -biblioteket i din IDE
- Steg 3: Flasha koden till Arduino
- Steg 4: Gör ledningen
- Steg 5: Bind mottagaren
- Steg 6: Justera koden efter dina omständigheter
- Steg 7: Kalibrera den emulerade joysticken
Video: R/C till USB -brygga: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Konverterar PPM -signaler från en radiomottagare till joysticklägen
Använd den för att spela dina favoritspel och flygsimulatorer med din R/C -radiosändare. Denna instruktör använder en Arduino från littleBits och en DSMX -mottagare plus ett enkelt kodavsnitt för att göra denna konvertering.
Du kommer behöva
- Kraft
- Arduino
- USB -kablar
- stifthuvuden
- bygelkabel
- en radiomottagare med PPM -utgång.
Steg 1: Lödpinnhuvuden till Arduinos extra I/O -portar
För att driva mottagaren (RX) måste stifthuvuden läggas till i Arduino. Detta kommer också att göra kablarna mellan bit och RX mycket enklare. Se https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit för mer information.
Steg 2: Lägg till Arduino Joystick -biblioteket i din IDE
Du hittar biblioteket på GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Tack, Matthew Heironimus, för att du skrev det.
Endast vissa Arduinos kan efterlikna ett HID som en joystick. Eftersom littleBits -mikrokontrollern är en Arduino Leonardo i hjärtat är du bra att gå.
Steg 3: Flasha koden till Arduino
#include #define inputPin 16#definiera kanaler 4 #define lo 800 // justera till utmatning av RX#definiera hi 1600 // justera till utmatning av RX#definiera filter 10int kanal [kanaler]; int föregående värde [kanaler]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, false, false, true, true, false, false, false); void setup () {Joystick.setXAxisRange (lo, Hej); Joystick.setYAxisRange (lo, hej); Joystick.setThrottleRange (lo, hej); Joystick.setRudderRange (lo, hej); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= channel-1; i ++) {channel = pulseIn (inputPin, HIGH); } för (int i = 0; i <= kanaler-1; i ++) {if ((kanal > 2000) || (kanal <500)) {kanal = föregående värde ; } annars {kanal = (föregående värde +kanal )/2; räknare ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } if (counter> filter) {för (int i = 0; i <= channel-1; i ++) {Serial.print ("channel"); Serial.print (i+1); Serial.print (":"); Serial.println (kanal ); föregående värde = kanal ; } räknare = 0; }}
Tänk på att koden som överbryggar mellan R/C -signalen och den emulerade USB HID kommer i sin enklaste form. Funktionen som används här - pulseIn - är en blockerande funktion. Läs här och här hur du implementerar ett icke-blockerande tillvägagångssätt med avbrott.
Steg 4: Gör ledningen
Anslut bygelkabel / DuPont -kablar mellan bit och RX. Anslutningarna i slutet av dessa kablar måste vara hona. Vi ansluter GND (blå), VCC (brun) och signal (orange) från PPM -porten på RX till GND, VCC och d16 på Arduino.
Steg 5: Bind mottagaren
Koppla från Arduino från strömmen. Sätt bindningsselen i kontaktplatsen märkt BIND på RX. Slå på din radiosändare och sätt den i bindningsläge. Applicera sedan ström på Arduino. Bindningsprocessen lyckades när lysdioden i mottagaren tänds.
Steg 6: Justera koden efter dina omständigheter
Konstanterna hi and lo i Arduino -skissen måste ändras för att återspegla den faktiska utsignalen från mottagaren du använder.
#define lo 800
#define hi 1600
Signalerna inuti PPM -pulsen sträcker sig idealiskt från 1000μs till 2000μs. RX som används i denna instruerbara utdata värderar ungefär mellan 800 och 1600 och är något annorlunda på varje kanal. För att ta reda på vilket intervall din mottagare har, öppna seriemonitorn i Arduino IDE för att se utmatningen från din RX. Det kommer att se ut så här:
kanal 1: 728
kanal 2: 729 kanal 3: 703 kanal 4: 726 kanal 1: 1681 kanal 2: 1639 kanal 3: 1613 kanal 4: 1676
När du har en tydligare uppfattning om det intervall som din RX -utmatning ger, välj bra approximationer för hej och lo och ändra konstanterna därefter. Ladda sedan upp skissen till Arduino igen.
Steg 7: Kalibrera den emulerade joysticken
Anslut enheten till din dator och använd kalibreringsfunktionen i ditt operativsystem för att kalibrera den emulerade joysticken. Ett bra verktyg för Linux är jstest-gtk.
Ytterligare förbättringar
- Skriv icke-blockerande kod (se steg 3)
- Ange intervall per kanal, inte globalt (se steg 6)
Vidare läsning
- Redcon CM703
- PPM
Rekommenderad:
Lägg till en digital display till en gammal kommunikationsmottagare: 6 steg (med bilder)
Lägg till en digital display till en gammal kommunikationsmottagare: En av bristerna med att använda en äldre kommunikationsutrustning är det faktum att den analoga ratten inte är särskilt exakt. Du gissar alltid på frekvensen du får. I AM- eller FM -banden är detta i allmänhet inte ett problem eftersom du vanligtvis
Lägg till en USB -port till en lampa: 5 steg (med bilder)
Lägg till en USB-port till en lampa: När jag stötte på den här vintage Electrix gåshalsbordslampan insåg jag att det var en gåshalsbordslampa jag inte kunde leva utan, så jag köpte den. Då tänkte jag att det skulle vara mycket svalare om det hade en USB -port i basen av den. Det visar sig att detta är en ganska
Lägg till drivna USB -portar till din bil: 5 steg (med bilder)
Lägg till drivna USB -portar till din bil: Detta visar hur du lägger till USB -portar som drivs med din bil (yaris i det här fallet) och kopplar en av dem för att driva en telefon från instrumentpanelen för att använda den som en GPS i din vindruta. jag gör det här i en yaris, men det gäller alla bilar. Jag visar dig hur man1-
Lägg till USB -portar till PCI -kort !!!: 3 steg
Lägg till USB -portar till PCI -kort !!!: Vem kunde inte använda fler USB -portar ?? Allvarligt talat ….. Med hjälp av ett PCI USB -kort och några Pin Headers kunde jag lägga till TVÅ portar till på mitt USB -kort, vilket gav mig totalt sju portar !! Låt det roliga börja !!! Snälla betyg & KOMMENTAR
12v till USB -adapter 12v till 5v transformator (perfekt för bilar): 6 steg
12v till USB -adapter 12v till 5v transformator (bra för bilar): Detta visar hur du gör en 12v till USB (5v) adapter. Den mest uppenbara användningen av detta är för 12v biladaptrar, men var som helst du har 12v kan du använda det! Om du behöver 5v för något annat än USB, hoppa bara över stegen om att lägga till USB -portarna