Turinys:
- 1 žingsnis: impulsų pločio moduliavimas (PWM)
- 2 žingsnis: Aparatūra
- 3 žingsnis: „Bluetooth“modulis
- 4 žingsnis: programinė įranga
Video: „Arduino 2-in-1“traukinio valdiklio modelis: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Prieš keturiasdešimt metų porai draugų suprojektavau „op-amp“modelio traukinio droselį, o maždaug prieš ketverius metus jį sukūriau naudodamas PIC mikrovaldiklį. Šis „Arduino“projektas atkuria PIC versiją, tačiau taip pat suteikia galimybę naudoti „Bluetooth“ryšį, o ne rankinius droselio, stabdžių ir krypties valdymo jungiklius. Nors čia pateiktas dizainas yra skirtas 12 voltų geležinkelio varikliui, jį galima lengvai modifikuoti įvairioms kitoms nuolatinės srovės variklių valdymo programoms.
1 žingsnis: impulsų pločio moduliavimas (PWM)
Tiems iš jūsų, kurie nėra susipažinę su PWM, tai nėra taip baisu, kaip atrodo. Viskas, ką iš tikrųjų reiškia mūsų paprasta variklio valdymo programa, yra tai, kad mes sukuriame tam tikro dažnio kvadratinę bangą ir tada pakeičiame darbo ciklą. Darbo ciklas apibrėžiamas kaip laiko santykis, per kurį produkcija yra logiškai aukšta, palyginti su bangos formos periodu. Tai galite aiškiai matyti aukščiau pateiktoje diagramoje, kai viršutinė bangos forma yra 10% darbo ciklo, vidutinė - 50%, o apatinė - 90%. Kiekvienos bangos formos brūkšninė linija reiškia ekvivalentinę nuolatinės srovės įtampą, kurią mato variklis. Atsižvelgiant į tai, kad „Arduino“turi įmontuotą PWM funkciją, tokio tipo nuolatinės srovės variklio valdymas yra tikrai gana paprastas. Kitas PWM naudojimo pranašumas yra tas, kad jis padeda išvengti variklio paleidimo, kuris gali atsitikti naudojant tiesioginę nuolatinę srovę. Vienas PWM trūkumas yra tas, kad kartais iš variklio girdimas triukšmas PWM dažniu.
2 žingsnis: Aparatūra
Pirmajame paveikslėlyje parodyta jungiklių „Arduino“jungtys ir variklio tvarkyklės modulis LM298. „Arduino“viduje yra silpni traukimo rezistoriai, todėl jungikliams nereikia traukiamųjų rezistorių. Krypties jungiklis yra paprastas SPST (vieno poliaus vieno metimo) jungiklis. Droselio ir stabdžių jungikliai rodomi kaip paprastai atviri, trumpalaikiai kontaktiniai mygtukai.
Antrame paveikslėlyje parodyta „Bluetooth“modulio ir „LM298“variklio tvarkyklės modulio „Arduino“jungtys. „Bluetooth TXD“išvestis tiesiogiai jungiasi prie „Arduino RX“nuosekliosios įvesties.
Trečiasis paveikslas yra L298N dvigubas H tilto modulis. LM298 modulis turi įmontuotą 5 voltų reguliatorių, kurį gali įjungti trumpiklis. Mums reikia +5 voltų „Arduino“ir „Bluetooth“, tačiau norime, kad variklis veiktų +12 voltų. Tokiu atveju L298N „12 V galios“įėjimui pritaikome +12 voltų ir paliksime jungiklį „5 V įgalinimas“. Tai leidžia 5 voltų reguliatoriui išvesti modulį į „+5 power“jungtį. Prijunkite tai prie „Arduino“ir „Bluetooth“. Nepamirškite prijungti +12 įvesties ir +5 išvesties įžeminimo laidų prie modulio „power GND“.
Mes norime, kad variklio išėjimo įtampa kistų priklausomai nuo „Arduino“generuojamo PWM, o ne tik pilnai įjungta arba visiškai išjungta. Norėdami tai padaryti, pašaliname trumpiklius iš „ENA“ir „ENB“ir prijungiame „Arduino PWM“išvestį prie modulio „ENA“. Atminkite, kad tikrasis įjungimo kaištis yra tas, kuris yra arčiausiai plokštės krašto (šalia „įvesties“kaiščių). Galinis kiekvieno įjungimo kaištis yra +5 voltai, todėl norime įsitikinti, kad prie to neprisijungiame.
Modulio „IN1“ir „IN2“kaiščiai yra prijungti prie atitinkamų „Arduino“kaiščių. Šie kaiščiai kontroliuoja variklio kryptį ir, taip, yra rimta priežastis leisti „Arduino“juos valdyti, o ne tiesiog prijungti jungiklį prie modulio. Kodėl, pamatysime programinės įrangos diskusijoje.
3 žingsnis: „Bluetooth“modulis
Čia parodyta nuotrauka yra būdinga turimiems „Bluetooth“moduliams. Ieškodami pirkti, galite ieškoti terminų „HC-05“ir HC-06 “. Skirtumai tarp šių dviejų yra programinėje įrangoje ir paprastai kaiščių skaičiuje lentoje. Aukščiau esančiame paveikslėlyje yra HC-06 modulis ir pateikiama supaprastinta programinė įranga, kuri leidžia tik labai paprastą konfigūraciją. Jis taip pat nustatytas kaip tik „pavergtas“„Bluetooth“įrenginys. Paprasčiau tariant, tai reiškia, kad jis gali reaguoti tik į komandas iš „pagrindinio“įrenginio ir negali pats duoti komandų. HC-05 modulis turi daugiau konfigūravimo galimybių ir gali būti nustatytas kaip „Master“arba „Slave“įrenginys. HC-05 paprastai turi šešis kaiščius, o ne tik keturis, parodytus aukščiau HC-06. Būsenos kaištis nėra labai svarbus, tačiau raktas (kartais vadinamas kitais pavadinimais, pvz., „EN“) yra būtinas, jei norite atlikti bet kokią konfigūraciją. Paprastai moduliams nereikia jokios konfigūracijos, jei jums gerai tinka numatytasis duomenų perdavimo greitis 9600 ir nenorite moduliui suteikti konkretaus pavadinimo. Turiu keletą projektų, kuriuose juos naudoju, todėl man patinka juos atitinkamai pavadinti.
Norint sukonfigūruoti „Bluetooth“modulius, reikia nusipirkti arba sukurti sąsają su RS-232 nuosekliu prievadu arba prie USB prievado. Šiame įraše neaprašysiu, kaip jį sukurti, bet jūs turėtumėte sugebėti rasti informacijos internete. Arba tiesiog nusipirkite sąsają. Konfigūravimo komandoms naudojamos AT komandos, panašios į tai, kas senovėje buvo naudojama su telefono modemais. Čia pridėjau vartotojo vadovą, kuriame yra kiekvieno modulio tipo AT komandos. Vienas dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad HC-06 reikalauja komandų DIDELIAI, o komandų eilutė turi būti užbaigta per 1 sekundę. Tai reiškia, kad kai kurias ilgesnes eilutes, pvz., Spartos keitimą, reikės iškirpti ir įklijuoti į jūsų terminalo programą, arba turėsite nustatyti siųsti tekstinius failus. Didžiųjų raidžių reikalavimas taikomas tik tuo atveju, jei bandote siųsti konfigūracijos komandas. Įprastas ryšio režimas gali priimti bet kokius 8 bitų duomenis.
4 žingsnis: programinė įranga
Programinė įranga yra gana paprasta tiek rankinės, tiek „Bluetooth“versijos atveju. Norėdami pasirinkti „Bluetooth“versiją, tiesiog nekomentuokite teiginio „#define BT_Ctrl“.
Kai rašiau PIC kodą, eksperimentavau su PWM dažniu ir galiausiai nusistovėjau 500 Hz dažniu. Aš sužinojau, kad jei dažnis buvo per didelis, LM298N modulis negalėjo pakankamai greitai reaguoti į impulsus. Tai reiškė, kad išėjimo įtampa nebuvo linijinė ir galėjo šoktelėti. „Arduino“turi įmontuotas PWM komandas, tačiau jos leidžia keisti tik darbo ciklą, o ne dažnį. Laimei, dažnis yra apie 490 Hz, todėl jis yra pakankamai artimas 500 Hz, kurį naudoju PIC.
Viena iš traukinio droselių „savybių“yra pagreičio ir stabdymo pagreičio jausmas, imituojantis tikro traukinio veikimą. Norėdami tai padaryti, rankinės programinės įrangos versijos cikle įterpiamas paprastas laiko atidėjimas. Kai rodoma vertė, nuo 0 iki 12 voltų arba nuo 12 voltų iki nulio reikia maždaug 13 sekundžių. Delsą galima lengvai pakeisti ilgesniam ar trumpesniam laikui. Vienintelis atvejis, kai impulsas neveikia, yra tada, kai keičiamas krypties jungiklis. Apsaugos tikslais PWM veikimo ciklas iš karto nustatomas į 0%, kai tik keičiamas šis jungiklis. Tiesą sakant, krypties jungiklis taip pat veikia kaip avarinis stabdys.
Kad būtų galima nedelsiant valdyti krypties jungiklį, įdėjau jo kodą į pertraukimo tvarkyklę. Tai taip pat leidžia mums naudoti funkciją „pertraukti keitimą“, todėl nesvarbu, ar pokytis nuo mažo iki aukšto, ar nuo didelio iki žemo.
Programinės įrangos „Bluetooth“versijoje naudojamos vienos raidės komandos, kad būtų pradėtos „Forward“, „Reverse“, „Brake“ir „Throttle“funkcijos. Iš tikrųjų gautos komandos pakeičia rankinius jungiklius, tačiau sukelia tas pačias reakcijas. Programa, kurią naudoju „Bluetooth“valdymui, „Next Prototypes“vadinama „Bluetooth“serijos valdikliu. Tai leidžia konfigūruoti virtualią klaviatūrą ir kiekvienam klavišui nustatyti savo komandų eilutes ir pavadinimus. Tai taip pat leidžia nustatyti kartojimo dažnį, todėl stabdžių ir droselio mygtukus nustatiau į 50 ms, kad gautumėte apie 14 sekundžių pagreitį. Išjungiau mygtukų Pirmyn ir Atgal pakartojimo funkciją.
Tai šiam įrašui. Peržiūrėkite kitas mano instrukcijas. Jei jus domina PIC mikrovaldiklių projektai, apsilankykite mano svetainėje adresu www.boomerrules.wordpress.com
Rekomenduojamas:
„Arduino“klaviatūros vairasvirtės išplėtimo dėžutė ir garso valdiklio dalykas naudojant „Deej“: 8 žingsniai
„Arduino“klaviatūros kreiptuko prailginimo dėžutė ir garso valdiklis, naudojant „Deej“: Kodėl Kurį laiką aš norėjau prie klaviatūros pridėti mažą vairasvirtę, kad galėčiau valdyti sąsajos elementus, arba atlikti kitas mažesnes žaidimų ir simuliatorių užduotis („MS Flight Sim“, „Elite: Dangerous“, Žvaigždžių karai: eskadrilės ir kt.). Taip pat „Elite: Dangerous“aš buvau
„Arduino MIDI“valdiklio kūrimas: 9 žingsniai (su nuotraukomis)
„Arduino MIDI“valdiklio kūrimas: Šis nurodymas iš pradžių buvo paskelbtas mano tinklaraštyje 2020 m. Birželio 28 d. Man patinka kurti medžiagą, apimančią elektroniką, ir aš visada norėjau ką nors sukurti naudodami „Arduino“. Vienas iš labiausiai paplitusių pradedantiesiems sukurtų kūrinių buvo MIDI valdiklis
„Processing“ir „Arduino“prijungimas ir 7 segmentų ir servo GUI valdiklio prijungimas: 4 žingsniai
„Processing“ir „Arduino“bei „Make 7 Segment“ir „Servo GUI Controller“prijungimas: Kai kuriems jūsų sukurtiems projektams reikia naudoti „Arduino“, nes tai yra paprasta prototipų kūrimo platforma, tačiau grafikos rodymas „Arduino“serijos monitoriuje gali užtrukti gana ilgai ir net sunku. Galite rodyti grafikus „Arduino“serijos monitoriuje
„Arduino DIY“„Bluetooth“valdiklio LED RGB juostelė: 4 žingsniai
„Arduino DIY“„Bluetooth“valdiklio LED RGB juostelė: Sveiki visi, tai yra antrasis projektas, kuriuo noriu pasidalinti su jumis! Šiandien aš jums parodysiu, kaip prijungti „Arduino“ir „Bluetooth“modulį, o vėliau naudoti jį LED RGB juostelės valdymui. Šiame vadove mes naudos „Bluetooth“modulį „HC-06“, nes jis yra che
„Circuito Arduino“valdiklio padas: 6 žingsniai (su nuotraukomis)
„Circuito Arduino“valdiklio pultas: „Circuito“yra „pasidaryk pats“valdymo pultas. Tai yra papildomas mano ankstesnio „Robotic Arm“projekto projektas. „Control Control Pad“yra kompiuteriu valdomos mechaninės konstrukcijos, padedančios judėti ir valdyti bet kokią robotų ranką, priklausomai nuo servo moto