You are on page 1of 10

Upravljanje step motorima

Aleksandar Peuli

Upravljaki raunarski sistemi

SADRZAJ
ZADATAK....................................................................................................................................................................3
1.1 Zadatak............................................................................................................................................................3
Odabir platforme i komponenti za realizaciju...........................................................................................................3
1.2 Hardverske komponente.................................................................................................................................3
1.3 SOFTVER..........................................................................................................................................................3
1.3.1 Firmver.....................................................................................................................................................3
1.3.2 Upravljaka aplikacija...............................................................................................................................4
DIZAJN i implementacija............................................................................................................................................4
1.4 Hardver............................................................................................................................................................4
1.5 Firmver............................................................................................................................................................6
1.6 Upravljaka aplikacija......................................................................................................................................7
1.7 Pokretanje pod linux operativnim sistemom..................................................................................................8
IZRADA.......................................................................................................................................................................9

Page | 2

Upravljaki raunarski sistemi

ZADATAK
1.1

ZADATAK

Potrebno je realizovati upravljanje sa dva step motora mikrokontrolerom famijije Microchip. Neophodno je
obezbediti mogunost zadavanja smera okretanja, nezavisno na oba motora, kao i broj koraka u zadatom
smeru.

ODABIR PLATFORME I KOMPONENTI ZA REALIZACIJU


1.2

HARDVERSKE KOMPONENTE

Za realizaciju e se koristiti Microchip 18F2550 mikrokontroler zbog mogunosti povezivanja putem USB
prikljuka. Broj IO linija zadovoljava potrebe aplikacije , dodatnu prednost predstavlja dostupnost.
Upotrebljeni su motori iz 3.5 floppy disk drajva. Re je o bipolarnim step motorima. Deklarisani su za napon od
5V. Broj koraka za pun krug iznosi 20.Slika 1 prikazje jedan takav motor.

Slika 1

Kako je u pitanju bipolarni motor, neophodno je obezbediti H-bridge za aktiviranje namotaja. Za tu svrhu se
koristi Texas Instruments L293D kolo.

1.3

SOFTVER

1.3.1 FIRMVER
Prvu celinu predstavlja firmver koji obezbeuje sledeu funkcionalnost:

USB vezu ka PC-ju korienjem CDC (Comunications Device Class) modela

Interpretaciju komandi (protokola) za upravljanje

Kontrolu dva nezavisna step motora

Za razvoj i programiranje firmvera koristimo sledee softverske komponente:

Page | 3

Microchip USB stack

Upravljaki raunarski sistemi

Microchip MPLABX okruenje sa kojim dolazi student edition C18 kompajler

Microchip USB stack je besplatan i moe se preuzeti sa Microchip web sajta.


http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en537044
Isto vai i za MPLABX okruenje.
http://www.microchip.com/stellent/idcplg?
IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002

1.3.2 UPRAVLJAKA APLIKACIJA


Drugu celinu predstavlja PC softver koji obezbeuje sledeu funkcionalnost:

Otvaranje i zatvaranje konekcije ka MCU

Free RUN mod zadatom brzinom u zadatom smeru za oba motora nezavisno

Step RUN mod zatatom brzinom u zadatom smeru za oba motora nezavisno

Set angle mod zadatom brzinom u zadatom smeru za oba motora nezavisno

Template 1 mod koji obezbeuje okretanje po unapred definisanom ablonu

Template 2 mod koji obezbeuje okretanje po unapred definisanom ablonu

Aplikacija je realizovana u C# express eddition koji se moe besplatno preuzeti sa Microsoft sajta.

DIZAJN I IMPLEMENTACIJA
1.4

HARDVER

Slika 2 prikazuje ploicu za upravljanje. Slika 3 prikazuje emu.

Slika 2

Page | 4

Upravljaki raunarski sistemi

Slika 3

Napajanje za mikrokontroler se obezbeuje sa USB porta dok se napajanje za motore obezbedjuje nezavisno sa
konektora P1. Slika 4 prikazuje upotrebljene komponente.

Slika 4

Za dizajn plice i generisanje izvetaja koriena je licencirana verzija Altium Designer 2010, a moze se koristiti
bilo koji alat za dizajn plocica.
Page | 5

Upravljaki raunarski sistemi

1.5

FIRMVER

Firmver je realizovan korienjem MPLABX razvojnog okruenja i ICD3 debuuger-a - Slika 5.

Slika 5

Firmver ukljuuje Microchip USB stek. Program se vrti u main petlji odnosno funkciji ProcessIO, koja obrauje
stanja sistema, zahteve za pokretenjem motora i USB zahteve.
Brzina motora se odreuje u interapt rutini tajmera 1. Vremenska osnova interapta iznosi 10ms, pa se na
osnovu tog intervala i zadate brzine izraunava da li je motoru dozvoljeno da napravi sledei korak ili ne. Na
ovaj nain je obezbeeno da ProcessIO funkcija nesmetano obrauje sve ostale zahteve a u sluaju potrebe
pozove funkciju sa novi korak motora u zadatom smeru, recimo funkciju Motor1StepCW.
CDC mod rada USB steka obezbeuje da se ureaj PC raunaru predstavlja kao USB serial port. Za potrebe
realizacije upravljanja upotrebljen je jednostavan protokol kojim se od strane PC-ja alju komande za
upravljanje motorom:
SET(M1_SPEED,value)
SET(M2_SPEED,value)
SET(M1_DIRCW,value)
SET(M2_DIRCW,value)
SET(M1_ANGLE,value)
SET(M2_ANGLE,value)
SET(M1STEPNR,value)
SET(M2STEPNR,value)
Poruke se obrauju na strani mikrokontrolera i na osnovu value vrednosti se zadaju parametri upravljanja.
Parser odgovara na svaku primljenu poruku u obliku INFO(M1_SPEED,value), primera radi, kao potvrdu na to da
je dobio zahtev.
Parametri serijske komunikacije su 9600,N,1 pa je mogue testirati firmver iz bilo kog terminala. Za Linux nisu
potrebni drajveri i sistem prijavljuje ureaj kao ttyACMx dok za Windows uz USB stek dolazi inf fajl koji instalira
serial.sys drajver koji ve postoji na Windows sistemima.
Page | 6

Upravljaki raunarski sistemi

1.6

UPRAVLJAKA APLIKACIJA

Za izradu aplikacije za upravljanje korien je C#. Aplikacija se sastoji iz dva osnovna modula.
Prvi je USB handler koji implementira Serial Port kontrolu koja dolazi uz .NET. USBhandler obezbeuje jednu
jednostavnu metodu za slanje string poruke na serijski port. Sa druge stane od serijskog porta je obezbeen
event koji se deava u situaciji da regularno terminirana poruka bude poslata od strane mikrokontrolera.
Drugi modul predstavlja jednostavnu win form aplikaciju koja referencira USBhandler projekat i koja alje
poruke po definisanom protokolu u zavisnosti od aktiviranog dugmeta i odabrane opcije.
Primer slanja poruke ka mikrokontroleru svodi se na trivijalan poziv SendCommand metode USB handler-a. U
sluaju nae aplikacije Communicator predstavlja objekat USBhandler klase i poziv izgleda ovako:
Communicator.SendCommand("SET(M2_SPEED," + comboBoxM2Speed.Text + ")\r\n");
Slika 6 prkazuje dizajn forme i reference i strukturu projekta.

Slika 6

Communicator.MessageReceivedEvent +=
newUSBHandler.MessageReceivedDelegate(Communicator_MessageReceivedEvent);

Dodavanjem prethodne linije obezbeujemo da se forma pretplati na odgovore od USBhanler-a i da se isti


prosleuju u Communicator_MessageReceivedEvent metod. Na ovaj nain se osveava stanje
label-a koji nas obavetava da li je ureaj povezan sa aplikacijom ili ne.

Za startovanje aplikacije potrebno je pokrenuti fajl StepControl.exe koji se nalazi u \StepControl\bin\Debug


folderu.
Pre pokretanja aplikacije neophodno je instalirati .NET 4.0 ukoliko ne ve ne postoji na raunaru na kom se
aplikacija pokree. .NET 4.0 se moe preuzeti sa sledee
lokacije:http://www.microsoft.com/download/en/details.aspx?id=17851

Page | 7

Upravljaki raunarski sistemi

1.7

POKRETANJE POD LINUX OPERATIVNIM SISTEMOM

Za pokretanje pod linuxom potrebno je otvoriti vezu ka ttyACMO portu sa parametrima komunikacije 9600,N,1.
Ukoliko se koristi PuTTY terminal potrebna su sledea podeavanja:

Slika 7

Slika 8

Slika 9

Potrebno je podesiti Local Line editing iz razloga to firmver proverava itavu poruku a ne karakter po karakter.
Kontroler odgovara na SET poruku INFO porukom, UNRECOGNIZED COMMAND se javlja kao posledica toga to
se INFO poruka ponovo vraa nazad kontoleru iz terminala i u sluaju da se dobije regularna INFO poruka na
zadatu SET poruku UNRECOGNIZED COMMAND se moe ignorisati.
Page | 8

Upravljaki raunarski sistemi

IZRADA
Izrada hardvera je obavljena amaterskom izradom tampane ploice, korienjem toner transfer metode. Iako
je u pitanju amaterksa metoda za manje sloene ploice daje sasvim zadovoljavajue rezultate Slika 10

Slika 10

Za sastavljanje ploice neophodno je obezbediti sve neophodne elektronske komponente, lemilicu sa


regulacijom temperature, flux, tinol, seice i pincetu za lemljenje SMD komponenti Slika 11.

Slika 11

Page | 9

Upravljaki raunarski sistemi


Slika 12 prikazuje zavrenu ploicu.

Slika 12

Slika 13 prikazuje ploicu sa povezanim motorima i ICD3 debuger-om.

Slika 13

Page | 10

You might also like