Obsah:

Ovládač vlaku Arduino 2 v 1: 4 kroky
Ovládač vlaku Arduino 2 v 1: 4 kroky

Video: Ovládač vlaku Arduino 2 v 1: 4 kroky

Video: Ovládač vlaku Arduino 2 v 1: 4 kroky
Video: First steps with Wemos Lolin32 (ESP32, Arduino IDE, Windows) 2024, Júl
Anonim
Ovládač vlaku 2 v 1 Arduino
Ovládač vlaku 2 v 1 Arduino

Pred štyridsiatimi rokmi som pre pár priateľov navrhol modelový vlakový plyn na báze operačného zosilňovača a potom som ho asi pred štyrmi rokmi znova vytvoril pomocou mikrokontroléra PIC. Tento projekt Arduino obnovuje verziu PIC, ale tiež pridáva možnosť používať pripojenie Bluetooth namiesto manuálnych spínačov ovládania plynu, brzdy a smeru. Aj keď dizajn, ktorý tu uvádzam, je zameraný na 12 -voltový model železničného motora, je možné ho ľahko upraviť pre množstvo ďalších aplikácií na ovládanie jednosmerného motora.

Krok 1: Modulovanie šírky impulzu (PWM)

Modulovanie šírky impulzu (PWM)
Modulovanie šírky impulzu (PWM)

Pre tých z vás, ktorí nepoznajú PWM, to nie je také strašidelné, ako to znie. Pre našu jednoduchú aplikáciu riadenia motora skutočne znamená, že vygenerujeme štvorcovú vlnu s určitou frekvenciou a potom zmeníme pracovný cyklus. Pracovný cyklus je definovaný ako podiel času, počas ktorého je výstup logicky vysoký v porovnaní s periódou priebehu. Celkom jasne to vidíte na diagrame vyššie s horným priebehom pri 10% pracovnom cykle, stredným priebehom pri 50% pracovnom cykle a spodným priebehom pri 90% pracovnom cykle. Prerušovaná čiara prekrývajúca každý priebeh vlny predstavuje ekvivalentné jednosmerné napätie, ktoré vidí motor. Vzhľadom na to, že Arduino má vstavanú schopnosť PWM, je skutočne veľmi jednoduché generovať tento typ riadenia jednosmerného motora. Jednou ďalšou výhodou použitia PWM je, že pomáha udržať motor pred rozbiehajúcim sa štartovaním, ku ktorému môže dôjsť pri použití priameho jednosmerného prúdu. Jednou nevýhodou PWM je, že z frekvencie PWM je z motora niekedy počuteľný hluk.

Krok 2: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér

Prvý obrázok zobrazuje pripojenia Arduino pre prepínače a modul ovládača motora LM298. Vnútri Arduina sú slabé výsuvné odpory, takže pre prepínače nie sú potrebné žiadne výsuvné odpory. Prepínač smeru je jednoduchý prepínač SPST (jednopólový jedno vrh). Spínače plynu a brzdy sú zobrazené ako normálne otvorené, krátkodobé kontaktné tlačidlá.

Druhý obrázok zobrazuje pripojenia Arduino pre modul Bluetooth a modul ovládača motora LM298. Výstup Bluetooth TXD sa pripája priamo k sériovému vstupu Arduino RX.

Tretí obrázok je dvojitý H-mostíkový modul L298N. Modul LM298 má vstavaný 5 voltový regulátor, ktorý je možné aktivovať prepojkou. Na Arduino a Bluetooth potrebujeme +5 voltov, ale na pohon motora chceme +12 voltov. V tomto prípade použijeme +12 voltov na vstup „ +12V výkonu“L298N a necháme prepojku „5V povoliť“na mieste. To umožňuje 5-voltovému regulátoru vystupovať do konektora „+5 napájania“na module. Pripojte to k Arduinu a Bluetooth. Nezabudnite pripojiť uzemňovacie vodiče pre vstup +12 a +5 k modulu „power GND“.

Chceme, aby sa výstupné napätie do motora líšilo na základe PWM generovaného Arduinom, a nie aby bolo úplne zapnuté alebo úplne vypnuté. Za týmto účelom odstránime prepojky z „ENA“a „ENB“a prepojíme náš výstup Arduino PWM s „ENA“na module. Majte na pamäti, že skutočný aktivačný pin je ten, ktorý je najbližšie k okraju dosky (vedľa „vstupných“pinov). Zadný kolík pre každé povolenie je +5 voltov, takže sa chceme uistiť, že sa k tomu nepripojíme.

Piny „IN1“a „IN2“na module sú pripojené k príslušným pinom Arduino. Tieto kolíky ovládajú smer motora a áno, existuje dobrý dôvod nechať ich ovládať Arduino namiesto jednoduchého pripojenia prepínača k modulu. Prečo, uvidíme v diskusii o softvéri.

Krok 3: Modul Bluetooth

Bluetooth modul
Bluetooth modul

Tu zobrazený obrázok je typický pre dostupné moduly Bluetooth. Pri hľadaní jedného na kúpu môžete vyhľadať výrazy „HC-05“a HC-06”. Rozdiely medzi týmito dvoma sú vo firmvéri a spravidla v počte pinov na doske. Vyššie uvedený obrázok zobrazuje modul HC-06 a je dodávaný so zjednodušeným firmvérom, ktorý umožňuje iba veľmi základnú konfiguráciu. Je tiež nastavený ako zariadenie Bluetooth iba „Slave“. Jednoducho povedané, to znamená, že môže reagovať iba na príkazy zo zariadenia „Master“a nemôže vydávať príkazy samostatne. Modul HC-05 má viac možností konfigurácie a je možné ho nastaviť ako zariadenie „Master“alebo „Slave“. HC-05 má zvyčajne šesť kolíkov namiesto iba štyroch vyššie uvedených pre HC-06. Stavový pin nie je skutočne dôležitý, ale ak chcete vykonať akúkoľvek konfiguráciu, vyžaduje sa PIN (niekedy sa nazýva aj „EN“). Moduly vo všeobecnosti nepotrebujú žiadnu konfiguráciu, ak vám vyhovuje predvolená prenosová rýchlosť 9600 a nezáleží vám na tom, aby ste modulu dali konkrétny názov. Mám niekoľko projektov, kde tieto používam, takže ich rád pomenujem.

Konfigurácia modulov Bluetooth vyžaduje, aby ste si buď kúpili alebo vytvorili rozhranie pre sériový port RS-232 alebo USB. V tomto príspevku sa nebudem zaoberať tým, ako ho vytvoriť, ale mali by ste nájsť informácie na internete. Alebo si len kúpte rozhranie. Konfiguračné príkazy používajú AT príkazy podobne ako tie, ktoré sa používali v dávnych dobách s telefónnymi modemami. Prikladám sem používateľskú príručku, ktorá obsahuje príkazy AT pre každý typ modulu. Jedna vec, ktorú je potrebné poznamenať, je, že HC-06 vyžaduje príkazy UPPERCASE a príkazový reťazec sa musí dokončiť do 1 sekundy. To znamená, že niektoré z dlhších reťazcov, ako napríklad zmena prenosovej rýchlosti, bude potrebné vystrihnúť a vložiť do programu terminálu alebo budete musieť nastaviť odosielanie textových súborov. Požiadavka UPPERCASE je iba vtedy, ak sa pokúšate odoslať konfiguračné príkazy. Bežný komunikačný režim môže prijímať akékoľvek 8-bitové dáta.

Krok 4: Softvér

Softvér je veľmi jednoduchý pre manuálnu aj pre Bluetooth verziu. Ak chcete vybrať verziu Bluetooth, jednoducho odkomentujte vyhlásenie „#define BT_Ctrl“.

Keď som písal kód PIC, experimentoval som s frekvenciou PWM a nakoniec som sa usadil na 500 Hz. Zistil som, že ak by bola frekvencia príliš vysoká, modul LM298N nebol schopný dostatočne rýchlo reagovať na impulzy. To znamenalo, že výstup napätia nebol lineárny a mohol vykonávať veľké skoky. Arduino má vstavané príkazy PWM, ale umožňujú vám meniť iba pracovný cyklus, a nie frekvenciu. Našťastie je frekvencia asi 490 Hz, takže je dostatočne blízko 500 Hz, ktoré som použil na obrázku.

Jednou z „vlastností“škrtiacich klapiek vlaku je pocit hybnosti pre akceleráciu a brzdenie, aby sa simulovalo, ako funguje skutočný vlak. Aby sa to dosiahlo, do slučky manuálnej verzie softvéru je vložené jednoduché časové oneskorenie. Pri zobrazenej hodnote trvá prechod z 0 na 12 voltov alebo z 12 voltov späť na nulu približne 13 sekúnd. Oneskorenie je možné ľahko upraviť na dlhšie alebo kratšie časy. Jediný prípad, keď hybnosť neplatí, je zmena smerového spínača. Na účely ochrany je pracovný cyklus PWM okamžite nastavený na 0%, kedykoľvek je tento spínač zmenený. V dôsledku toho sa spínač smeru jazdy zdvojnásobí aj ako núdzová brzda.

Aby som zaistil okamžitú manipuláciu so smerovým prepínačom, vložil som jeho kód do obsluhy prerušenia. To nám tiež umožňuje používať funkciu „prerušiť pri zmene“, takže nezáleží na tom, či ide o zmenu z nízkej na vysokú alebo vysokú na nízku.

Verzia softvéru s rozhraním Bluetooth používa jednopísmenové príkazy na spustenie funkcií dopredu, dozadu, brzdy a plynu. Prijaté príkazy v skutočnosti nahrádzajú manuálne prepínače, ale spôsobujú rovnaké reakcie. Aplikácia, ktorú používam na ovládanie Bluetooth, sa od spoločnosti Next Prototypes nazýva „sériový ovládač Bluetooth“. Umožňuje vám nakonfigurovať virtuálnu klávesnicu a nastaviť vlastné reťazce príkazov a názvy pre každý kláves. Tiež vám umožňuje nastaviť rýchlosť opakovania, takže tlačidlá brzdy a plynu nastavím na 50 ms, aby poskytli hybnosť asi 14 sekúnd. Vypol som funkciu opakovania pre tlačidlá Vpred a Späť.

To je k tomuto príspevku všetko. Pozrite sa na moje ďalšie pokyny. Ak vás zaujímajú projekty mikrokontrolérov PIC, navštívte moju webovú stránku www.boomerrules.wordpress.com

Odporúča: