Mikrokontroleri Ricci M Projekt mbed

Projekt sostoji se od jedan Mbed LPC1768 board element, tri elementa za 7 segmenata LED-display, zajednički anodo, trimmer od 0 do 10KOhm i jedan piezo buzzer i dva tipka SELECT i ENTER. Sve to skupa je posizionirao na breadboard.

Cilj od ovaj projekt je koristiti funkcije od mbed RTOS što smo učili na predavanje i napraviti neka aplikacija kao primijer. Ja sam se fokusirao na state machine koja napravi formatirani menu u LCD display. Taj mehanizam s izbornicima menu je dosta čvrsti i radi na dvije razine: preko horizontalni (u dubini funkcije) i vertikalni (izbor menu), jedan put kada je ovo implementirao, vrlo lagano je dodati funkcije i menu koliko god se želi.

/media/uploads/marcoricci/untitled.jpg

Ovo dio kod se vrti stalno u mainloop, svakih 200 ms ažurira se. Kako se vidi ima jedan INIT state gdje se može implementirati neki initHW za moduli (npr ako imamo modem itd) za koji je potreban određena inicijalizacija i neko posebno vrijeme. Nakon INIT, state machine radi samo između određeni menu, jako je lako dodati jos menu, to se samo javi kao nova macro u switch-case naredba.

/media/uploads/marcoricci/machine.jpg

/media/uploads/marcoricci/level.jpg

npr kada se javi funkcija Menu1(), će se selektirati dubina u menu.

/media/uploads/marcoricci/menu.jpg

U Menu1 u prvi nivo, varijabla Level, nam prikaza samo ime Menu koji će biti vizualizirano, Seg1, Seg2, Seg3 prikazaju red od 7 segmenti, tablice su definirane u memoria.h : kada je 0 onda segment je upalijeno a kada je 1 nije upaljeno (pinovi mikrokontroler su u pull-up).

/media/uploads/marcoricci/f01.jpg

A drugi nivo radi funkcija koja će mjeriti napon i prikaza u real time vrijednosti od 0 do 3,3Volt. Ako jos idemo u dubini, treći nivo, i stistnemo jos jedanput Enter, onda ćemo se vratiti u prvi menu i možemo onda sa tipkom SEL ići dalje kod ostali menu. /media/uploads/marcoricci/voltmet.jpg

druge dodatne funkcije su u Menu2 i Menu3.

U Menu2 imamo :

/media/uploads/marcoricci/f02.jpg /media/uploads/marcoricci/cup.jpg

to je timer koji će inkrementirati vrijeme svako sekundo i u istovrijeme svoni s jednom kratki zvuk. Početna vrijednost ćebiti 000 i na dalje do 999. Ovo treba za mjeriti sekundi, znaći kada želimo prekidati stistnemo OK i vrijeme zaustavi, još jedanput OK i se vraćamo u prvi Level Menu.

/media/uploads/marcoricci/cupnum.jpg

U Menu3 imamo:

/media/uploads/marcoricci/f03.jpg

to je jedan timer koji će dekrementirati vrijeme svako sekundo i u istovrijeme svoni s jednom kratki zvuk (kao timer bombi što se vidi često na televiziji). /media/uploads/marcoricci/clo.jpg

Početna vrijednost će se selectirati preko menu sa strelicom SELECT i onda OK, nakon da smo dali OK, timer krene i zaustavi se u 000, i taj trenutak će pisati End i zvoni za neko sekundo. /media/uploads/marcoricci/end.jpg

Tipke koriste posebni interrupt i debounce timeri, stvore razlićiti zvuk frekvencije za SELECT i OK. Vizualizacija poruke na 7 Seg display je svaki 200 millisekundi tako da ne upalino stalno LED-ovi, ovaj trik ne ometa vidljivost oćiju. Električni shema:

/media/uploads/marcoricci/schema.png

Potencijalno, ovo projekt može se ekspandirati, lagano je dodati nove funkcije, npr mjereti senzori i pretvoriti u svoj vizualnoj skali, napraviti digitalno upravljenje za rele; kažem lagano, jer najjači dio je state-machine kojia može bilo koji tip SCADA sustav podržavati i bilo koji dodatna komunikacijska tehnologija: svaka nova funkcija će se dodati samo kao novi menu, i onda u dubini po želi, ovisi što se traži.


All wikipages