INHOUDSOPGAWE:

R/C na USB -brug: 7 stappe
R/C na USB -brug: 7 stappe

Video: R/C na USB -brug: 7 stappe

Video: R/C na USB -brug: 7 stappe
Video: Виниловый сайдинг! Секреты монтажа и полезные хитрости, о которых мало кто знает! 2024, November
Anonim
R/C na USB -brug
R/C na USB -brug

Skakel PPM -seine van 'n radioontvanger om in joystick -posisies

Gebruik dit om u gunsteling speletjies en vlugsimulators met u R/C -radiosender te speel. Hierdie instruksies gebruik 'n Arduino van littleBits en 'n DSMX -ontvanger plus 'n eenvoudige kodefragment om hierdie omskakeling te maak.

Jy sal nodig hê

  • Krag
  • Arduino
  • USB kabels
  • penkoppe
  • springdraad
  • 'n radio -ontvanger met PPM -uitset.

Stap 1: Soldeerpenkoppe na die bykomende I/O -poorte van die Arduino

Soldeerspeldopskrifte na die Arduino se bykomende I/O -poorte
Soldeerspeldopskrifte na die Arduino se bykomende I/O -poorte

Om die ontvanger (RX) aan te skakel, moet penkopstukke by die Arduino gevoeg word. Dit sal ook die bedrading tussen die Bit en die RX baie makliker maak. Sien https://discuss.littlebits.cc/t/using-the-additional-i-os-on-the-arduino-bit vir meer inligting.

Stap 2: Voeg die Arduino Joystick -biblioteek by u IDE

Voeg die Arduino Joystick -biblioteek by u IDE
Voeg die Arduino Joystick -biblioteek by u IDE

U kan die biblioteek vind op GitHub, https://github.com/MHeironimus/ArduinoJoystickLib… Dankie, Matthew Heironimus, dat u dit geskryf het.

Slegs sekere Arduinos kan 'n HID soos 'n joystick navolg. Aangesien die LittleBits -mikrobeheerder 'n Arduino Leonardo in sy hart is, is u gereed om te gaan.

Stap 3: Flits die kode op die Arduino

#include #define inputPin 16#definieer kanale 4 #define lo 800 // pas by uitvoer van RX aan#definieer hi 1600 // pas by uitvoer van RX#definieer filter 10int kanaal [kanale]; int vorige waarde [kanale]; 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, Hi); Joystick.setYAxisRange (lo, hi); Joystick.setThrottleRange (lo, hi); Joystick.setRudderRange (lo, hi); Joystick.begin (); Serial.begin (9600); pinMode (inputPin, INPUT); } leemte-lus () {if (pulseIn (inputPin, HIGH)> 3000) {vir (int i = 0; i <= channel-1; i ++) {channel = pulseIn (inputPin, HIGH); } vir (int i = 0; i <= channel-1; i ++) {if ((channel > 2000) || (channel <500)) {channel = previousValue ; } anders {kanaal = (vorige waarde +kanaal )/2; toonbank ++; }} Joystick.setXAxis (kanaal [0]); Joystick.setYAxis (kanaal [1]); Joystick.setThrottle (kanaal [2]); Joystick.setRudder (kanaal [3]); } if (teller> filter) {vir (int i = 0; i <= channel-1; i ++) {Serial.print ("channel"); Serial.print (i+1); Serial.print (":"); Serial.println (kanaal ); vorige waarde = kanaal ; } teller = 0; }}

Let daarop dat die kode wat tussen die R/C -sein en die geëmuleerde USB HID oorbrug, in sy eenvoudigste vorm kom. Die funksie wat hier gebruik word - pulseIn - is 'n blokkeringsfunksie. Lees hier en hier hoe u 'n nie-blokkerende benadering met behulp van onderbrekings kan implementeer.

Stap 4: Doen die bedrading

Doen die bedrading
Doen die bedrading
Doen die bedrading
Doen die bedrading

Verbind jumperdraad / DuPont -kabels tussen die Bit en die RX. Die verbindings aan die einde van hierdie kabels moet vroulik wees. Ons verbind GND (blou), VCC (bruin) en sein (oranje) vanaf die PPM -poort van die RX met GND, VCC en d16 op die Arduino.

Stap 5: Bind die ontvanger

Ontkoppel die Arduino van krag. Plaas die bindingsharnas in die aansluitplek gemerk BIND op die RX. Skakel u radiosender aan en skakel dit in die bindmodus. Pas dan die krag op die Arduino toe. Die bindproses was suksesvol toe die LED in die ontvanger aanskakel.

Stap 6: Pas die kode aan by u omstandighede

Die konstantes hi en lo in die Arduino -skets moet verander word om die werklike uitset van die ontvanger wat u gebruik weer te gee.

#definieer lo 800

#definieer hi 1600

Die seine binne die PPM -pols wissel ideaal van 1000μs tot 2000μs. Die RX wat in hierdie Instrueerbare uitsette gebruik word, is ongeveer 800 tot 1600 en verskil effens op elke kanaal. Om uit te vind watter reeks u ontvanger het, maak die Serial Monitor in die Arduino IDE oop om die uitvoer van u RX te sien. Dit sal so lyk:

kanaal 1: 728

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

Sodra u 'n duideliker idee het van die omvang wat u RX -uitsette lewer, kies dan goeie benaderings vir hi en lo en verander die konstantes dienooreenkomstig. Laai die skets dan weer op na die Arduino.

Stap 7: Kalibreer die geëmuleerde joystick

Koppel die toestel aan op u rekenaar en gebruik die kalibrasiefunksie van u bedryfstelsel om die geëmuleerde joystick te kalibreer. 'N Goeie hulpmiddel vir Linux is jstest-gtk.

Verdere verbeterings

  • Skryf 'n kode wat nie blokkeer nie (sien stap 3)
  • Stel reekse per kanaal, nie wêreldwyd nie (sien stap 6)

Verdere leeswerk

  • Redcon CM703
  • PPM

Aanbeveel: