Krmiljenje DC motorčka, krmiljenje prek WiFi

DC motorček je enosmerni motorček. Ko nanj priključimo enosmerno napetost, se zaradi menjavanja smeri magnetnega polja vrti. Zgrajen je iz mirujočega, statorskegaželeznega jedra, na katerem se nahaja vzbujalno navitje za ustvarjanje magnetnega polja. Med magnetnimi poli statorja se nahaja rotor z navitjem, povezanim preko komutatorja in ščetk na zunanji vir enosmerne napetosti. Če menjamo polariteto priključene enosmerne napetosti, se motorček vrti v drugo smer.

Za spreminjanje polaritete priključene napetosti in s tem spreminjanje smeri vrtenja DC motorčka uporabimo H-mostiček v integriranem vezju L293.

Integrirano vezje L293:

Integrirano vezje L293 je namenjeno za krmiljenje dveh enosmernih motorčkov, da se lahko vrtita v obe smeri. Mi bomo krmilili en motorček. Nanj lahko priključimo motorček, ki za svoje delovanje ne potrebuje večjega toka od 1 A (L293D 600 mA) in za napetosti od 4,5 V do 36 V. Vsi vhodi so združljivi s TTL signali. Za zaščito ima L293 vgrajene hitre diode, ki ščitijo integrirano vezje pred napetostnimi konicami, ki nastanejo pri vklopu in izklopu motorčka (predvsem pri izklopu). Če se L293 segreje čez mejo 70°C, vgrajeni senzorji ustavijo delovanje motorčka.

Slika 1: Priključitev DC motorčka na L293 (vir: Texas Instruments).

DC motorček bomo priključili na pina 3 in 6, krmilili pa ga bomo s pini 1, 2 in 7. Na pin 8 (Vcc2) priključimo napetost, ki jo potrebuje DC motorček za delovanje, na pin 16 (Vcc1) pa napetost za gonilnik L293, ki znaša 5 V.

Pina 1 in 9 sta enable pina. Povezana morata biti na +5 V (logična 1), če želimo da se bosta motorčka vrtela. Ker imamo mi priključen le en motorček, priključen na levo stran, poglejmo način krmiljenja motorčka:

DC motorček bomo krmilili tako, da bomo s spreminjanjem logičnih stanj na pinih 2 in 7 gonilnika L293 spreminjali smer vrtenja DC motorčka, na pin 1 (enable) pa bomo priključili PWM signal frekvence 50 Hz. Hitrost vrtenja DC motorčka bomo spreminjali s spreminjanjem duty cycle PWM signala.

 

Poglejmo programsko kodo izdelano v Blok diagramu in vmesnik na Čelni plošči:

Slika 2: Krmiljenje DC motorčka, Blok diagram.

Slika 3: Krmiljenje DC motorčka, Čelna plošča.

V levem okvirju sekvence Flat določimo pine na konektorju C modula myRIO, ki jih bomo uporabili za krmiljenje DC motorčka.

V drugem okvirju sekvence Flat je nameščena zanka While, ki se izvaja, dokler ne pritisnemo na gumb stop. Za krmiljenje smeri vrtenja DC motorčka izberemo na Čelni plošči gumba (Controls > Boolean > Vertical Slide Switch). Stanje gumbov (izklop => logična 0, vklop => logična 1) se zapisuje na izbrana pina 11 (DIO0) in 12 (DIO1) modula myRIO. Ker imamo izbrana dva pina (dva podatka o stanju gumbov), moramo za zapis stanj v Write.vi zgraditi polje podatkov, uporabiti funkcijo Build Array (Functions > Programming > Array > Build Array). Vrstni red elementov funkcije Build Array ustreza vrstnemu redu izbranih pinov modula myRIO. V našem primeru torej gumb Vrtenje levo pošilja podatke pinu 11 (DIO0), gumb Vrtenje desno pa pošilja podatke pinu 12 (DIO1). Na Čelni plošči imamo nameščeni dve simulacijski LED diodi, imenovani V levo smer in V desno smer. Prikazujeta smer vrtenja DC motorčka. Če sta oba gumba za določanje smeri vrtenja DC motorčka v enakem položaju (oba vklopljena ali oba izklopljena), se DC motorček ne vrti. Tudi simulacijski LED diodi v tem primeru ne smeta svetiti. V ta namen smo uporabili strukturo Case. V kolikor je stanje obeh gumbov enako, se izvede okvir True zunanje strukture Case, v katerem obe simulacijski LED diodi izklopimo:

Slika 4: Okvir True zunanjega okvirja strukture Case.

V kolikor pa gumba za določanje smeri vrtenja DC motorčka nista v enakem položaju, se vrti DC motorček v levo oziroma v desno smer. Takrat se izvede okvir False zunanjega okvirja strukture Case. Ta vsebuje novo, drugo strukturo Case ki je namenjena temu, da vklopi simulacijsko LED diodo z imenom V levo smer takrat, ko se DC motorček vrti v levo smer in da vklopi simulacijsko LED diodo z imenom V desno smer takrat, ko se DC motorček vrti v desno smer.

Slika 5: Okvir True notranjega okvirja strukture Case.

Na Čelni plošči smo dodali dva znakovna indikatorja (Controls > Modern > String & Path > String Indicator). Posamezni znakovni indikator (Vrtenje v smeri urinega kazalca oziroma Vrtenje proti smeri urinega kazalca) prikaže ustrezen napis le v primeru vrtenja DC motorčka v levo oziroma v desno smer. Posameznemu znakovnemu indikatorju smo kreirali Property Node Visible (desni klik na znakovni indikator > Create > Property Node > Visible), mu v priročnem meniju izbrali Change All to Write in ga povezali z ustrezno simulacijsko LED diodo.

Funkcijskemu bloku Set Duty Cycle and Frequency.vi s kontrolo Frequency [Hz] določamo frekvenco, s kontrolo Duty Cycle (%) pa frekvenco PWM signala. Skalo kontrole smo določili od vrednosti 10 do 100. Ker lahko na vhod Duty Cycle bloka Set Duty Cycle and Frequency.vi pripeljemo vrednosti od 0 do največ 1, v Blok diagramu vrednost kontrole Duty Cycle (%) delimo s 100. Za prikaz PWM signala na grafu smo uporabili virtualni instrument Simulate Signal, ki ga najdemo na paleti Functions > Express > Input > Simulate Signal. V njegovem priročnem meniju izberemo:

Ko s pritiskom na gumb Stop ustavimo izvajanje zanke While, z virtualnim instrumentom Close.vi onemogočimo generiranje PWM signala na izbranem kanalu (PWM0, pin 14 konektorja C), frekvenca in duty cycle pa se resetirata na vrednost 0.

Ravno tako z virtualnim instrumentom Close.vi postavimo vse izhodne digitalne pine na nizki nivo ter onemogočimo delovanje vseh izbranih izhodnih pinov.

V tretjem okvirju sekvence Flat izklopimo simulacijske LED diode, skrijemo prikazane napise znakovnih indikatorjev ter izklopimo oba gumba, s katerima izbiramo smer vrtenja DC motorčka. S tem na pina C/DIO0 in C/DIO1 modula myRIO pošljemo logično 0 (0 V), da se vrtenje DC motorčka v vsakem primeru ustavi.

V četrtem okvrju sekvence Flat resetiramo modul myRIO.

Krmiljenje DC motorčka z modulom myRIO prek WiFi povezave:

Modul myRIO najprej priključimo na napetostno napajanje, nato pa ga prek USB vrat povežemo z računalnikom. Nato zaženemo NI MAX:

Okolje zazna naprave National Instruments, ki jih imamo priključene na računalnik. Razširimo Remote Systems in kliknemo na NI-myRIO:

V spodnjem delu okna izberemo jeziček Network Settings. Pod Wireless Adapter wlan0 nastavimo:

Wireless Mode => Create wireless network

Country => Slovenia

SSID => ime, na primer myRIO

Channel => 1

Security => Open, če želimo imeti omrežje nezavarovano oziroma WPA2 Personal, če želimo omrežje zavarovati z geslom.

Configure IPv4 Address => DHCP Only

Izbrane nastavitve shranimo s pritiskom na Save.

Nato v okolju LabVIEW myRIO kreiramo projekt. Projekt imenujemo in ga shranimo v mapo. V projekt vključimo myRIO in vzpostavimo povezavo z omrežjem, kot je to prikazano na spodnjem video posnetku.