Ko televizija izobražuje
V začetku osemdesetih let prejšnjega stoletja je v angleških šolah žel velik uspeh mikroračunalnik BBC micro, s katerim je medijska hiša BBC podprla medijski projekt računalniške pismenosti. Ta hišni računalnik je nastal v sodelovanju BBC in podjetja Acorn, iz katerega je izšlo tudi današnje podjetje ARM. In prav mikrokrmilnik ARM je jedro novega BBC micro:bita, ki danes uspeva pod okriljem BBC.
Pred petimi leti so se namreč v BBC znova lotili projekta, s katerim so želeli spodbuditi zanimanje za tehniko med mladimi. Pri razvoju novega učnega računalnika so se povezali s številnimi podjetji, med katerimi najdemo tako ARM kot tudi Microsoft in Samsung. Rezultat sodelovanja je majhno robustno vezje, s katerim je preprosto delati in ga je kljub osnovnemu didaktičnemu namenu mogoče uporabiti tudi za resnejše projekte interneta stvari (IOT). Vezje je namreč zasnovano na mikrokrmilniku ARM z vgrajenim vmesnikom Bluetooth BLE in je združljivo z ARM mbed. Tako strojna kot tudi programska oprema micro:bita sta odprti za javnost in na voljo na spletni strani tech.microbit.org. In seveda, v preteklem letu so med britanske učence razdelili kar milijon micro:bitov. Podobno se dogaja drugod, tudi v naši soseščini, kjer na Hrvaškem uspešno teče projekt BBC micro:bit – revolucija STEM. Pri nas žal ne, se pa z njim resno ukvarjamo na nekaterih srednjih šolah.
Kaj dobimo v paketu
Vezje micro:bita je majhno, v dolžino meri le 5 cm in v višino 4 cm. Kljub majhnosti ima lep nabor komponent. Srce je 32-bitni mikrokrmilnik Nordic nRF51822 z jedrom ARM Cortex-M0, ki bije s hitrostjo 16 MHz. Družbo mu dela mikrokrmilnik NXP/Freescale KL26Z, ki rabi za prenos ustvarjenih programov – ob pomoči kabla USB ali prek povezave Bluetooth. Za hrambo in izvajanje programov ima micro:bit 256 KB pomnilnika flash in 16 KB pomnilnika RAM.
Poleg omenjenih komponent imamo na voljo še 3D tipalo pospeškov, 3D tipalo magnetnega polja, tipalo temperature, povezavo Bluetooth Low Energy, par tipk in diskretni 5×5 LED matrični prikazovalnik. Za zahtevnejše navdušence je tu 23-polni robni konektor, prek katerega dostopamo do generatorja PWM, analogno/digitalnega pretvornika, asinhronega vmesnika in vodil SPI in I2C. Poleg omenjenega konektorja lahko na BBC micro:bit priklopimo zunanje naprave tudi prek treh vhodno-izhodnih kontaktov v obliki obroča z uporabo 4 mm banana vtičev.
Opisana strojna sestava omogoča izpis besedilnih sporočil, prikaz animirane grafike v igricah, zaznavanje pospeškov, tresljajev in nagibov vezja, kar lahko s pridom uporabimo pri pisanju računalniških iger, štetju korakov, krmiljenju robota in podobnem.
Programe za micro:bit lahko pišemo vizualno ali tradicionalno v programskih jezikih python, javascript, C in C++. Za pisanje kode je na voljo več spletnih aplikacij, med katerimi izstopa Microsoft MakeCode (Microsoft Programming Experience Toolkit), ki ga bomo uporabili tudi v tem prispevku.
Iz opisa vezja lahko sklenemo, da micro:bit lahko uvrstimo nekje med Arduino in Raspberry PI. Prednost pred slednjima ima v enostavnosti in možnosti takojšnjega začetka dela, saj potrebujemo za pisanje programov le sodoben spletni brskalnik.
Microsoft MakeCode (PXT)
Kot rečeno, za popolne začetnike priporočamo uporabo Microsoft MakeCode, ki temelji na vizualnem kodiranju z uporabo grafičnih gradnikov v obliki blokov. Podobno kot v okolju Scratch tudi tu program sestavljamo s premikanjem in zlaganjem blokov različnih barv. Poleg vizualnega pisanja programske kode Microsoft MakeCode omogoča še klasično pisanje programske kode v jeziku javascript oziroma typescript, ki je primerno za vešče koderje in za zahtevnejše projekte. Prehod z vizualnega načina v besedilni je mogoč vedno, nasprotno pa le, če je programska koda javascript napisana tako, da jo lahko MakeCode pretvori nazaj v grafične gradnike.
Slika 1: Poslovenjeni vmesnik MakeCode je na voljo na https://pxt.microbit.org/?livelang=sl
Za uporabo MakeCode ne potrebujete uporabniškega računa in prijave v aplikacijo. To je zelo uporabno v šolah pri delu z mlajšimi učenci, saj se lahko takoj lotimo dela, brez poprejšnje prijave in z njo povezanih težav.
MakeCode je sicer v aktivnem razvoju, a je aplikacija dovolj stabilna za običajne potrebe. Morda ni odveč omeniti, da poteka na ŠC Krško-Sevnica projekt prevoda uporabniškega vmesnika v slovenščino, zato tudi tu uporabljamo slovenske izraze in nomenklaturo.
Način pisanja kode izbiramo z gumboma Bloki in JavaScript. Na meniju Projekti ustvarimo nov projekt ali odpremo stare projekte. Na meniju nastavitev, označenim s simbolom zobnika, so ukazi za nastavitve projekta, dodajanje programskih paketov, brisanje odprtega projekta in ponastavitev celotnega okolja na začetno stanje. Velik gumb z napisom Prenos sproži prevod in prenos kode v naš računalnik.
Program vnašamo s klikom posameznega ukaza, ki ga nato povlečemo na delovno površino. Grafično so ukazi narisani kot bloki, ki jih lahko enostavno zlagamo drugega na drugega. Skupino ukazov razstavimo s prestavljanjem spodnjega ukaza, drugače bi premikali celotno skupino ukazov.
Za pisanje programov v resnici ne potrebujemo samega vezja (micro:bita), saj lahko delovanje sestavljenega programa spremljamo kar v simulatorju. Simulator podpira simulacijo tipk A in B, spremembe temperature, pospeška, vibracij, spremembe svetlobe okolice, kompasa, serijskega vmesnika in stanja na posameznih kontaktih robnega konektorja.
Pa si oglejmo nekaj primerov – kako začeti pisati programe in kako napisani program prenesti na micro:bit.
Slika 2: Koda digitalnega termometra.
Prvi micro:koraki
Za začetek dela potrebujete spletni brskalnik in povezavo v splet, pri delu s strojno opremo micro:bit pa potrebujemo še kabel USB z vtičem microUSB (kabel za povezavo pametnega telefona z osebnim računalnikom) in seveda micro:bit.
Primer 1. Prvi program si lahko ogledamo kar na sliki 1, ki prikazuje poslovenjeni vmesnik MakeCode in kodo programa »Srček«. Da, tako je treba narediti enostavno animacijo za broško.
Vsi uporabljeni ukazi programa »Srček« so na meniju Osnovno. Želene ukaze le povlečemo z miško na delovno površino in jih ustrezno zložimo. Simulator micro:bita se avtomatsko zažene in prikaže delovanje našega programa. Za zagon programa na pravem micro:bitu ga je treba povezati z osebnim računalnikom s kablom USB. Ta ga prepozna kot ključek USB, nanj pa prekopiramo programsko kodo. To smo v osebni računalnik prenesli s klikom Prenosa. Po končanem prenosu datoteke se program samodejno požene.
Primer 2. Napišimo še malo uporabnejši programček, s katerim bomo naš micro:bit spremenili v digitalni termometer. Za merjenje temperature bomo uporabili kar tipalo, ki je vgrajeno v mikrokrmilnik nRF51822 za merjenje temperature procesorskega jedra. Mikrokrmilnik ima pač majhno porabo, tako da se pri delovanju jedro ne pregreva. Za točno meritev temperature okolice bo kljub temu treba upoštevati odstopanje izmerjene temperature od dejanske vrednosti. V našem primeru je treba izmerjeni temperaturi odšteti štiri stopinje. Sliko kode termometra vidimo na sliki 2.
Primer 3. Na sliki 3 vidimo program za smerokaz, ki za prikaz štirih smeri neba uporablja magnetno tipalo. Informacije o položaju beremo z magnetnega tipala z ukazom smer kompasa. Pri zagonu programa nas micro:bit pozove k umerjanju magnetnega tipala, s katerim dosežemo točnost delovanja tipala. Program »smerokaz« lahko enostavno nadgradimo v pravi digitalni kompas.
Slika 3: Koda za Smerokaz.
Nadaljujmo!
Micro:bit kar vabi k raziskovanju in odkrivanju sveta elektronike in programiranja. Namenjen je poučevanju začetkov programiranja in to svoje poslanstvo opravlja z odliko. Vezje je majhno in robustno, razvojna okolja pa prilagojena začetnikom in poučevanju v šolski učilnici. Zdaj lahko samo upamo, da bomo sledili zgledom dobre prakse po svetu in da se bo uporaba micro:bita v šolstvu razširila tudi pri nas. Dotlej pa lahko micro:bit kupimo v Svetu Elektronike in Galagu, ki sta poskrbela za dostopnost micro:bita tudi na sončni strani Alp.
Zanimive povezave
• BBC micro:bit hardware, tech.microbit.org/hardware
• Micro:bit Educational Foundation, www.microbit.org
• Microsoft PXT, www.pxt.io
• Svet Elektronike, trgovina.svet-el.si
• Galago Market, www.galagomarket.com