Pred dobrimi desetimi leti sem na Fakulteti za elektrotehniko prevzel predmet Osnove Mikroprocesorske Elektronike (OME) od dragega kolega in pedagoškega mentorja doc. dr. Žarka Gorupa.
Univerza v Ljubljani, Fakulteta za elektrotehniko
Avtor: izr. prof. dr. Marko Jankovec
E-pošta: Marko.Jankovec@fe.uni-lj.si
2021-300-35
Čeprav je bil predmet dobro zasnovan in zasidran v učnem programu 2. letnika visokošolskega študijskega programa Aplikativna Elektrotehnika, je prednostna naloga vsakega mladca, da prinese svežo energijo in ideje v učni načrt, saj sicer ni vreden, da predmet sploh prevzame. Na področju mikrokrmilnikov, kjer se je že takrat razvoj odvijal hitro, vsak učni načrt hitro zastara. Do takrat so namreč študentje pri predmetu mrcvarili PIC16F877 z 8k programskega in 368 bajtov delovnega pomnilnika. Opametnjevali so ga seveda v strojnem jeziku, saj glede na zmogljivosti mikrokrmilnika kaj drugega niti ni bilo primerno. Brez dvoma so pri tem spoznali vse skrite kotičke mikrokrmilnika do obisti in se dobro pripravili na resnejše spopade v industriji, ki pa je, roko na srce, takrat že globoko orala z 32-bitnimi stroji, ki so jim ukazovali v jeziku C. Seveda se je treba zavedati, da je namen predmeta podati osnove študentom, ki so do sedaj spoznavali programiranje bolj v rokavicah in si tukaj prvič umažejo roke z registri in periferijo. Pridobljeno znanje potem seveda v višjih letnikih nadgradijo na naprednejših arhitekturah.
Škarje in platno predmeta sem prevzel v času, ko je bil že močno na pohodu Arduino, katerega glavni adut je bil programerju v čim večji meri zamaskirati mikrokrmilnik v črno škatlo, katere izhode in vhode upravljaš z abstraktnimi funkcijami, razumljivimi vsakemu umetniku z vsaj malo programerske žilice. In priznati je treba, da jim je to tako dobro uspelo, da sem Arduino takoj črtal s seznama. A kljub temu se mi je zdela Atmelova družina AVR zelo primerna za poučevanje osnov mikrokrmilnikov, predvsem iz naslednjih razlogov: enostavno jedro in periferija, ki jo je možno do potankosti obdelati v predvidenem času, brezplačno razvojno okolje z razhroščevalnikom in podatkovni listi obvladljive dolžine. Da tega, da so mi iz Atmela zastonj poslali mikrokrmilnike in razhroščevalnike AVR Dragon niti ne omenjam.
Izzivi pri delu s študenti niso bistveno drugačni tem, ki jih srečujemo pri vseh primerkih vrste Homo Sapiens od najmlajših šolarjev do nas, že skoraj dedkov in babic. Za vse nas namreč velja obče pravilo, da je za dosego cilja potrebna zadostna mera notranje in zunanje motivacije. In to, da je bolje nuditi korenček kot palico, a da včasih brez slednje tudi ne gre. Predvsem čustveni vzvod je tisti, ki dokazano pomaga pri učenju in pomnjenju. Opremljen s psihološkimi orodji sem si zastavil naslednjo strategijo:
vsak študent mora dobiti učni mikrokrmilniški komplet za delo doma. Tako ne bo izgovorov, da ni imel časa ali možnosti učenja in priprave na izpit. In izpit je lahko tudi praktičen, saj je programiranje na list papirja preživeto.
Komplet in okolje morajo biti dostopni brezplačno in omogočati programiranje in razhroščevanje v strojnem jeziku in jeziku C.
Vsak študent naj si na prvi laboratorijski vaji sestavi svoj komplet sam. Tako bo pridobil izkušnje pri spajkanju vezij in preliti znoj ter opečeni prsti bodo povečali sentimentalno vrednost kompleta.
Za izpit ima študent možnost izdelati seminarsko nalogo in če dobi dovolj visoko oceno, lahko komplet obdrži. Tako obdržijo komplet le tisti, ki so ga uporabljali za lastne projekte in si ga dejansko zaslužijo. Ostali opravijo izpit klasično in razvojni komplet s težkim srcem vrnejo.
Zastavljena strategija je pomenila tudi določen finančni vložek laboratorija LPVO, ki ob okrnjenih sredstvih za pedagoško delo ni bil zanemarljiv. A se je izkazal kot zelo upravičen.
In tako je leta 2011 nastal MiŠKo – Mikrokrmilniški Študentski Komplet. O imenu smo dolgo tuhtali, stuhtal pa ga je eno jutro kolega Matija Pirc, ki je pri predmetu vodil vaje in aktivno peljal razvoj MiŠKa. Ime, po eni strani otročje, se je mogoče ravno zaradi tega med študenti prijelo in postalo prepoznavno.
Zgrajen okrog ATmega324PA, z dodanim USB-A konektorjem, USB-UART pretvornikom, nekaj tipkami in svetlečim diodami, dvovrstičnim alfanumeričnim LCD zaslonom in razširitvenimi letvicami je omogočal naučiti tisto osnovno znanje, ki smo ga od študentov pri tem predmetu pričakovali. Namreč, ko se lotiš snovat predmet, se moraš najprej vprašati, kaj so učni cilji predmeta, to je, kaj želiš, da študentje na koncu znajo. In nato sestaviš predavanja, vaje in način izpita tako, da te cilje dosežeš in na koncu tudi preveriš. Za uspešen zaključek predmeta morata tako profesor kot tudi študent opraviti vsak polovico dela. Če svojo polovico opraviš, imaš tudi ob neuspehu študenta na izpitu čisto vest, saj se ve, kdo svojega dela ni opravil.
MiŠKo je zagotovo upravičil svoj namen, saj je omogočal enostavno delo z I/O linijami (tipke in LED), UART komunikacijo prek USB z računalnikom, paralelno komunikacijo z zaslonom in delo s časovniki ter AD pretvornikom. Prva leta smo organizirali mini študentsko ročno proizvodno linijo, kjer smo v laboratoriju postavili delovna mesta po fazah sestavljanja, vsako mesto opremili z navodili in materialom in študentje so tako na lastni koži občutili vso bedo dela za tekočim trakom in dobili še en dober razlog, zakaj se splača študirat.
Kasneje smo se modernizirali in študente delno razbremenili prisilnega dela, ki ga je prevzela SMD polagalka sosednjega Laboratorija za mikroelektroniko. Študentje so tako spoznali tudi sladkosti avtomatizirane proizvodnje. A na koncu jim je še vedno ostalo ročno spajkanje klasičnih elementov, letvic in pa seveda oživljanje, programiranje, testiranje in odpravljanje napak.
Po šestih generacijah MiŠKa je bil že skrajni čas za osvežitev, saj so študentje že nekaj časa na pametnih telefonih brskali po specifikacijah 4-bitne paralelne komunikacije s prehistoričnim Hitachijevim čipom v alfanumeričnem zaslonu. Ravno zaslon pa je bil glavna omejitev pri naboru tematik študentskih projektov, čeprav še sedaj marsikateri MiŠKo pri naših bivših študentih doma meri temperature, krmili ogrevalno črpalko v kurilnici ali izpisuje višino tona pri uglaševanju kitare.
Za novo verzijo MiŠKa smo izbrali grafični barvni zaslon s svetovno znanim krmilnikom ILI9341, ki je v sožitju z rezistivno folijo za zaznavanje dotika odprl neskončen nabor priljubljenih igričarskih projektov. V tej luči smo spremenili tudi obliko tiskanine, razpored tipk in dodali drsno igralno paličico. K pozitivnem gradientu evolucije je pridal tudi procesor, saj smo namerno izbrali verjetno najbolj popularno AVR izvedenko ATmega328P s črko B na koncu, ki prinese še nekaj dodatne periferije. Ljudska modrost pravi: »Če ne moreš premagati nasprotnika, ga objemi!« Zato smo priključne letvice novega MiŠKa 2 razporedili enako kot pri Arduinu UNO v upanju, da bo kdo od študentov nanj priključil kak Arduino ščit in ga uporabil v projektu. »Upanje umira zadnje«, smo si rekli in se podredili Arduinu tudi v izbiri nalagalnika programa prek USB. A tu se spogledovanje z Arduinom konča, saj smo jih še vedno programirali po principu od spodaj navzgor s spoznavanjem vseh specifik arhitekture do najbolj zakotnega registra.
MiŠKo 2 je zažarel v novi rdeči barvi in prevzel srca študentov elektronike in mnogih drugih, ki so predmet OME izbrali kot izbirni predmet. Vsako leto smo v povprečju izdelali 50 kompletov, od katerih jih je bila na koncu semestra s težkimi srci vrnjena petina. Te smo potem uporabili pri lastnih projektih v laboratoriju ali pa naslednje leto podarili tistim, ki so si jih dejansko zaslužili.
Študentje so zagovarjali paleto različnih projektov od glasbenih (uglaševalnik za kitaro, MIDI krmilnik, VU meter, DMX kontroler), tehničnih (krmilnik motorjev, parkirni senzorji, sledilnik soncu, RLC merilnik, merilnik frekvence, EMG merilnik, osciloskop, GPS, GSM) do seveda najbolj popularnih igric (kača, tetris, pari, pong, artilery, labirint, minolovec, pacman, brick, potapljanje ladjic, križci in krožci, šah) in še mnogo drugih. Z MiŠKom so študentje vstopili v čudovit svet programiranja in mikrokrmilnikov in marsikateri je priznal, da si ni mislil, da ga bo tako pritegnilo in če se je prejšnje leto bolj šlepal, je sedaj le spoznal smisel in pomen znanja programiranja. MiŠKo si je s svojim imenom izboril tako pomembno mesto na fakulteti, da je pristal ob Sinigojevi bibliji Osnove elektrotehnike, žarnici na žarilno nitko in drugih pomembnih elektrotehničnih predmetih v časovni kapsuli, ki smo jo 1.10.2019 slovesno zakopali na vrtu fakultete ob praznovanju stoletnice fakultete in Univerze v Ljubljani. Kapsulo bomo(do) odprli šele čez sto let. V upanju, da bo takrat sploh še obstajal kdo, ki bo to odkopal, smo dodali natisnjena navodila za uporabo, kjer so detajlno opisani vsi sklopi, tudi tako samoumevna stvar, kot je npr. USB-A konektor. Kot vemo gre le-ta z uveljavitvijo USB-C že v pozabo. Če ga bodo naši zanamci znali priklopiti in Alzheimer še ne bo načel flash pomnilnika, se bo izpisal naslednji pozdrav:
Ce lahko berete te besede, to pomeni dvoje. Pomeni, da dobro vidite. Pomeni pa tudi, da je MiSKo2 prezivel 100 let!
Miško poleg pozdrava in seznama vseh udeleženih pri njegovem razvoju na koncu napiše tudi štiri slavne elektrotehniške enačbe v iskrenem upanju, da jih še kdo pozna. Nato sledi igrica kača.
MiŠKa smo zakopali, a ne pozabili. Čez par mesecev smo z njim zakorakali v koronsko leto, ki nam že drugo leto kroji življenje in pedagoško delo. Koncept MiŠKa se je v koroni še posebej izkazal. Vsi študentje so lahko po lastnih zmožnostih s pomočjo video lekcij in odličnih navodil izvedli vse predpisane vaje doma in tako uspešno z nadpovprečnimi izidi zaključili predmet, ne da bi enkrat bilo treba priti na fakulteto. MiŠKo pa se je izkazal tudi v našem aganžmaju pri razvoju pandemskega ventilatorja na fakulteti aprila 2020, saj je poganjal prvi prototip FEspiratorja, ki smo ga uspešno preizkusili na simulatorju bolnika v simulacijskem centru Univerzitetnega kliničnega centra v Ljubljani. Pri razvoju je sodelovalo več študentov pri predmetu OME, ki so od doma programirali in testirali posamezne sklope.
Kljub mnogim uspehom MiŠKa je po petih letih spet napočil čas za evolucijski preskok. Prihaja namreč MiŠKo 3, najnaprednejši in najboljši, v novi obliki na ramenih izkušenj preteklih let. Zasnovan na najnovejši ARM Cortex M4 arhitekturi bo deklasiral svoje predhodnike ne zgolj z 32-bitno arhitekturo, ki se poti pri 170 MHz, ampak tudi v bogati periferiji. Opremili smo ga s USB hubom, ki omogoča komunikacijo tako s ST LINK razhroščevalnikom in UART pretvornikom kot tudi vgrajenim USB vmesnikom prek enega samega USB-C konektorja. Izbrali smo večji grafični LCD zaslon občutljiv na dotik, ki je priklopljen neposredno na FMC vmesnik mikrokrmilnika prek paralelnega 16-bitnega vodila, ki bo omogočal maksimalno frekvenco osveževanja zaslona brez obremenjevanja jedra procesorja. Dodali smo CAN in LIN vmesnika za povezljivost z avtomobilsko elektroniko in QSPI razširitev pomnilnika. Za naprednejše razhroščevanje je na voljo tudi konektor TRACE.
Za še boljšo izkušnjo smo ga zasnovali v obliki igralne konzole sredinskim zaslonom in tipkami desno ter analogno igralno paličico levo. Tudi na svetleče diode nismo pozabili. USB konektor je spodaj desno, kjer ne ovira držanja z roko.
Vezje smo načrtali na 6-slojni osnovi v obliki Arduino DUE z identičnim razporedom konektorjev, a odlomljivim podaljškom na levi strani, kjer so dodatne svetleče diode in igralna paličica.
A zverina kot je MiŠKo 3, ne bo služila zgolj študentom pri OME, kjer se bodo še vedno učili osnov mikrokrmilnikov, spoznavali jedro, registre in periferijo, prižigali svetleče diode ter gradili sistem od spodaj navzgor, ampak je projekt zamišljen širše. Ideja je, da ga s pomočjo naših sponzorjev dobijo vsi študentje v prvem letniku, ki se učijo programiranja. Tako bo MiŠKo 3 prišel domov k vsakemu študentu, ga popeljal v svet programiranja in mikrokrmilnikov ter ga spremljal do konca študija in še dlje.
MiŠKo je mrtev… naj živi MiŠKo!
Ljudje, ki so pomembno prispevali k evoluciji MiŠKa:
- doc. dr. Matija Pirc za glavnino dela na razvoju sheme in tiskanega vezja, pripravi knjižnic in snovanju vaj
- Matjaž Tome za ideje in načrtovanje PCB
- Dorijan Morelj za ideje in načrtovanje PCB
- as. dr. Gašper Matič za program v časovni kapsuli, snovanje vaj in najboljših navodil za vaje v času COVID ukrepov
- Amadej Papež za neutrudno risanje sheme in načrta tiskanega vezja MiŠKo 3
- Matej Antonijevič za podporo in svetovanje pri razvoju MiŠKo 3, iz iSYSTEM Labs d.o.o.
- Tilen Majerle za pravočasno dobavo vzorcev čipov za dve leti vnaprej, iz STMicroelectronics
- Prof. dr. Marko Topič, vodja LPVO in predstojnik Katedre za elektroniko za velikodušno finančno in moralno podporo projektu MiŠKo od njegovega začetka.
Spletna stran o MiŠKu: http://lpvo.fe.uni-lj.si/izobrazevanje/1-stopnja-vs/osnove-mikroprocesorske-elektronike-ome/
Youtube kanal študija elektronike na FE: https://www.youtube.com/channel/UC9GoXFOWS0mUDcWyhc4cr2w