Sommario:

Bridge da R/C a USB: 7 passaggi
Bridge da R/C a USB: 7 passaggi

Video: Bridge da R/C a USB: 7 passaggi

Video: Bridge da R/C a USB: 7 passaggi
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Novembre
Anonim
Da R/C a USB Bridge
Da R/C a USB Bridge

Converte i segnali PPM da un ricevitore radio nelle posizioni del joystick

Usalo per giocare ai tuoi giochi preferiti e simulatori di volo con il tuo trasmettitore radio R/C. Questo Instructable utilizza un Arduino di littleBits e un ricevitore DSMX più un semplice frammento di codice per effettuare questa conversione.

Avrai bisogno

  • Potenza
  • Arduino
  • Cavi USB
  • intestazioni pin
  • ponticello
  • un ricevitore radio con uscita PPM.

Passaggio 1: saldare le intestazioni dei pin alle porte I/O aggiuntive di Arduino

Intestazioni pin a saldare alle porte I/O aggiuntive di Arduino
Intestazioni pin a saldare alle porte I/O aggiuntive di Arduino

Per alimentare il ricevitore (RX), le intestazioni dei pin devono essere aggiunte ad Arduino. Ciò renderà anche molto più semplice il cablaggio tra il Bit e l'RX. Vedere https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit per ulteriori informazioni.

Passaggio 2: aggiungi la libreria Joystick Arduino al tuo IDE

Aggiungi la libreria Joystick Arduino al tuo IDE
Aggiungi la libreria Joystick Arduino al tuo IDE

Puoi trovare la libreria su GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Grazie, Matthew Heironimus, per averlo scritto.

Solo alcuni Arduino possono emulare un HID come un joystick. Dato che il microcontrollore littleBits è un Arduino Leonardo nel cuore, sei a posto.

Passaggio 3: installa il codice su Arduino

#include #define inputPin 16#define channel 4 #define lo 800 //adatta all'uscita di RX#define hi 1600 //adatta all'uscita di RX#define filter 10int channel[channels]; int valore precedente[canali]; 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, Ciao); Joystick.setYAxisRange(lo, ciao); Joystick.setThrottleRange(lo, ciao); Joystick.setRudderRange(lo, ciao); Joystick.begin(); Serial.begin(9600); pinMode(InputPin, INPUT); }loop vuoto(){ if(pulseIn(inputPin, HIGH) > 3000) { for(int i = 0; i <= canali-1; i++) { channel=pulseIn(inputPin, HIGH); } for(int i = 0; i <= canali-1; i++) { if((canale > 2000) || (canale <500)) { canale = valoreprecedente; } else { canale = (valoreprecedente+canale)/2; contatore++; } } Joystick.setXAxis(canale[0]); Joystick.setYAxis(canale[1]); Joystick.setThrottle(canale[2]); Joystick.setRudder(canale[3]); } if(contatore > filtro) { for(int i = 0; i <= canali-1; i++) { Serial.print("canale"); Serial.print(i+1); Serial.print(": "); Serial.println(canale); valoreprecedente=canale; } contatore=0; } }

Tieni presente che il codice che fa da ponte tra il segnale R/C e l'USB HID emulato si presenta nella sua forma più semplice. La funzione qui utilizzata – pulseIn – è una funzione di blocco. Leggi qui, e qui, come implementare un approccio non bloccante utilizzando gli interrupt.

Passaggio 4: eseguire il cablaggio

Fai il cablaggio
Fai il cablaggio
Fai il cablaggio
Fai il cablaggio

Collegare il ponticello / i cavi DuPont tra il Bit e l'RX. I connettori all'estremità di questi cavi devono essere femmine. Colleghiamo GND (blu), VCC (marrone) e segnale (arancione) dalla porta PPM dell'RX a GND, VCC e d16 su Arduino.

Passaggio 5: legare il ricevitore

Scollega l'Arduino dall'alimentazione. Mettere il cablaggio di collegamento nella posizione del connettore contrassegnata BIND sull'RX. Accendi la tua radiotrasmittente e mettila in modalità bind. Quindi applica l'alimentazione ad Arduino. Il processo di collegamento è andato a buon fine quando il LED nel ricevitore si accende.

Passaggio 6: adatta il codice alle tue circostanze

Le costanti hi e lo nello sketch Arduino devono essere modificate per riflettere l'output effettivo del ricevitore che stai utilizzando.

#definire lo 800

#define ciao 1600

I segnali all'interno dell'impulso PPM vanno idealmente da 1000μs a 2000μs. L'RX utilizzato in questo Instructable emette valori all'incirca tra 800 e 1600 ed è leggermente diverso su ciascun canale. Per scoprire quale raggio ha il tuo ricevitore, apri il monitor seriale nell'IDE di Arduino per vedere l'output del tuo RX. Sarà simile a questo:

canale 1: 728

canale 2: 729 canale 3: 703 canale 4: 726 canale 1: 1681 canale 2: 1639 canale 3: 1613 canale 4: 1676

Una volta che hai un'idea più chiara della gamma che il tuo RX emette, scegli buone approssimazioni per hi e lo e modifica le costanti di conseguenza. Quindi carica di nuovo lo schizzo su Arduino.

Passaggio 7: calibrare il joystick emulato

Collega il dispositivo al computer e usa la funzione di calibrazione del tuo sistema operativo per calibrare il joystick emulato. Un buon strumento per Linux è jstest-gtk.

Ulteriori miglioramenti

  • Scrivi codice non bloccante (vedi Passaggio 3)
  • Imposta intervalli per canale, non globalmente (vedi passaggio 6)

Ulteriori letture

  • Redcon CM703
  • PPM

Consigliato: