Professional Documents
Culture Documents
Aleksandar Peuli
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
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.
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:
Page | 3
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
Aplikacija je realizovana u C# express eddition koji se moe besplatno preuzeti sa Microsoft sajta.
DIZAJN I IMPLEMENTACIJA
1.4
HARDVER
Slika 2
Page | 4
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
1.5
FIRMVER
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
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);
Page | 7
1.7
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
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
Slika 11
Page | 9
Slika 12
Slika 13
Page | 10