Indholdsfortegnelse:
- Trin 1: Loddepindehoveder til Arduino's ekstra I/O -porte
- Trin 2: Føj Arduino Joystick -biblioteket til din IDE
- Trin 3: Flash koden på Arduino
- Trin 4: Lav ledningerne
- Trin 5: Bind modtageren
- Trin 6: Juster koden efter dine omstændigheder
- Trin 7: Kalibrer det emulerede joystick
Video: R/C til USB -bro: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Konverterer PPM -signaler fra en radiomodtager til joystick -positioner
Brug den til at spille dine yndlingsspil og flyvesimulatorer med din R/C -radiosender. Denne instruktør bruger en Arduino fra littleBits og en DSMX -modtager plus et simpelt kodestykke til at lave denne konvertering.
Du får brug for
- Strøm
- Arduino
- USB -kabler
- pin -overskrifter
- jumper wire
- en radiomodtager med PPM -udgang.
Trin 1: Loddepindehoveder til Arduino's ekstra I/O -porte
For at forsyne modtageren (RX) skal pinheadere tilføjes til Arduino. Dette vil også gøre ledningerne mellem bit og RX meget lettere. Se https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit for mere information.
Trin 2: Føj Arduino Joystick -biblioteket til din IDE
Du kan finde biblioteket på GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Tak, Matthew Heironimus, fordi du skrev det.
Kun visse Arduinos kan efterligne et HID som et joystick. Da littleBits -mikrokontrolleren er en Arduino Leonardo i hjertet, er du god til at gå.
Trin 3: Flash koden på Arduino
#include #define inputPin 16#definere kanaler 4 #define lo 800 // justere til output af RX#definere hi 1600 // justere til output af RX#definere filter 10int kanal [kanaler]; int previousValue [kanaler]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, true, true, false, 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); } for (int i = 0; i <= channel-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = previousValue ; } ellers {kanal = (foregående værdi +kanal )/2; tæller ++; }} Joystick.setXAxis (kanal [0]); Joystick.setYAxis (kanal [1]); Joystick.setThrottle (kanal [2]); Joystick.setRudder (kanal [3]); } hvis (tæller> filter) {for (int i = 0; i <= channel-1; i ++) {Serial.print ("kanal"); Serial.print (i+1); Serial.print (":"); Serial.println (kanal ); foregående værdi = kanal ; } tæller = 0; }}
Vær opmærksom på, at koden, der bygger bro mellem R/C -signalet og det emulerede USB HID, kommer i sin enkleste form. Funktionen, der bruges her - pulseIn - er en blokerende funktion. Læs her, og her, hvordan man implementerer en ikke-blokerende tilgang ved hjælp af afbrydelser.
Trin 4: Lav ledningerne
Tilslut jumper wire / DuPont kabler mellem bit og RX. Stikkene for enden af disse kabler skal være hun. Vi forbinder GND (blå), VCC (brun) og signal (orange) fra PPM -porten på RX til GND, VCC og d16 på Arduino.
Trin 5: Bind modtageren
Afbryd Arduino fra strømmen. Sæt bindingsselen ind i stikplaceringen markeret BIND på RX. Tænd din radiosender, og skift den til bindemodus. Påfør derefter strøm til Arduino. Indbindingsprocessen lykkedes, da LED'en i modtageren tændes.
Trin 6: Juster koden efter dine omstændigheder
Konstanterne hi and lo i Arduino -skitsen skal ændres for at afspejle det faktiske output fra den modtager, du bruger.
#define lo 800
#define hej 1600
Signalerne inde i PPM -pulsen spænder ideelt fra 1000μs til 2000μs. RX'en, der bruges i denne instruerbare udgang, værdier omtrent mellem 800 og 1600 og er lidt forskellig på hver kanal. For at finde ud af, hvilket område din modtager har, skal du åbne Serial Monitor i Arduino IDE for at se output fra din RX. Det kommer til at ligne dette:
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 klarere idé om det område, som din RX sender, skal du vælge gode tilnærmelser til hi og lo og ændre konstanterne i overensstemmelse hermed. Upload derefter skitsen til Arduino igen.
Trin 7: Kalibrer det emulerede joystick
Tilslut enheden til din computer, og brug kalibreringsfunktionen i dit operativsystem til at kalibrere det emulerede joystick. Et godt værktøj til Linux er jstest-gtk.
Yderligere forbedringer
- Skriv ikke-blokerende kode (se trin 3)
- Angiv områder pr. Kanal, ikke globalt (se trin 6)
Yderligere læsning
- Redcon CM703
- PPM
Anbefalede:
Sega Genesis Controller til USB -adapter til $ 2: 4 trin
Sega Genesis Controller til USB Adapter til $ 2: Denne adapter tillader en Sega Genesis / Mega Drive controller at efterligne dobbelt XBox 360 gamepads til brug med retroarch eller anden software. Den bruger en Arduino-kompatibel stm32f103c8t6 blå pille til elektronikken. Ingredienser: stm32f103c8t6 blå pille to DB9 m
LoRa Messenger til to enheder til distancer Op til 8 km: 7 trin
LoRa Messenger til to enheder til afstande Op til 8 km: Tilslut projektet til din bærbare computer eller telefon, og chat derefter mellem enhederne uden internet eller SMS ved hjælp af bare LoRa.Hey, hvad sker der gutter? Akarsh her fra CETech. I dag skal vi lave et projekt, der kan forbindes til din smartphone eller en hvilken som helst
1A til 40A nuværende BOOST -konverter til op til 1000W DC -motor: 3 trin
1A til 40A Current BOOST-konverter til op til 1000W DC-motor: Hej! I denne video lærer du, hvordan du laver et strømforstærkerkredsløb til dine høj ampere DC-motorer op til 1000W og 40 ampere med transistorer og en center-tap-transformer. Selvom, strømmen ved udgangen er meget høj, men spændingen bliver r
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: 3 trin
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: Min plan var enkel. Jeg ville skære en væg-drevet LED-lysstreng i stykker og derefter genkoble den til at køre 12 volt. Alternativet var at bruge en strømomformer, men vi ved alle, at de er frygtelig ineffektive, ikke? Ret? Eller er de det?
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): 6 trin
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): Dette viser dig, hvordan du laver en 12v til USB (5v) adapter. Den mest oplagte anvendelse af dette er til 12v biladaptere, men hvor som helst du har 12v kan du bruge det! Hvis du har brug for 5v til andet end USB, skal du blot springe trinene om tilføjelse af USB -porte over