INHOUDSOPGAWE:

UChip - Eenvoudige skets vir motors en/of servo's met afstandsbediening via 2,4 GHz radio Tx -Rx !: 3 stappe
UChip - Eenvoudige skets vir motors en/of servo's met afstandsbediening via 2,4 GHz radio Tx -Rx !: 3 stappe

Video: UChip - Eenvoudige skets vir motors en/of servo's met afstandsbediening via 2,4 GHz radio Tx -Rx !: 3 stappe

Video: UChip - Eenvoudige skets vir motors en/of servo's met afstandsbediening via 2,4 GHz radio Tx -Rx !: 3 stappe
Video: История бездомного щенка по имени Марсель. Собака с человеческими глазами. 2024, November
Anonim
Image
Image
UChip - Eenvoudige skets vir afstandsbedieningsmotors en/of servo's via 2,4 GHz radio Tx -Rx!
UChip - Eenvoudige skets vir afstandsbedieningsmotors en/of servo's via 2,4 GHz radio Tx -Rx!
UChip - Eenvoudige skets vir afstandsbedieningsmotors en/of servo's via 2,4 GHz radio Tx -Rx!
UChip - Eenvoudige skets vir afstandsbedieningsmotors en/of servo's via 2,4 GHz radio Tx -Rx!

Ek hou baie van die RC -wêreld. Deur 'n RC -speelding te gebruik, kry jy die gevoel dat jy in beheer is van iets buitengewoons, ondanks die feit dat dit 'n klein bootjie, motor of hommeltuig is!

Dit is egter nie maklik om u speelgoed aan te pas en te laat doen wat u wil nie. Gewoonlik is u verplig om die standaard senderinstellings of die spesiaal ontwerpte kombinasies van skakelaars en knoppe te gebruik.

Dit is taamlik moeilik om alles te beheer soos u regtig wil, veral omdat die RC-wêreld baie deeglike kennis van programmering op hardeware-vlak benodig om die beste daarvan uit te haal.

Ek het baie platforms en instellings probeer, maar dit het altyd baie moeite gekos om gemaklik met die kode te voel voordat ek 'n werklike aanpassing aan my RC -speelding kon doen.

Wat ek ontbreek het, is 'n eenvoudige skets wat ek met die Arduino IDE kan laai, en dit sal my maklik in staat stel om die waardes wat uit die Radio RX (ontvanger) kom, in die gewenste motor/servobesturing te vertaal.

Daarom het ek dit hier gemaak nadat ek 'n bietjie met uChip en die Arduino IDE gespeel het: 'n eenvoudige skets om motors en/of servo's op afstand te beheer via 2.4GHz Radio Tx-Rx!

Materiaallêer

1 x uChip: Arduino IDE -versoenbare bord

1 xTx-Rx radiostelsel: enige radiostelsel met cPPM-ontvanger is goed (my kombinasie is 'n ou Spectrum DX7 Tx + Orange R614XN cPPM Rx), maak seker dat u die korrekte bindingsprosedure volg om die Tx en Rx te bind.

1 x battery: batterye met 'n hoë ontlading is nodig vir motors en servo's.

Motors/servo's: volgens u behoeftes

Elektroniese komponente om die motors/servo's aan te dryf: eenvoudige weerstande, MOSFET's en diodes stel u in staat om die bestuursdoel te bereik.

Stap 1: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

Draai die komponente saam soos beskryf in die skema.

Die Rx is direk aan uChip gekoppel en benodig geen eksterne komponente nie. As u 'n ander ontvanger gebruik, moet u kontroleer of u 'n vlakversneller benodig of nie. Koppel die cPPM -sein aan uChip PIN_9 (dit is PORTA19 as u die kode wil aanpas by 'n ander SAMD21 -bord).

Die oorblywende bedrading is nodig om die motor en/of die servo aan te dryf. Die aangehegte skematiese voorstelling stel die basiese stroombaan voor om uChip te beskerm teen spykers/oorskietings wat gewoonlik voorkom by induktiewe vragte. Die belangrikste komponent om uChip -veiligheid te behou, is die krag -zenerdiode van 5.1V (D1 in die skema) wat u parallel met die VEXT (uChip -pen 16) en GND (uChip -pen 8) moet plaas. Alternatiewelik, in plaas van om die Zener -diode te gebruik, kan u kies vir die opsionele stroombaan wat deur D2, C1 en C2 voorgestel word, wat voorkom dat omgekeerde spykers uChip -komponente beskadig.

U kan soveel motors/servo's ry as wat u benodig deur eenvoudig die skematiese weergawe te herhaal en die bedieningspenne te verander (u kan enige pen behalwe die kragpenne (PIN_8 en PIN_16) en die cPPM -pen (PIN_9) gebruik). Hou in gedagte dat alhoewel u slegs een beskermingskring benodig wat deur die Zener -diode (of die komponente vir die opsionele stroombane) verteenwoordig word, die elektriese komponente wat verband hou met die motor-/servostuur soveel keer as die aantal motors moet herhaal word/ servo's wat u wil bestuur.

Aangesien ek ten minste 2 motors en 2 servo's wou bestuur, het ek 'n klein PCB gemaak wat die beskrewe stroombane geïmplementeer het en wat u op die foto kan sien. Die eerste prototipe is egter op vlieënde drade op 'n protobord gemaak.

U het dus geen soldeer-/PCB -ontwerpvaardighede nodig om hierdie eenvoudige projek te implementeer nie:)

Stap 2: Programmering

Programmering
Programmering

Hier is die magie! Dit is hier waar dinge interessant raak.

As u die stroombaan wat in die vorige skema beskryf is, gebou het, kan u eenvoudig die skets "DriveMotorAndServo.ino" laai en alles behoort te werk.

Kyk na die kode en kyk hoe dit werk.

Aan die begin is daar min #define wat gebruik word om te definieer:

- die aantal kanale van die Rx (6Ch met die Oranje 614XN)

- die penne waar motors/servo's aangebring is

- Maksimum en min gebruik vir die servo en motors

- Maksimum en min gebruik vir die omvang van radiokanale

Dan is daar die afdeling vir die verklaring van veranderlikes waar die motors/servos veranderlikes verklaar word.

As u meer as die een motor bestuur en die servo aangeheg soos beskryf in die vorige skema, moet u die skets verander en die kode byvoeg vir die bykomende motors/servo's wat u aangeheg het. U moet soveel Servo, servo_value en motor_value byvoeg as soveel servo's/motors wat u gebruik.

Binne die afdeling vir verklaring van veranderlikes is daar ook 'n paar vlugtige veranderlikes wat gebruik word vir die Capture Compare van die cPPM -sein. MOENIE HIERDIE VARIABELS VERANDER NIE!

Wat u volgende moet doen, is in die loop () -funksie. Hier kan u besluit wat die waarde van die inkomende kanale is.

In my geval het ek die inkomende waarde direk aan die motor en servo gekoppel, maar u is meer as welkom om dit dienooreenkomstig aan u behoeftes te verander! In die video en foto's wat in hierdie tutoriaal gekoppel is, het ek 2 motors en 2 servo's gekoppel, maar daar kan 3, 4, 5, … wees tot die maksimum beskikbare gratis penne (13 in geval van uChip).

U kan die vasgestelde kanaalwaarde vind binne die ch [index] -reeks, waarvan die "indeks" van 0 tot NUM_CH gaan - 1. Elke kanaal stem ooreen met 'n stok/skakelaar/knop op u radio. Dit is aan jou om te verstaan wat-is-wat:)

Uiteindelik het ek 'n paar ontfoutingsfunksies geïmplementeer om dit makliker te maak om te verstaan wat gebeur. Lewer kommentaar op/lewer kommentaar op die #define DEBUG om die waarde van die kanale op die oorspronklike SerialUSB te druk.

WENK: Daar is meer kode onder die lus () -funksie. Hierdie deel van die kode is nodig om uChip -kragpenne te stel, die onderbrekings wat deur die opname -vergelykingsfunksie gegenereer word, die tydopnemers en die ontfoutingsdoel te stel. As u dapper genoeg voel om met registers rond te speel, kan u dit gerus aanpas!

Bewerk: Opgedateerde skets, 'n fout in die karteringsfunksie reggestel.

Stap 3: Speel, ry, jaag, vlieg

Image
Image

Maak seker dat u die Tx- en Rx -stelsel korrek verbind. Skakel dit aan deur die battery aan te sluit. Verifieer dat alles werk. U kan die funksies uitbrei of die funksie van elke kanaal verander soos u wil, want u het nou volle beheer oor u toekomstige RC -model.

Bou nou u pasgemaakte RC -model!

PS: aangesien binding nogal vervelig kan wees, is ek van plan om binnekort 'n skets vry te stel waarmee u u Tx-Rx-stelsel kan bind sonder om dit met die hand te hoef te doen. Bly ingeskakel vir opdaterings!

Aanbeveel: