O laboratoriju
Osebje
Objave
Raziskave
Pravila
Predmeti/ vaje
Izpitni roki
Rezultati
Naloge
Informacije
Real-time Systems Laboratory

Vaje - MikroraÄŤunalniki,
RI UNI/3 (2008)

New Page 1

Gradivo za vaje

Tehnična dokumentacija za PIC
Prosojnice iz predavanj o PIC-u
Navodila za razvojno orodje MPLAB

testni program.


Dokumentacija za temperaturni senzor KTY: (a), (b), (c)
Dokumentacija modula za krmiljenje enosmernih motorčkov.

Splošna navodila

Praktični del predmeta Mikroračunalniki se izvaja z izdelavo praktičnih vaj. Del vsake naloge je tudi ustrezna priprava s katero naredite analizo in razgradnjo rešitve problema v obliki psevdokode, diagrama poteka, grobe strukture programa in podobnim. Del priprave je tudi podrobnejši opis vhodno/izhodnih vmesnikov in njihovih registrov, ki ste jih pri nalogi uporabili. Pripravo na nalogo naredite doma in jo prinesete s seboj na vaje.  Brez priprave udeležba na vajah ni možna!

Glede na zahtevnost in obseg dela, so naloge ovrednotene z določenim številom točk. Vsaka naloga ima določene osnovne točke, pri nekaterih naloga pa lahko, z dodatnim delo, pridobite še dodatne točke. V okviru zagovorjenih vaj lahko zberete največ 100 točk. Točke pri vajah predstavljajo 40% končne ocene predmeta.

Koliko točk boste dobili pri posamezni nalogi, je odvisno od kakovosti izdelanih priprav na vaje in zagovora vaj. Da se vam neka naloga prizna za zagovorjeno, morate pokazati znanje za vsaj polovico osnovnih točk naloge. Vsako nalogo lahko zagovarjate samo enkrat. Zagovor nalog poteka tako, da na začetku termina vaj, v katerem bi radi zagovarjali vaje, asistentu oddate pripravo. V enem terminu lahko zagovarjate največ dve nalogi.

Za pridobitev možnosti pristopa k izpitu je potrebno uspešno opraviti naloge za vsaj 50 točk.

Za izdelavo priprave uporabite naslednji Obrazec.

Razlago in idejo rešitve prvih štirih nalog bomo podali na avditornih vajah med predavanji. Prve štiri naloge je možno zagovarjati samo do konca letnega semestra.

Rezultati opravljenih vaj

Besedila vaj

1.      Tipke in lučke (8 točk)
Na PIC priključite 8 svetlečih diod in dve tipki. Diode naj svetijo v skladu z nekim binarnim številom. Vsakokrat ko pritisnemo prvo tipko naj se binarna kombinacija poveča za ena, vsakokrat ko pritisnemo drugo tipko pa naj se za ena zmanjša. Program naj ne bo odvisen od tega kako dolgo držimo posamezno tipko. Na začetku naj bodo vse svetleče diode ugasnjene.

2.      Serijski vmesnik (10 ali 16 točk)
Izdelajte program, ki bo omogočal sprejem in oddajo znakov po standardu za serijski vmesnik (RS232). Program naj čaka na poslani znak iz PC-ja in ga ponovno pošlje nazaj pri čemer male črke spremeni v velike in velike v male. Za parametre prenosa uporabite: 8 bitni podatki, brez paritete ter hitrost prenosa 19200 bitov/sekundo. Dodatne točke lahko dobite, če sprejem in oddajo znakov implementirate s prekinitvami.

3.      Analogno/digitalni pretvornik (10 ali 14 točk)
Izdelajte program, ki bo omogočal sprotno merjenje analogne napetosti in njen prikaz po principu "VU metra". Velikost vhodnega signala je v razponu od 0 do 5V. Glede na nivo napetosti se prižge ustrezno število lučk. Dodatne točke lahko dobite, če branje A/D pretvornika implementirate s prekinitvami.

4.      Tipkovnica in 7 segmentni LED prikazovalnik (15 točk)
Izdelajte program s katerim boste povezali enostavno tipkovnico in 7 segmentni LED prikazovalnik. Program naj v zanki zazna katera tipka na tipkovnici je pritisnjena, jo dekodira in prikaže na LED prikazovalniku. Upošteva naj tipke s številkami in tipko "C", ki prikazovalnik zbriše.

5.      Senzorji (10 točk)
Izdelajte program, ki bo s pomočjo senzorjev štel število oseb v nekem prostoru. Prostor ima ločen vhod in izhod. Na vsakem od njiju je nameščen senzor, ki zazna prehod osebe. Program naj spremlja število trenutno prisotnih oseb v prostoru in trenutno stanje izpisuje preko serijskega vmesnika. Število oseb v prostoru je lahko med 0 in 99.

6.      Generator signalov (12 točk)
Izdelajte program, ki bo omogočil generiranje različnih periodičnih analognih signalov (sinus, trikotnik, pravokotni signal, ...). Program naj preko tipk ali serijskega vmesnika sprejema navodila za obliko in frekvenco signala (vsaj dve frekvenci) in ga nato reproducira s pomočjo digitalno/analognega pretvornika. Ukaz ima lahko na primer obliko 'T1' - trikotni signal, prva frekvenca.

7.      Merilnik temperature (15, 20 ali 25 točk)
Izdelajte program, ki bo omogočil merjenje temperature v prostoru. Na analogno/digitalni pretvornik je priključen temperaturni senzor, ki glede na temperaturo generira ustrezno napetost. Program naj periodično (vsako sekundo) odčita trenutno temperaturo in jo izpiše preko serijske zanke na zaslon. Temperaturo izpisujte na eno decimalko natančno.
Za dodatne točke dopolnite program tako, da bo znal regulirati temperaturo v prostoru. Če temperatura preseže vnaprej nastavljeno vrednost, se vklopi ventilator, če pa pade pod določeno vrednost pa grelec.
Za nadaljnje točke podprite vnos želene temperature preko serijskega vmesnika (tokrat brez decimalk).

8.      Obdelava signalov (12 ali 15 točk)
Izdelajte program, ki bo omogočil enostavno obdelavo analognih signalov. Program naj sprejema vrednost vhodnega signala iz A/D pretvornika, jih obdela (npr. ojača, oslabi, limitira ipd.) in pošilja naprej D/A pretvorniku. Vrsto obdelave signalov izbirajte preko tipk.
Za dodatne točke implementirajte program, ki bo izvedel zakasnitev vhodnega signala (za vsaj 128 vzorcev).

9.      Sledilec svetlobnega vira (15 točk)
Izdelajte napravo, ki se bo obračal proti najmočnejšemu viru svetlobe. Na navpično os montirajte dva svetlobna senzorja zamaknjena za določen kot. Os povežite na motorček preko reduktorja. Motorček naj os obrača tako, da se bosta svetlobna senzorja usmerila proti najmočnejšemu viru svetlobe. Na os je nameščeno stikalo, ki pove kdaj se nahaja v končnem položaju.

10.  LCD prikazovalnik (35 točk)
Izdelajte program, ki bo preko serijske zanke sprejemal znake in jih prikazoval na LCD prikazovalniku. Komunikacija s prikazovalnikom poteka preko standardnega protokola za LCD prikazovalnike, ki ga morate preučiti. Upoštevani naj bodo tudi posebni znaki kot so npr. brisanje zaslona, pomik kazalca na začetek vrstice ipd.

11.  Semaforji (20 točk)
Izdelajte program, ki bo simuliral delovanje semaforjev v križišču glavne ceste s stransko. Na prehodih za pešce se nahaja gumb za prečkanje. Na stranski cesti je nameščena magnetna zanka, ki zazna prihod avtomobila. Dokler kateri od pešcev ne pritisne na gumb oz. dokler na stranski cesti ni nobenega vozila, so prižgane zelene luč na glavni cesti. Predvidite tudi možnost za preklop na nočni režim (rumene utripajoče luči).

12.  Štoparica (18 točk)
Izdelajte program za štoparico. Štoparica naj ima gumb(e) za začetek in konec štetja in gumb za vmesni čas. Vsakokrat, ko se pritisne gumb za vmesni čas, oz. ko se merjenje ustavi, se trenutni čas preko serijskega vmesnika prenese na PC. Program izdelajte tako, da izmerjeni čas ne bo odvisen od časa potrebnega za izpis oz. od časa kako dolgo držimo posamezno tipko.

13.  Ura z alarmom (18 ali 25 točk)
Izdelajte program za uro z alarmom. Ura ima dva gumba: začasen preklic alarma in preklic alarma. Ura naj vsakih nekaj sekund preko serijske zanke izpiše trenutni čas na minuto natančno. Ko ura doseže določen čas naj se sproži alarm in traja 15 sekund. Če uporabnik pritisne tipko za začasno prekinitev alarma, se bo alarm ponovno sprožil čez eno minuto. Če uporabnik pritisne na gumb za prekinitev alarma, se alarm sproži šele naslednji dan.
Za dodatno točko omogočiti nastavitev trenutnega časa in časa alarma preko serijskega vmesnika.

14.  Električna zapornica (30 ali 38 točk)
Izdelajte program za krmiljenje električne zapornice na parkirišču. Ob vstopu na parkirišče voznik pritisne gumb, da dobi listek. Ob izstopu pa mora plačani listek vstaviti v čitalec. Oboje simulirajte s tipkami. Zapornica ima še stikali, ki povesta kdaj je zapornica v vodoravnem oz. navpičnem položaju, dva svetlobna senzorja na prihodni in odhodni strani, ter senzor pritiska, ki zazna, če je zapornica zadela ob oviro. Vgradite vse varnostne mehanizme, ki bodo preprečili, da ne bo prišlo do poškodb na avtomobilu ali pešcih.
Za dodatne točke izvedite nadzor nad zasedenostjo parkirišča. V ta namen je na razpolago semafor. Če število vozil na parkirišču preseže določeno vrednost, mora biti vstop novim vozilom onemogočen. Podrobnejša navodila o modelu zapornice najdete v Zapornica.

15.  Pralni stroj (30 točk)
Preučite delovanje pravega pralnega stroja in zgradbo modela ter izdelajte program za njegovo krmiljenje. Upoštevajte različne pralne programe. Ustrezno simulirajte črpanje vode, segrevanje vode ipd. Za popestritev naloge uporabite zvočne efekte, ki jih ima model na razpolago. Podrobnejša navodila o modelu pralnega stroja najdete v Model pralnega stroja.

16.  Meritev in nastavljanje hitrosti vrtenja motorja (30 točk)
Na razpolago imamo enosmerni motor, ki preko jermena poganja disk. Hitrost in smer vrtenja diska nadzorujemo s pomočjo dajalnika impulzov. Izdelajte program v katerem boste, s pomočjo potenciometra, krmilili smer in hitrost obračanja motorja (diska). Ko je potenciometer v sredinskem položaju, naj motor stoji. Ob premiku v levo oz. desno pa se motor začne vrteti levo oz. desno s hitrostjo, ki je odvisna od velikosti zasuka. Za prikaz smeri in hitrosti vrtenja uporabite tudi svetleče diode, ki so na razpolago v modelu. Podrobnejša navodila o modelu najdete v Model motorja z merjenjem hitrosti.

17.  Robot želva (20 ali 30 točk)
Preučite možnosti priključitve robota želve na PIC in izdelajte program za njegovo krmiljenje. Robot ima dve pogonski kolesi z ločenima motorjema. Na želvo se lahko namestita dva svetlobna senzorja. Izdelajte program, ki bo omogočal izvajanje osnovnih ukazov (naprej, nazaj, levo, desno, stop), ki jih boste vnesli preko tipkovnice. Za dodatne točke izdelajte posebni režim delovanja v katerem se bo robot avtomatsko gibal proti najmočnejšemu viru svetlobe.

18.  PC tipkovnica (40 točk)
Preučite možnosti priključitve tipkovnice na PIC in izdelajte testni program s katerim boste znake odtipkane na tipkovnici pošiljali preko serijskega vmesnika na terminal. Tipkovnica uporablja prirejen serijski vmesnik. Vsaka tipka generira neko kodo, ki jo je potrebno preslikati v ustrezno ASCII vrednost. Določene tipke lahko generirajo tudi več zaporednih kod.

19.  Miška (40 točk)
Preučite možnosti priključitve miške na PIC. Izdelajte testni program s katerim boste spremembe pri premiku miške vizualno predstavili na terminalu s pomikanjem kurzorja, s pritiskom na miškin gumb pa naj se izpiše nek znak. Za postavitev kurzorja uporabite ubežne sekvence za terminal po standardu VT100.

20.  Igralna palica (30 točk)
Preučite možnosti priključitve igralne palice na PIC. Izdelajte testni program s katerim boste spremembe pri premiku položaja igralne palice vizualno predstavili na terminalu s pomikanjem kurzorja, s pritiskom na  gumb pa naj se izpiše nek znak. Za postavitev kurzorja uporabite ubežne sekvence za terminal po standardu VT100.

21.  Kalkulator (30 točk)
Preučite možnosti priključitve izvedbe kompleksnejših računskih operacij s pomočjo PIC-a in izdelajte preprost "kalkulator". Omogočite izvedbo VSAJ osnovnih računskih operacij (seštevanje, odštevanje, množenje in celoštevilčno deljenje) s 16 bitnimi celimi števili. Vnos števil in operacij naj poteka preko serijskega vmesnika ali preko tipkovnice iz 4. naloge. Preko serijskega vmesnika se vnese prvo število, operacija in drugo število. Ob pritisku na enter pa se nam izpiše ustrezen rezultat. Če je rezultat operacije negativna vrednost, naj se le-ta tudi ustrezno izpiše (s predznakom).

Povezave

Vsebina predmeta
Rezultati izpitov Rezultati vaj

Na vrh | Prva stran | O laboratoriju | Osebje | Inštitut za informatiko | E-pošta

 

RTS UM Inštitut za informatiko FERI FERI