Inhoudsopgave:
- Stap 1: Soldeerpenkoppen naar de extra I/O-poorten van de Arduino
- Stap 2: Voeg de Arduino Joystick-bibliotheek toe aan uw IDE
- Stap 3: Flash de code op de Arduino
- Stap 4: Doe de bedrading
- Stap 5: Bind de ontvanger
- Stap 6: Pas de code aan uw omstandigheden aan
- Stap 7: De geëmuleerde joystick kalibreren
Video: R / C naar USB-brug - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Zet PPM-signalen van een radio-ontvanger om in joystickposities
Gebruik het om je favoriete games en vluchtsimulators te spelen met je R/C-radiozender. Deze Instructable gebruikt een Arduino van littleBits en een DSMX-ontvanger plus een eenvoudig codefragment om deze conversie te maken.
Je zal nodig hebben
- Stroom
- Arduino
- USB-kabels
- pin-headers
- doorverbindingsdraad
- een radio-ontvanger met PPM-uitgang.
Stap 1: Soldeerpenkoppen naar de extra I/O-poorten van de Arduino
Om de ontvanger (RX) van stroom te voorzien, moeten pin-headers aan de Arduino worden toegevoegd. Dit maakt ook de bedrading tussen de Bit en de RX een stuk eenvoudiger. Zie https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit voor meer informatie.
Stap 2: Voeg de Arduino Joystick-bibliotheek toe aan uw IDE
Je kunt de bibliotheek vinden op GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Bedankt, Matthew Heironimus, voor het schrijven ervan.
Alleen bepaalde Arduino's kunnen een HID emuleren zoals een joystick. Aangezien de littleBits-microcontroller een Arduino Leonardo in hart en nieren is, bent u klaar om te gaan.
Stap 3: Flash de code op de Arduino
#include #define inputPin 16#define kanalen 4 #define lo 800 //aanpassen aan output van RX#define hi 1600 //aanpassen aan output van RX#definiëren filter 10int kanaal [kanalen]; int vorigeWaarde[kanalen]; int counter = 0; Joystick_ Joystick (JOYSTICK_DEFAULT_REPORT_ID, JOYSTICK_TYPE_MULTI_AXIS, 0, 0, waar, waar, onwaar, onwaar, onwaar, onwaar, waar, waar, onwaar, onwaar, onwaar); void setup () { Joystick.setXAxisRange (lo, Hoi); Joystick.setYAxisRange(lo, hallo); Joystick.setThrottleRange(lo, hallo); Joystick.setRudderRange(lo, hallo); Joystick.begin(); Serieel.begin(9600); pinMode (invoerPin, INPUT); }void loop(){ if(pulseIn(inputPin, HIGH)> 3000) { for(int i = 0; i <= channels-1; i++) { channel=pulseIn(inputPin, HIGH); } for(int i = 0; i <= channels-1; i++) { if((channel > 2000) || (channel <500)) { channel = previousValue; } else { kanaal = (vorigeWaarde+kanaal)/2; teller++; } } Joystick.setXAxis(kanaal[0]); Joystick.setYAxis(kanaal [1]); Joystick.setThrottle(kanaal [2]); Joystick.setRudder(kanaal[3]); } if(teller > filter) { for(int i = 0; i <= channels-1; i++) { Serial.print("channel"); Serial.print(i+1); Serieel.print(": "); Serial.println(kanaal); previousValue=kanaal; } teller=0; } }
Houd er rekening mee dat de code die een brug vormt tussen het R/C-signaal en de geëmuleerde USB HID in zijn eenvoudigste vorm is. De hier gebruikte functie – pulseIn – is een blokkeerfunctie. Lees hier en hier hoe u een niet-blokkerende aanpak implementeert met behulp van interrupts.
Stap 4: Doe de bedrading
Sluit jumper wire / DuPont kabels aan tussen de Bit en de RX. De connectoren aan het einde van deze kabels moeten vrouwelijk zijn. We verbinden GND (blauw), VCC (bruin) en signaal (oranje) van de PPM-poort van de RX met GND, VCC en d16 op de Arduino.
Stap 5: Bind de ontvanger
Koppel de Arduino los van de stroom. Plaats de bindende kabelboom in de connectorlocatie die is gemarkeerd met BIND op de RX. Schakel uw radiozender in en schakel deze in de bindmodus. Zet vervolgens stroom op de Arduino. Het bindproces is succesvol verlopen wanneer de LED in de ontvanger gaat branden.
Stap 6: Pas de code aan uw omstandigheden aan
De constanten hi en lo in de Arduino-schets moeten worden gewijzigd om de werkelijke uitvoer van de ontvanger die u gebruikt weer te geven.
#definieer lo 800
#define hallo 1600
De signalen binnen de PPM-puls variëren idealiter van 1000μs tot 2000μs. De RX die in deze Instructable wordt gebruikt, heeft waarden tussen de 800 en 1600 en is op elk kanaal iets anders. Om erachter te komen welk bereik uw ontvanger heeft, opent u de seriële monitor in de Arduino IDE om de uitvoer van uw RX te zien. Het zal er ongeveer zo uitzien:
kanaal 1: 728
kanaal 2: 729 kanaal 3: 703 kanaal 4: 726 kanaal 1: 1681 kanaal 2: 1639 kanaal 3: 1613 kanaal 4: 1676
Zodra u een duidelijker idee heeft van het bereik dat uw RX uitvoert, kiest u goede benaderingen voor hi en lo en past u de constanten dienovereenkomstig aan. Upload vervolgens de schets opnieuw naar de Arduino.
Stap 7: De geëmuleerde joystick kalibreren
Sluit het apparaat aan op uw computer en gebruik de kalibratiefunctie van uw besturingssysteem om de geëmuleerde joystick te kalibreren. Een goede tool voor Linux is jstest-gtk.
Verdere verbeteringen
- Schrijf niet-blokkerende code (zie stap 3)
- Bereiken per kanaal instellen, niet globaal (zie stap 6)
Verder lezen
- Redcon CM703
- PPM
Aanbevolen:
HP Compaq IPAQ G750 toetsenbord naar USB: 5 stappen
HP Compaq IPAQ G750 toetsenbord naar USB: ik zag een paar weken geleden een gif van dit toetsenbord op Reddit, dus besloot ik er een te kopen en het aan te passen zodat het op mijn pc werkt in plaats van op de pocket-pc waarvoor het was ontworpen. Dus hier is de eerste tutorial van iemand die dit doet met dit toetsenbord (volgens 2 da
Games uploaden naar Arduboy en 500 games naar Flash-cart: 8 stappen
Spellen uploaden naar Arduboy en 500 spellen naar Flash-cart: Ik heb een zelfgemaakte Arduboy gemaakt met serieel Flash-geheugen dat maximaal 500 spellen kan opslaan om onderweg te spelen. Ik hoop te delen hoe je games kunt laden, inclusief hoe je games opslaat in het seriële flash-geheugen en je eigen geconsolideerde gamepakket kunt maken
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): 5 stappen
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): door Jay Amiel AjocGensan PHfacebook.com/geeamealyoutube.com/jayamielajoc
NODEMcu Usb-poort werkt niet? Upload de code met behulp van USB naar TTL (FTDI)-module in slechts 2 stappen: 3 stappen
NODEMcu Usb-poort werkt niet? Upload de code met behulp van USB naar TTL (FTDI) -module in slechts 2 stappen: moe van het verbinden met veel draden van USB naar TTL-module naar de NODEMcu, volg deze instructie om de code in slechts 2 stappen te uploaden. Als de USB-poort van de NODEMcu werkt niet, geen paniek. Het is gewoon de USB-stuurprogrammachip of de USB-connector
12v naar USB-adapter 12v naar 5v transformator (ideaal voor auto's): 6 stappen
12v naar USB-adapter 12v naar 5v-transformator (ideaal voor auto's): hier wordt uitgelegd hoe u een 12v-naar-USB (5v)-adapter maakt. Het meest voor de hand liggende gebruik hiervan is voor 12v-autoadapters, maar overal waar je 12v hebt, kun je het gebruiken! Als je 5v nodig hebt voor iets anders dan USB, sla dan gewoon de stappen over het toevoegen van de USB-poorten over