2 dizajn softverskog sistema
2.1μC / OS-II arhitektura
μC / OS-II je prenosivi, implantabilni ROM, operativni kernel koji se može prevariti u realnom vremenu, sa visokom efikasnošću izvršenja, malim otiskom, dobrim performansama u realnom vremenu i skalabilnošću. Karakteristike, najmanji kernel se može kompajlirati na 2KB. μC / OS-II je napisan na C jeziku i na asemblerskom jeziku. Većina koda je napisana u C. Samo nekoliko kodova koji su blisko povezani sa procesorom napisani su na asemblerskom jeziku. μC / OS-II uključuje samo osnovne funkcije kao što su raspoređivanje zadataka, upravljanje zadacima, upravljanje vremenom, upravljanje memorijom, komunikacija između zadataka i sinkronizacija.
Dodjeljivanje zadataka prema 2.2μC / OS-II sistemu
Nakon uspješnog prijenosa sistema μC / OS-II na STM32F107, programiranje na bazi μC / OS-II vrši se dijeljenjem velike aplikacije na relativno nezavisne zadatke. Definiran je prioritet svakog zadatka i μC / OS-II kernel raspoređuje i upravlja tim zadacima.
Ideja dizajna softvera je dati brzinu motora i položaj upravljača prijenosnika upravljača kroz serijski port u skladu sa stvarnim radom robota. Brzina motora se uspoređuje sa zadanom vrijednošću inkrementalnog davača, a upravljanje zatvorenom petljom provodi se PID algoritmom brzine. Položaj upravljačkog mehanizma je uglavnom u tome što enkoder apsolutne vrijednosti vraća trenutni položaj, a brzina upravljačkog prijenosnika se podešava u skladu sa zahtjevom vremena djelovanja. Funkcije koje treba da se realiziraju pomoću softvera za upravljanje motorom ovog robota za rukovanje su:
Machine Gornja mašina daje brzinu motora, ugao upravljanja i vrijeme djelovanja;
Continuous Potrebno je kontinuirano podešavanje brzine motora i dobrih statičkih i dinamičkih performansi. Brzina se ne broji pomoću PI algoritma.
◆ Zahteva da upravljački mehanizam brzo dostigne određeni ugao, a povratna sprega položaja se koristi kao podešavanje date brzine upravljačkog prenosnika;
A Ima određenu funkciju zaštite od kvara. Kada je motor blokiran, struja je prevelika, a upravljački mehanizam dodiruje krajnji prekidač, potrebno je zaustaviti pogonski modul.
Da bi se gore navedene funkcije implementirale, dizajn aplikacije se može podijeliti na sljedeće zadatke:
1 Pokrenite zadatak. Inicijalizirajte sistem, kreirajte početno stanje motora, zatim obrišite sebe i pokrenite zadatak za spavanje.
2 zadaci zaštite motora i upravljačkog uređaja. Koristi se za odgovor na vanjski prekid kada se aktivira prekostrujni ili krajnji prekidač. Kada se unese status prekida, šalje se semafor zadatka. Program zadataka otkriva da je semafor ispravan i odgovara na zadatak i zaustavlja izlaz. Prioritet zadatka je postavljen na nivo 0.
3 zadaci koji se odnose na host računara. Koristi se za gornju mašinu za upravljanje motorom i upravljačkom opremom, a prioritet zadatka je postavljen na nivo 1. Kada se generira registar za unos podataka glavnog računala, generira se prekid, koji će poslati primljeni bajt u bafer i oslobodite semafor datog zadatka glavnog računala; kada je semafor otkriven, zadatak će se početi izvršavati i odgovarajući bajt će se izvršiti. Informacije se raščlanjuju u odgovarajuću informaciju o brzini motora i upravljačkom uređaju kako bi se dodijelile vrijednosti odgovarajućim varijablama.
4 zadatak kontrole brzine motora. Za regulaciju brzine motora kod zatvorene petlje, prioritet zadatka je postavljen na nivo 2.
5 zadataka upravljanja upravljačkom opremom. Koristi se za upravljanje upravljačkim mehanizmom za dostizanje specificiranog položaja u zadanom vremenu, a prioritet zadatka je postavljen na razinu 3.
2.3 Pokrenite zadatak
U glavnom programu, prije pozivanja drugih zadataka μC / OS-II, prvo pozovite funkciju inicijalizacije sistema OSInit () da biste inicijalizirali sve varijable i strukture podataka μC / OS-II; u isto vrijeme, uspostaviti idle zadatak OS_TaskIdle (), ovaj zadatak je uvijek u stanju spremnosti; pozvati OSTaskCreate () funkciju da uspostavi početni zadatak; pozovite OSStart (), prenesite kontrolu na μC / OS-II kernel, pokrenite multitasking.
Početni zadatak se kreira u glavnom programu, koji ima tri glavne funkcije:
1 za inicijalizaciju sistema (PWM izlazni modul, serijski port, ADC modul, funkcija prekida ulaznog nivoa, tajmer).
2 Utvrdite količinu signala koju koristi sistem.
3 uspostavljanje drugih zadataka sistema.
Konačno, pozovite OSTaskDel (OS_PRIO_SELF) da se obrišete i pokrenete zadatak za spavanje. Glavni programski zadatak prikazan je na slici 4. \ t
2.4 Zadatak kontrole brzine motora
Svaki put kada inkrementalni enkoder generiše vanjski prekid, semafor zadatka se izdaje u stanju prekida. Program zadataka otkriva da je semafor ispravan i odgovara na zadatak. Zadatak realizuje kontrolu zatvorene petlje merenjem trenutne brzine motora i datog poređenja brzine. Protok zadatka kontrole brzine motora je prikazan na slici 5.
2.5 Zadatak upravljanja upravljačkom opremom
Servo kontrola generiše referentno vreme pomoću tajmera, šalje semafor svakog fiksnog vremena, a zadatak će se izvršiti jednom. Zadatak servo kontrole uspoređuje poziciju izmjerenu s davačem apsolutne vrijednosti sa zadanom pozicijom i podešava brzinu servo uređaja u skladu s preostalim vremenom. Protok zadataka servo kontrole je prikazan na slici 6.
3 elektromehanički interfejs sistema
Upravljački mehanizam robota sastoji se od reduktora od 30: 1 koji je spojen na DC motor. Davač apsolutne pozicije je povezan s prijenosnikom upravljača i šalje kutni signal prijenosnika upravljača na upravljačku ploču pogona. Dva vratila prednjeg kotača robota povezana su prenosnom šipkom. Jedna od osovina je povezana s prijenosnikom upravljača pomoću prijenosnog remena, tako da kada se upravljački mehanizam okreće, prijenosni remen pokreće prijenosni štap kako bi se osiguralo da se dva prednja kotača mogu rotirati sinkrono. Motor pogona na zadnjim točkovima je DC motor, koji je direktno priključen na inkrementalni enkoder. Nakon smanjenja koeficijenta redukcije sa reduktorom od 25: 1, zadnji točak se pokreće mehaničkim diferencijalom. Signali iz inkrementalnog davača se također šalju na upravljačku ploču pogona. Struktura elektromehaničkog sistema je prikazana na slici 7. \ t
Zaključak
U ovom radu je realizovan dizajn opreme za motor i servo upravljač robota za rukovanje. Operativni sistem u realnom vremenu μC / OS-II je uspješno ugrađen u STM32F107, a eksperiment motora i upravljačkog mehanizma zatvorene petlje je završen. Koristeći karakteristike multi-task real-time performansi Cortex-M3 jezgrenog kontrolera i μC / OS-II sistema, on pruža softversku i hardversku osnovu za naknadno snimanje video snimaka robota i navigaciju. Ako je postojeći PI algoritam poboljšan, a brzina motora i trenutna dvostruka kontrola zatvorene petlje mogu biti ostvareni, karakteristike motora robota će biti bolje, a mogućnost primjene robota za rukovanje će biti šira.





