Turinys:
Video: UChip - paprastas eskizas nuotolinio valdymo varikliams ir (arba) servams per 2,4 GHz radijo Tx -Rx!: 3 žingsniai
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Man labai patinka RC pasaulis. Naudojant RC žaislą atsiranda jausmas, kad jūs valdote kažką nepaprasto, nepaisant to, kad tai maža valtis, automobilis ar dronas!
Tačiau nėra lengva pritaikyti savo žaislus ir priversti juos daryti viską, ko norite. Paprastai esate priversti naudoti numatytuosius siųstuvo nustatymus arba specialiai sukurtus jungiklių ir rankenėlių derinius.
Gana sunku viską kontroliuoti taip, kaip iš tikrųjų norite, visų pirma todėl, kad RC pasauliui reikia gana gilių žinių apie aparatūros lygio programavimą, kad būtų galima kuo geriau išnaudoti.
Išbandžiau daugybę platformų ir sąrankų, tačiau tai visada kainavo daug pastangų, kad būtų pakankamai patogu naudoti kodą prieš pradedant tikrus RC žaislo pritaikymus.
Man trūko paprasto eskizo, kurį galėčiau įkelti naudodamas „Arduino IDE“ir kuris lengvai leistų man iš „Radio RX“(imtuvo) išeinančias vertes išversti į norimą „Motor/Servo“valdiklį.
Todėl štai ką aš sukūriau šiek tiek pažaidęs su „uChip“ir „Arduino IDE“: paprastas eskizas, skirtas nuotoliniam variklių ir (arba) servo valdymui per 2,4 GHz radijo Tx-Rx!
Sąmata
1 x „uChip“: su „Arduino IDE“suderinama plokštė
1 xTx-Rx radijo sistema: bet kuri radijo sistema su cPPM imtuvu yra gera (mano derinys yra senas „Spectrum DX7 Tx + Orange R614XN cPPM Rx“), būtinai atlikite teisingą įrišimo procedūrą, kad surištumėte Tx ir Rx.
1 x akumuliatorius: dirbant su varikliais ir servo prietaisais būtinos didelės iškrovos srovės baterijos.
Varikliai/servos: pagal jūsų poreikius
Elektroniniai variklių/servo variklių komponentai: paprasti rezistoriai, MOSFET ir diodai leidžia pasiekti vairavimo tikslą.
1 žingsnis: laidų prijungimas
Sujunkite komponentus, kaip aprašyta schemoje.
„Rx“yra tiesiogiai prijungtas prie „uChipand“ir nereikalauja jokių išorinių komponentų. Jei naudojate kitą imtuvą, patikrinkite, ar jums reikia lygio perjungiklio, ar ne. Būtinai prijunkite cPPM signalą prie uChip PIN_9 (kuris yra PORTA19, jei norite pritaikyti kodą kitai SAMD21 plokštei).
Likę laidai yra reikalingi varikliui ir (arba) servo varikliui valdyti. Pridedama schema atspindi pagrindinę grandinę, kad apsaugotų „uChip“nuo šuolių/viršijimų, kurie paprastai atsiranda važiuojant indukcinėmis apkrovomis. Pagrindinis komponentas, apsaugantis „uChip“saugumą, yra 5,1 V galios „Zener“diodas (schemoje D1), kurį turite įdėti lygiagrečiai su „VEXT“(„uChip“kaištis 16) ir „GND“(„uChip“kaištis 8). Arba, užuot naudoję „Zener“diodą, galite pasirinkti pasirenkamą grandinę, pavaizduotą D2, C1 ir C2, o tai neleidžia atvirkštiniams smaigaliams sugadinti „uChip“komponentų.
Galite vairuoti tiek variklių/servo, kiek jums reikia, tiesiog pakartodami schemą ir pakeisdami valdymo kaiščius (galite naudoti bet kokį kaištį, išskyrus maitinimo kaiščius (PIN_8 ir PIN_16) ir cPPM kaištį (PIN_9)). Atminkite, kad nors jums reikia tik vienos apsaugos grandinės, kurią vaizduoja Zenerio diodas (arba papildomos grandinės komponentai), elektrinius komponentus, susijusius su variklio/servo pavara, reikia pakartoti tiek kartų, kiek variklių/ servai, kuriuos ketinate vairuoti.
Kadangi norėjau vairuoti bent 2 variklius ir 2 servo, padariau nedidelę PCB, kuri įgyvendino aprašytą schemą ir kurią galite pamatyti paveikslėlyje. Tačiau pirmasis prototipas buvo pagamintas ant plokštės, naudojant skraidančius laidus.
Taigi, norint įgyvendinti šį paprastą projektą, jums nereikia jokių litavimo/PCB projektavimo įgūdžių:)
2 žingsnis: programavimas
Čia yra magija! Čia viskas tampa įdomu.
Jei sukūrėte ankstesnėje schemoje aprašytą grandinę, galite tiesiog įkelti eskizą „DriveMotorAndServo.ino“ir viskas turėtų veikti.
Pažvelkite į kodą ir patikrinkite, kaip jis veikia.
Pradžioje yra keletas #define apibrėžimų:
- „Rx“kanalų skaičius (6Ch su „Orange 614XN“)
- kaiščiai, prie kurių pritvirtinti varikliai/servoservai
- Maksimali ir min. Naudojama servo ir varikliams
- Maks. Ir min. Naudojami radijo kanalų diapazonui
Tada yra kintamųjų deklaravimo skyrius, kuriame deklaruojami variklių/servos kintamieji.
Jei vairuojate daugiau nei vieną variklį ir vieną prijungtą servo sistemą, kaip aprašyta ankstesnėje schemoje, turite modifikuoti eskizą ir pridėti kodą, tvarkantį papildomus prijungtus variklius/servo. Turite pridėti tiek servo, servo_value ir motor_value, kiek naudojate servo/variklių.
Kintamųjų deklaravimo skyriuje taip pat yra keletas nepastovių kintamųjų, naudojamų cPPM signalo palyginimui. NEKEISKITE šių kintamųjų!
Toliau turite atlikti funkciją loop (). Čia galite nuspręsti, ką naudoti gaunamų kanalų vertei.
Mano atveju aš prijungiau gaunamą vertę tiesiai prie variklio ir servo, bet jūs galite tai pakeisti pagal savo poreikius! Šiame vadove pateiktame vaizdo įraše ir nuotraukose aš prijungiau 2 variklius ir 2 servoservisus, tačiau gali būti 3, 4, 5,… iki maksimalių laisvų kaiščių (13 „uChip“atveju).
Užfiksuotą kanalo vertę galite rasti ch [index] masyve, kurio „indeksas“svyruoja nuo 0 iki NUM_CH - 1. Kiekvienas kanalas atitinka jūsų radijo lazdelę/jungiklį/rankenėlę. Jūs turite suprasti, kas yra:)
Galiausiai įdiegiau kai kurias derinimo funkcijas, kad būtų lengviau suprasti, kas vyksta. Komentuokite/atmeskite #define DEBUG, kad būtų galima atspausdinti kanalų reikšmę vietiniame „SerialUSB“.
PATARIMAS: Po ciklo () funkcijos yra daugiau kodo. Ši kodo dalis yra būtina norint nustatyti „uChip“maitinimo kaiščius, tvarkyti pertraukas, kurias sukuria fiksavimo palyginimo funkcija, nustatyti laikmačius ir derinimo tikslą. Jei jaučiatės pakankamai drąsus žaisti su registrais, nedvejodami jį pakeiskite!
Redaguoti: atnaujintas eskizas, ištaisyta klaida kartografavimo funkcijoje.
3 žingsnis: Žaisk, vairuok, lenktyniauk, skrisk
Įsitikinkite, kad tinkamai sujungėte Tx ir Rx sistemas. Įjunkite, prijungdami akumuliatorių. Patikrinkite, ar viskas veikia. Jūs galite išplėsti kiekvieno kanalo funkcijas arba pakeisti savo nuožiūra, nes dabar jūs visiškai kontroliuojate savo būsimą RC modelį.
Dabar sukurkite savo individualų RC modelį!
P. S.: kadangi susiejimas gali būti gana nuobodus, planuoju netrukus išleisti eskizą, leidžiantį surišti jūsų „Tx-Rx“sistemą, nereikia to daryti rankiniu būdu. Sekite naujienas!