Satura rādītājs:

R/C uz USB tiltu: 7 soļi
R/C uz USB tiltu: 7 soļi

Video: R/C uz USB tiltu: 7 soļi

Video: R/C uz USB tiltu: 7 soļi
Video: Страшные истории. ЗАПЕРТАЯ КОМНАТА. Деревенские страшилки. Ужасы. Мистика. 2024, Novembris
Anonim
R/C uz USB tiltu
R/C uz USB tiltu

Pārvērš PPM signālus no radio uztvērēja kursorsviru pozīcijās

Izmantojiet to, lai spēlētu savas iecienītākās spēles un lidojuma simulatorus ar savu R/C radio raidītāju. Šī pamācība izmanto Arduino no littleBits un DSMX uztvērēju, kā arī vienkāršu koda fragmentu, lai veiktu šo reklāmguvumu.

Jums būs nepieciešams

  • Jauda
  • Arduino
  • USB kabeļi
  • pin galvenes
  • džemperis
  • radio uztvērējs ar PPM izeju.

1. solis: lodēšanas tapu galvenes Arduino papildu I/O portiem

Lodēšanas tapu galvenes Arduino papildu I/O portiem
Lodēšanas tapu galvenes Arduino papildu I/O portiem

Lai barotu uztvērēju (RX), Arduino ir jāpievieno tapu galvenes. Tas arī ievērojami atvieglos elektroinstalāciju starp Bit un RX. Plašāku informāciju skatiet vietnē

2. darbība. Pievienojiet Arduino kursorsviras bibliotēku savam IDE

Pievienojiet savam IDE Arduino kursorsviras bibliotēku
Pievienojiet savam IDE Arduino kursorsviras bibliotēku

Bibliotēku varat atrast vietnē GitHub, https://github.com/MHeironimus/ArduinoJoystickLib … Paldies, Metjū Heironimus, ka uzrakstījāt.

Tikai daži Arduinos var līdzināties HID kā kursorsviru. Tā kā LittleBits mikrokontrolleris sirdī ir Arduino Leonardo, jums ir labi iet.

3. solis: zibspuldziet kodu uz Arduino

#iekļaut #define inputPin 16#definēt kanālus 4 #define lo 800 // pielāgot RX izvadam#define hi 1600 // pielāgot RX izvadam#definēt filtru 10int kanāls [kanāli]; int previousValue [kanāli]; 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, Sveiki); Joystick.setYAxisRange (lūk, čau); Joystick.setThrottleRange (lūk, čau); Joystick.setRudderRange (lūk, čau); Joystick.begin (); Sērijas sākums (9600); pinMode (inputPin, INPUT); } void loop () {if (pulseIn (inputPin, HIGH)> 3000) {for (int i = 0; i <= kanāli-1; i ++) {channel = pulseIn (inputPin, HIGH); } par (int i = 0; i <= kanāli-1; i ++) {if ((kanāls > 2000) || (kanāls <500)) {kanāls = iepriekšējāVērtība ; } cits {kanāls = (iepriekšējāVērtība +kanāls )/2; skaitītājs ++; }} Joystick.setXAxis (kanāls [0]); Joystick.setYAxis (kanāls [1]); Joystick.setThrottle (kanāls [2]); Joystick.setRudder (kanāls [3]); } ja (skaitītājs> filtrs) {par (int i = 0; i <= kanāli-1; i ++) {Sērijas.druka ("kanāls"); Sērijas nospiedums (i+1); Serial.print (":"); Serial.println (kanāls ); previousValue = kanāls ; } skaitītājs = 0; }}

Lūdzu, ņemiet vērā, ka kods, kas savieno tiltus starp R/C signālu un emulēto USB HID, ir vienkāršākais. Šeit izmantotā funkcija - pulseIn - ir bloķēšanas funkcija. Lasiet šeit un šeit, kā īstenot nebloķējošu pieeju, izmantojot pārtraukumus.

4. solis: veiciet elektroinstalāciju

Veiciet elektroinstalāciju
Veiciet elektroinstalāciju
Veiciet elektroinstalāciju
Veiciet elektroinstalāciju

Savienojiet savienojuma vadu / DuPont kabeļus starp Bit un RX. Savienotājiem šo kabeļu beigās jābūt sievietēm. Mēs savienojam GND (zils), VCC (brūns) un signālu (oranžs) no RX PPM porta ar GND, VCC un d16 Arduino.

5. solis: sasieniet uztvērēju

Atvienojiet Arduino no strāvas. Ievietojiet saites uz RX savienotāja vietā, kas apzīmēta ar BIND. Ieslēdziet radio raidītāju un pārslēdziet to saistīšanas režīmā. Pēc tam pielādējiet strāvu Arduino. Iesiešanas process bija veiksmīgs, kad uztvērējā iedegas gaismas diode.

6. darbība: pielāgojiet kodu saviem apstākļiem

Arduino skices konstantes hi un lo ir jāmaina, lai atspoguļotu izmantotā uztvērēja faktisko izvadi.

#definējiet 800

#define hi 1600

Signāli PPM impulsa iekšpusē ideālā gadījumā svārstās no 1000μs līdz 2000μs. Šajā pamācībā izmantotais RX iznāk aptuveni no 800 līdz 1600 un katrā kanālā ir nedaudz atšķirīgs. Lai uzzinātu, kāds ir uztvērēja diapazons, atveriet sērijas monitoru Arduino IDE, lai redzētu RX izvadi. Tas izskatīsies līdzīgi šim:

1. kanāls: 728

kanāls 2: 729 kanāls 3: 703 kanāls 4: 726 kanāls 1: 1681 kanāls 2: 1639 kanāls 3: 1613 kanāls 4: 1676

Tiklīdz jums ir skaidrāks priekšstats par diapazonu, ko jūsu RX izvada, izvēlieties labus tuvinājumus hi un lo un attiecīgi mainiet konstantes. Pēc tam vēlreiz augšupielādējiet skici Arduino.

7. solis: kalibrējiet emulēto kursorsviru

Pievienojiet ierīci datoram un izmantojiet operētājsistēmas kalibrēšanas funkciju, lai kalibrētu emulēto kursorsviru. Labs rīks Linux ir jstest-gtk.

Papildu uzlabojumi

  • Ierakstiet nebloķējošu kodu (skatiet 3. darbību)
  • Iestatiet diapazonus katram kanālam, nevis globāli (skatiet 6. darbību)

Tālāka lasīšana

  • Redcon CM703
  • PPM

Ieteicams: