Turinys:

Įterptas UCL - linijos sekėjas B0B: 9 žingsniai
Įterptas UCL - linijos sekėjas B0B: 9 žingsniai

Video: Įterptas UCL - linijos sekėjas B0B: 9 žingsniai

Video: Įterptas UCL - linijos sekėjas B0B: 9 žingsniai
Video: Dirvožemio rūgštintojas šilauogėms, bruknėms, rododendrams ir kt. 2024, Liepa
Anonim
UCL Embedded - B0B „Linefollower“
UCL Embedded - B0B „Linefollower“

Tai B0B.*

„B0B“yra bendras radijo bangomis valdomas automobilis, laikinai tarnaujantis kaip linijos sekimo robotas.

Kaip ir daugelis prieš jį sekančių robotų, jis padarys viską, kad liktų ties linija, kurią sukelia perėjimas tarp grindų ir kontrastingos medžiagos, mūsų atveju-lipnios juostos.

Skirtingai nuo daugelio kitų linijų sekimo robotų, „B0B“taip pat renka duomenis ir siunčia juos per „WiFi“.

Visiškai perdėtas pomėgių projektui, jis apima daugybę dalykų, kurie jums gali būti įdomūs. Šiame vadove aprašomas jo gimimas, jo funkcijos ir kaip galite sukurti tokį, koks jis yra.

Tai taip pat apima pyktį ant įvairios elektronikos, kad ji neveikia taip, kaip norėjome, ir veiksmus, kurių ėmėmės, kad įveiktume tuos sunkumus (aš žiūriu į jus ESP 8266-01).

Kad projektas veiktų, yra 2 kodai. Pirmasis kodas skirtas ESP8266 moduliui, kurį mes naudojame „Arduino“kaip programuotoją, o antrasis kodas bus paleistas „Arduino“.

1 žingsnis: komponentai

Šiam projektui jums reikės:

Techninė įranga:

• 1x automobilinis radijo valdiklis, (turi turėti ESC ir vairo stiprintuvą).

Mes naudojome daugiausia „Traxxas 1/16 E-Revo VXL“, daugiausia todėl, kad tai turėjome, ir buvome visiškai tikri, kad sugebėsime jį valdyti naudodami „Arduino“. Taip pat todėl, kad galų gale jis turės nereikšmingą papildomos įrangos kiekį, buvome įsitikinę, kad tai nebus problema „1/16 E-Revo“.

Tačiau dauguma radijo bangomis valdomų automobilių (kuriuos galima lengvai išardyti) greičiausiai galėtų būti naudojami vietoj jų, o procesas bus labai panašus.

• Tona lipnios juostos.

Spalva turėtų kuo labiau kontrastuoti su grindimis. Mūsų bandymų aplinkoje ant tamsių grindų naudojome baltą juostą.

• 1x „Arduino Mega 2560“.

Mažesni „Arduino“greičiausiai taip pat tinka, tačiau būsite prispausti prie kaiščių.

• 1x didelė duonos lenta.

Pakanka vieno, tačiau turėjome ir mažesnį, kad atskirtume kitas įtampos elektros linijas, kad sumažintume vartotojo klaidų riziką.

• 1x TCRT5000 IR analoginis jutiklis (naudojamas siekiant išvengti susidūrimo).

Tikslus prekės ženklas/modelis nesvarbu, ar jis suderinamas su „Arduino“ir matuoja atstumą. Ieškokite raktinių žodžių, tokių kaip „Atstumas“, „kliūčių“jutiklis. Techniškai skaitmeninis jutiklis taip pat veiktų su nedideliais kodo pakeitimais, tačiau mes naudojame analoginį.

• 1x arba 2x gravitacija: analoginis pilkos spalvos jutiklis v2

Vienas iš jų yra būtinas eilutės pasekėjui. Tikslus modelis nesvarbus, kol jis žiūri į atspindėtos šviesos intensyvumą ir perduoda analoginį signalą. Antrasis, skirtas „kambario“aptikimui, veikė ne taip, kaip tikėtasi, ir gali būti praleistas, arba galima rasti alternatyvą, pavyzdžiui, RGB spalvų jutiklį, tikėtina, kad būtų pasiektas geresnis efektas. Mes dar turime tai išbandyti.

• 1 x ESP 8266-01.

Yra daug ESP 8266 versijų. Turime tik patirties su 8266-01 ir negalime garantuoti, kad ESP kodas veiks su kita versija.

• 1 x ESP8266-01 „Wi-Fi“skydas.

Techniškai neprivaloma, tačiau jei to nenaudosite, viskas, kas susiję su „Wi-Fi“moduliu, taps daug sudėtingesnė. Tačiau vadovas manys, kad tai turite (jei ne, internete raskite vadovus, kaip teisingai prijungti ESP-01 prie „Arduino“), nes tai padarius neteisingai, galite ir greičiausiai sugadinsite modulį.

• Akumuliatoriai pačiai transporto priemonei ir baterijos papildomai elektronikai maitinti.

Lygiagrečiai naudojome porą 2,2 AH talpos 7,4 V „Lipo“baterijų, kad galėtume maitinti viską. Turėtumėte turėti galimybę naudoti bet kokias baterijas, kurias paprastai naudojate su pasirinkta transporto priemone. Jei esate virš 5 V, bet žemiau 20 V, talpa yra svarbesnė už vardinę įtampą.

• Daug jungiamųjų kabelių.

Aš atsisakiau skaičiuoti tikslų jų skaičių. Jei manote, kad turite pakankamai, greičiausiai to neturite.

• Galiausiai, norėdami viską pritvirtinti, prie pasirinktos transporto priemonės turėsite pritvirtinti „Arduino“, jutiklius, duonos lentą (-as) ir „Wi-Fi“modulį. Jūsų rezultatas skirsis priklausomai nuo to, ką naudojate kaip pagrindą ir kokių medžiagų yra.

Mes naudojom:

• Užsegami užtrauktukai.

• Kai kurie super klijai.

• Maži tinkamo skersmens popieriaus laukai/dervos vamzdeliai.

• Sena masonitų plokštė iš paveikslo rėmo, supjaustyta pagal dydį.

• Šiek tiek daugiau lipnios juostos.

• Bet kokios priemonės, reikalingos jūsų pasirinktam radijo bangomis valdomam automobiliui dirbti.

Dažniausiai naudojome mažą atsuktuvų rinkinį su keliais antgaliais, tačiau retkarčiais tekdavo ištraukti su automobiliu gautą įrankių rinkinį.

Programinė įranga:

• Mazgas raudonas

Svarbi duomenų rinkimo dalis.

• MQTT serveris.

Vidurys tarp mūsų transporto priemonės ir „Node-red“. Iš pradžių bandymams naudojome test.mosquitto.org

Vėliau naudojome:

• CloudMQTT.com

Tai buvo daug patikimiau, o tai sudarė šiek tiek sudėtingesnę sąranką.

• „WampServer“.

Paskutinė duomenų rinkimo dalis. Konkrečiai, surinktiems duomenims saugoti naudosime jos SQL duomenų bazę.

2 žingsnis: elektros schema

Elektros schema
Elektros schema

3 žingsnis: fizinė konstrukcija

Fizinė konstrukcija
Fizinė konstrukcija
Fizinė konstrukcija
Fizinė konstrukcija
Fizinė konstrukcija
Fizinė konstrukcija

Mūsų sprendimas turi tiesioginį požiūrį į fizinį surinkimą.

Originalus imtuvas ir jo vandeniui atsparus gaubtas buvo pašalinti iš RC automobilio, nes tai nėra būtina.

Mes nustatėme, kad tarp priekinių ratų yra viena tinkama vieta mūsų linijos sekimo jutikliui, todėl laikėme ją vietoje, užlenkdami užtrauktuką virš priekinės slydimo plokštės.

Jutiklis, kurį naudojame prieš susidūrimą, yra tarsi įstrigęs už priekinio buferio. Jis vis dar apsaugotas nuo smūgių ir tinka trinčiai. Galų gale jis žiūri į priekį vis tiek nedideliu aukštyn. Tai yra tobula.

Masonito plokštės (apatinė plokštė iš seno paveikslo rėmo) viršuje yra mažos popieriaus/dervos vamzdžio dalys, supjaustytos pagal dydį ir priklijuotos prie apačios. Jie sutampa su kėbulo laikiklių tvirtinimais ir tiesiog sėdi ant viršaus, saugiai laikydami viską. Darant prielaidą, kad klijai, tvirtinantys vamzdį prie plokštės, laikosi ir kad jis pernelyg nesvyra, tai liks vietoje. Taip pat verta paminėti, kad plokštė yra apsauginėje ratų ir buferių srityje. „Arduino Mega“ir dvi duonos lentos buvo pritvirtintos prie plokštės su dviguba šonine juosta arba suklijuota lipnia juosta, klijuojama.

Jokių specialių priemonių „WiFi“moduliui apsaugoti nesiimta. Tai ne mūsų, todėl jo klijavimas ar užklijavimas buvo nereikalingas, nes jis toks lengvas, kad mažai judės, o laidų pakanka, kad jis laikytųsi vietoje.

Galiausiai, mes turime jutiklį, skirtą „patalpoms“aptikti. Jis buvo pritvirtintas prie pakabos komponentų vienu iš galinių ratų. Eksploatacijos metu tai turi būti toli nuo linijos, žyminčios transporto priemonę navigacijai.

4 žingsnis: ESP8266 modulis

ESP8266 modulis
ESP8266 modulis
ESP8266 modulis
ESP8266 modulis

„WiFi“moduliui ESP8266 reikia dviejų skirtingų kaiščių sąrankos. Blykstant moduliui su nauja programa ir naudojant „Arduino Mega 2560“kaip programuotoją, reikia naudoti vieną sąranką. Kita sąranka skirta moduliui, kai jis naudojamas ir siunčia informaciją MQTT brokeriui.

Norėdami įkelti kodą į ESP8266 modulį naudodami „Arduino IDE“, turėsite įdiegti plokštės tvarkyklę ir papildomą lentų tvarkyklę

Pagal lentos tvarkyklę įdiekite esp8266 plokštės tvarkyklę. Jį lengvai rasite ieškodami „esp“. Labai svarbu įdiegti 2.5.0 versiją, ne senesnę ar ne naujesnę.

Papildomų lentų valdytojo URL nustatymuose nukopijuokite šią eilutę:

arduino.esp8266.com/stable/package_esp8266c…

Kad galėtumėte ką nors įkelti į ESP8266 modulį, turėsite naudoti tam tikrą kaiščio sąranką, kad galėtumėte paleisti modulį. Tai reikia padaryti kiekvieną kartą, kai norite pakeisti dabartinį modulio kodą. Prieš blykstelėdami, nepamirškite iš plokštės tvarkyklės pasirinkti tinkamą ESP8266 modulį. Šiame projekte mes pasirinkome bendrą ESP8266 plokštę. Modulio mirksėjimo kaiščio sąranka yra pirmoje šio segmento nuotraukoje.

Po to, kai mirksi ESP8266 modulis, turite pakeisti kaiščio sąranką. Taip pat galite pasirinkti naudoti adapterį, kad jums būtų lengviau nustatyti. Šiame projekte mes pasirinkome turėti adapterį, kai tik veikia modulis. Smeigtuko sąranka su adapteriu yra antroje šio segmento nuotraukoje.

Kodas, kuris turi būti parodytas ESP8266 modulyje, nustato ryšį su „WiFi“ir „MQTT Broker“, šiuo atveju su vartotojo vardu ir slaptažodžiu, tačiau tai galima padaryti be jo, jei atliksite reikiamus kodo komentaruose aprašytus pakeitimus. Šiam projektui mūsų brokeris reikalavo vartotojo vardo ir slaptažodžio. Modulis skaito gaunamus pranešimus iš nuoseklaus prievado, prie kurio yra prijungtas. Jis skaitys kiekvieną naują eilutę, sukurtą pagal „Arduino“kodą, iššifruos pranešimą ir atkurs pranešimą. Po to ji siunčia pranešimą MQTT brokeriui, kuris buvo nurodytas kode. ESP8266 modulio kodas:

5 žingsnis: „Arduino“

Sukonfigūravę „WiFi“modulį, žiūrime į programą, kuri bus naudojama RC automobilio varikliui ir servo valdymui. Automobilis reaguos pagal pilkosios skalės informaciją iš centrinio jutiklio, kuris šiame projekte taip pat žinomas kaip „linijos detektorius“. Akivaizdu, kad jo tikslas yra išlaikyti linijos detektoriaus informaciją netoli iš anksto nustatytos vertės, kuri yra lygi informacijai, užfiksuotai keičiantis šviesiai ir tamsiai arba šiame projekte - balta ir juoda. Taigi, jei vertė per daug skiriasi, atitinkama servo išvestis nukreipia automobilį netoli iš anksto nustatytos linijos vertės.

Programa turi du mygtukus, kurie veikia kaip RC automobilio paleidimo ir sustabdymo mygtukas. Techniškai „stop“mygtukas yra „įjungimo“mygtukas, kuris yra lygus PWM reikšmei, siunčiamai į variklį, dėl ko RC automobilis sustoja. Pradžios mygtukas siunčia PWM vertę, lygią RC automobiliui, kuris vos juda į priekį, nes jis važiuos per greitai, jei įgaus per daug pagreitį.

RC automobilio priekyje yra sumontuotas susidūrimo išvengimo detektorius, kuris nustato, ar kelias į priekį yra aiškus, ar ne. Jei jis užblokuotas, RC automobilis sustos, kol kliūtis nebus pašalinta/pašalinta. Analoginis signalas iš detektoriaus naudojamas nustatyti, ar kažkas neužkerta kelio, ir yra kriterijus, leidžiantis judėti į priekį ir sustoti.

Antrinis pilkosios skalės jutiklis „kambario detektorius“naudojamas aptikti, į kurią patalpą pateko RC automobilis. Jis veikia panašiu principu kaip linijos detektorius, tačiau jis ieško ne šviesos ir tamsos pokyčių, o verčių tam tikrame diapazone, kuris atitinka skirtingus kambarius, priklausomai nuo kambario detektoriaus matomos vertės.

Galiausiai programa sukuria informacijos eilutę iš jutiklių, skirtų „WiFi“moduliui perskaityti ir vėliau nusiųsti „MQTT Broker“. Informacijos eilutė sukuriama kaip eilutė ir įrašoma į atitinkamą seriją, prie kurios prijungtas „WiFi“modulis. Svarbu, kad serijinis įrašymas vyktų tik taip dažnai, kaip „WiFi“modulis gali perskaityti gaunamą pranešimą, tačiau nepamirškite nenaudoti jokių šio kodo vėlavimų, nes tai trukdys RC automobilio gebėjimui sekti eilutę. Vietoj to naudokite „milis“, nes tai leis programai veikti nedelsiant, tačiau praėjus tam tikram kiekiui milisų nuo to laiko, kai buvo įjungtas „Arduino“, parašys pranešimą serijai, neužblokuodamas kodo taip pat, kaip ir uždelsimas.

„Arduino Mega 2560“kodas:

6 veiksmas: „MySQL“duomenų bazė

„WampServer“yra „Windows“žiniatinklio kūrimo aplinka, leidžianti kurti programas naudojant PHP ir „MySQL“duomenų bazę. „PhpMyAdmin“leidžia mums lengvai valdyti savo duomenų bazes.

Norėdami pradėti, eikite į:

Šiame projekte mes naudojame 3.17 x64 bitų versiją „Windows“. Įdiegę įsitikinkite, kad visos paslaugos veikia, o tai reiškia, kad maža piktograma tampa žalia, o ne raudona arba oranžinė. Jei piktograma yra žalia, galite pasiekti „PhpMyAdmin“, kad galėtumėte tvarkyti „MySQL“duomenų bazę.

Pasiekite „MySQL“naudodami „PhpMyAdmin“ir sukurkite naują duomenų bazę. Pavadinkite tai ką nors tinkamo, kurį galite prisiminti, šiame projekte jis buvo vadinamas „line_follow_log“. Sukūrę duomenų bazę, duomenų bazėje turėtumėte sukurti lentelę. Įsitikinkite, kad stulpelių skaičius tinka. Projekte naudojame 4 stulpelius. Vienas stulpelis skirtas laiko žymei, o trys paskutiniai - duomenims iš transporto priemonės saugoti. Kiekvienam stulpeliui naudokite tinkamą duomenų tipą. Laiko žymos stulpeliui naudojome „longtext“, o likusiai - „mediumtext“.

Tai turėtų būti viskas, ką turite padaryti „PhpMyAdmin“ir „MySQL“. Prisiminkite savo duomenų bazę ir lentelę skyriuje apie raudoną mazgą.

7 žingsnis: mazgas raudonas

Norėdami tvarkyti duomenų rinkimą, naudosime gana paprastą srautą raudonu mazgu. Jis jungiasi prie mūsų MQTT serverio ir rašo į mūsų MYSQL duomenų bazę.

Norėdami tai padaryti, mums reikia kelių paletių, kad įvairios funkcijos veiktų, ir mums reikia tam tikro kodo, kad jis veiktų.

Visų pirmą. Mums reikės šių padėklų.

Node-red-contrib-mqtt-broker: Tai ryšys su mūsų MQTT brokeriu.

Raudonas mazgas-prietaisų skydelis: mūsų prietaisų skydelis, reikalingas vizualiai parodyti surinktus duomenis.

Node-red-node-mysql: mūsų ryšys su SQL duomenų baze.

Tai nėra visavertis „Node-red“vadovas, bet aš paaiškinsiu, ką daro „Node-red“srautas.

Anksčiau turėjome problemų dėl pasirinkto MQTT serverio mirimo/atjungimo, atrodo, atsitiktinai, todėl bet kokių pakeitimų atlikimas buvo varginantis, nes buvo neaišku, ar pakeitimai buvo naudingi, ar ne, kai nematėme rezultato. Taigi mygtukas „Ar serveris mirė?“švirkščia „Ne“, šis blokas įveda jį į mūsų MQTT serverį. Jei jis nėra miręs, derinimo lange pasirodys „Ne“. Tai daroma ne tik norint patikrinti, bet ir priversti „Node-red“bandyti iš naujo prisijungti prie MQTT serverio.

„Bandymo eilutė“siunčia kostiumo eilutę MQTT tarpininkui. Mes suformatavome šią eilutę, kad ji būtų panaši į tai, ką gautume iš „Arduino“. Taip turėjo būti lengviau sukonfigūruoti tinklą, kuris iššifruoja pranešimus, nereikalaujant projekto vykdymo ir duomenų rinkimo.

Paskutinį srautą darbo srityje galima suskirstyti į du segmentus. Apatinė šaka tiesiog skaito gaunamus pranešimus, paskelbia juos derinimo lange ir išsaugo juos SQL serveryje.

Didelis prijungtų jungiklių tinklas, einantis po funkciniu mazgu, jei įvyksta tikroji „magija“.

Tęsimo funkcija skaito gaunamą eilutę, padalija ją į kiekvieną dvitaškį ir perduoda skyrius kiekvienam išėjimui. Šie jungikliai ieško vienos iš dviejų skirtingų gaunamų informacijos dalių. Viena konkreti informacija visada perduodama iš vienos išvesties, o kita parinktis išeina iš antros išvesties. Po to yra antroji jungiklių blokų grupė. Jie bus aktyvuoti tik naudojant vieną konkretų įvestį ir išvesdami ką nors kita.

Pavyzdžiui, „kliūtis“, kaip ir visos kitos, yra dvejetainis pasirinkimas - važiuoti aišku arba ne. Taigi jis gaus 0 arba 1. A 0 bus išsiųstas į „aiškią“šaką, 1 - į „kliūties“šaką. Jungikliai „Išvalyti“, „Užblokuoti“, jei jie bus įjungti, išves atitinkamai kažką konkretaus, Išvalyti arba trukdyti. Žalios procedūros blokai bus paskelbti derinimo lange, o mėlyni - mūsų prietaisų skydelyje.

Šakos „statusas“ir „vieta“veikia lygiai taip pat.

8 žingsnis: „MQTT Broker“

Brokeris yra serveris, kuris nukreipia pranešimus iš klientų į atitinkamus paskirties klientus. MQTT tarpininkas yra tas, kuriame klientai naudojasi MQTT biblioteka, norėdami prisijungti prie tarpininko tinkle.

Šiam projektui sukūrėme „MQTT Brokerį“naudodami „CloudMQTT“paslaugą su nemokama „Cute Cat“versijos prenumerata. Jis turi savo apribojimus, tačiau mes neviršijame šio projekto ribų. „WiFi“modulis gali prisijungti prie brokerio, o brokeris tada nukreipia pranešimus į tinkamą paskirties klientą. Šiuo atveju klientas yra mūsų raudonasis mazgas. „CloudMQTT“paslauga nustato jų serverio vartotojo vardą ir slaptažodį, todėl mums garantuojamas didesnis saugumas. Iš esmės reiškia, kad tik tie, kurie turi vartotojo vardą ir slaptažodį, gali pasiekti šią konkrečią „CloudMQTT“paslaugą. Vartotojo vardas ir slaptažodis yra labai svarbūs nustatant ryšį naudojant ESP8266 kodą ir „Node-Red“.

Nuolatinė pranešimų, kuriuos gauna brokeris, statistika yra maloni funkcija, kurią galima naudoti norint pamatyti, kaip jūsų prenumeratos planas tvarko informaciją, kurią jis nukreipia.

Puiki savybė yra galimybė siųsti pranešimus iš tarpininko į „WiFi“modulį, tačiau mes jų nenaudojome šiame projekte.

9 žingsnis: Pomėgių elektronika

Prieš pradėdami iš ankstesnio projekto, žinojome, kad vairo stiprintuvo servo sistemą galima valdyti iš „Arduino“su PWM signalu, turinčiu panašius laidus ir prijungus prie skirtingų kanalų tuo pačiu pagrindiniu radijo imtuvu, mes manėme, kad elektroninis greičio valdymas (ESC iš dabar), kuris valdo variklį, panašiai galėtų būti valdomas naudojant „Arduino“PWM.

Norėdami išbandyti šią teoriją, mes sukūrėme nedidelį „Arduino“eskizą. Eskizas nuskaito analoginį įvestį iš potenciometro, pertvarko reikšmę nuo 0, 1024 iki 0, 255 ir gautą reikšmę perduoda į PWM kaištį, naudodamas analogWrite (), kol R/C automobilis buvo ant mažos dėžutės ir nuimti ratai.

Po šlavimo per puodų matuoklio diapazoną ESC tarsi „pabudo“ir galėjome jį slopinti aukštyn ir žemyn, taip pat turėjome „Arduino“atspausdinti reikšmes prie nuoseklaus ryšio, kad galėtume jas stebėti.

Atrodė, kad ESC nemėgsta reikšmių, žemesnių už tam tikrą ribą, šiuo atveju - 128. Jis matė, kad signalas 191 yra neutralus droselis, o 255 - maksimalus droselis.

Mums nereikėjo keisti transporto priemonės greičio ir puikiai ją važiavome lėčiausiu greičiu, dėl kurio ji galėtų judėti. 192 buvo mažiausia vertė, kuri suktų variklį, tačiau mes dar turime viską surinkti ir nesame tikri, ar šios išeigos pakaktų transporto priemonei perkelti po galutinio surinkimo, tačiau įvesti šiek tiek didesnę vertę turėtų būti nereikšminga.

Tačiau apeiti potenciometrą ir įvesti fiksuotą reikšmę į kodą nepavyko. Atsargos ESC tiesiog mirksėjo ir nesuktų variklio, „reguliuokite droselio apdailą“pagal vadovą.

Įnirtingas problemų sprendimas, įvairių vertybių metimas, skirtingų laidų naudojimas ir net eksperimentai keičiant „PWM“dažnį, kurį naudoja „Arduino“, sukėlė daugiau keistenybių.

Atrodė, kad tai yra protarpinis klausimas, kartais jis vykdavo, kartais atsisakė nieko daryti. Tiesiog toliau mirksėjo. Bandymas su originaliu valdikliu ir imtuvu patvirtino, kad ESC vis dar veikia tiksliai taip, kaip numatyta, todėl problemos tapo dar keistesnės. Didesnės vertės, jis ignoravo ir nuolat mirksėjo, mažesnės vertės ESC vėl spindėjo linksmai žalia spalva, bet vis tiek nepasuko.

Kas skyrėsi nuo sąrankos naudojant potenciometrą, atsarginį siųstuvą ir imtuvą bei versiją, kurioje buvo pateiktos fiksuotos vertės?

Kartais darbas, kaip numatyta, ir darbas, kaip tikėtasi, Venno diagramoje tikrai nesutampa. Šiuo atveju, būdamas žaislas, neturėtų būti jokios galimybės modeliui tiesiog nusileisti ar susilaužyti pirštus, ar įstrigus modeliui įstrigti plaukai į ratus ar pavarą, net jei kažkas panašaus į keitiklio laikymą turi droselį bet kokia kita pozicija, išskyrus neutralią.

„Sureguliuokite droselio apdailą“, būtent tai ir reiškia. ESC tikisi neutralaus signalo, kai jis įsijungs, prieš tai suprasdamas, kad nieko nedarys. Paprastai siųstuvas visada yra neutralioje padėtyje, kai įjungiamas ESC, ir iš ten džiaugsmingai važiuos. Jei taip nėra, tikriausiai jis bent kartą grįžo į neutralią padėtį, kol modelis tvirtai stovi ant žemės ir operatorius jaučiasi pasirengęs lenktynėms.

Naudodami potenciometrą mes „šlavėme“diapazonus, o tada jis pradės veikti. Jis tiesiog buvo ginkluotas, kai potenciometras praplaukė pro neutralią padėtį, ir tada jis veikė.

Mažesni diapazonai vis dėlto atrodė nepatenkinti ESC. Pasirodo, tai PWM darbo ciklų produktas.

Tiek pagal konstrukciją, tiek dėl techninių priežasčių, tiek vairo stiprintuvas, tiek ESC ignoruoja signalus, kurių darbo ciklas yra mažesnis nei 50%. Taip gali atsitikti tuo atveju, jei imtuvas/siųstuvas nustoja veikti arba jam baigiasi energija, modelis grįžta į neutralią padėtį ir nepasileidžia į tolį, kai veikia visiškai atvirkštinis droselis. Lygiai taip pat servo sukasi tik 180 laipsnių kampu ir jam nereikia viso diapazono.

Turint šias naujas žinias, buvo sukurtas naujas „Arduino“eskizas. Pradinė versija priima eilutes, įvestas į serijinį monitorių, konvertuoja jas į sveiką skaičių ir perkelia į PWM kaištį, naudodama servo biblioteką ir rašykite ()*. Jei serijiniame monitoriuje įvedama nauja vertė, rašymo () vertė atnaujinama.

Bandymo metu „Traxxas ESC“atsargos buvo pakeistos „Mtroniks G2 Micro“, tačiau jos turėtų veikti vienodai, nors tikslios vertės gali šiek tiek skirtis.

Šioje bibliotekoje ESC traktuojamas kaip servo, tai, matyt, gerai. „Servo.h“bibliotekos rašymo () funkcija yra nuo 0 iki 180, tikimasi, kad įjungimo signalas bus maždaug viduryje.

„G2 Micro“ginklai buvo parašyti (), kai reikšmių diapazonas buvo artimas 90, tačiau buvo sunku tiksliai nustatyti, nes atrodo, kad „prisimena“, kad buvo ginkluotas.

Tikimasi, kad „Traxxas VXL-s3“bus įrašyta į rašymo () vertę 91.

Po įjungimo signalo ESC laimingai priėmė PWM signalus, nesvarbu, kokios „Arduino“funkcijos būtų pakviestos juos generuoti, ir atitinkamai valdo variklį.

Kalbant apie funkcijas; standartinį analogWrite (), taip pat write () ir writeMicroseconds () iš „Servo.h“bibliotekos galima naudoti pakaitomis, tiesiog nepamirškite, ką daro, ir galiausiai nieko kito, išskyrus darbo ciklą. „WriteMicroseconds“() gali būti naudojamos, jei reikia didesnio detalumo, tiesiog atminkite, kad diapazonas čia yra nuo 1000 iki 2000, o įjungimas arba „neutralus“turėtų būti 1500. Naudojant standartinį analogWrite (), numatomas diapazonas būti nuo 128 iki 255, o apie 191 - neutralus.

Rekomenduojamas: