11 minute read

BBC micro:bit [27

Poštovani čitatelji, u prošlom je nastavku serije obrađen mikrofon te je predložen zadatak za samostalan rad koji glasi: U MC Editoru se u popisu blokova kod “Led” nalazi blok “plot bar graph of 0 up to 0”. Iskoristite ga za igru svjetlosti LED-ica displeja BBC micro:bita koje će se paliti i gasiti u ritmu muzike. Rješenje je vrlo jednostavno, Slika 27.1. Program otpremite. Ako je sve kako valja na displeju BBC micro:bita upalit će se većina LED-ica. Mikrofonu približite mobitel na kojem svira neka melodija. Gornji redovi LED-ica trebali bi se paliti i gasiti u ritmu muzike. Želite li rastegnuti prikaz tako da se većina LED-ica pali i gasi u ritmu muzike morat ćete ugoditi trimer-potenciometar na modulu VMA309. Odvijačem zakrećite njegov klizač udesno sve dok ne ostanu svijetliti samo donja tri reda LED-ica. Mikrofonu nanovo približite mobitel i uživajte u igri svjetlosti. Ovdje valja napomenuti da korišteni blok preko USB-a šalje i serijske podatke tako da je moguće vidjeti graf na zaslonu MakeCode Editora. Sigurno se pitate, zašto je potrebno zvučnik mobitela toliko približiti mikrofonu? Zar ne bi LED-ice trebale “trzati” na svaki pa i najslabiji zvuk? Radi usporedbe prisjetite se VU-metra na muzičkim Hi-Fi linijama gdje se zelene LED-ice pale već kod slabijih zvukova, a one crvene kod najjačih zvukova. Nažalost, bez obzira jeste li trimer-potenciometar savršeno ugodili nikada nećete uspjeti obuhvatiti sve razine muzike kao kod profesionalnog VU-metra. Uvjerili ste se u to kad je trimer-potenciometar bio ugođen na najbolju moguću osjetljivost. Tada je većina LED-ica svijetlila, a igra svjetlosti se odvijala samo u gornjim redovima displeja.

Zašto se na VU-metru ipak prikazuju sve razine zvuka? Za bolje razumijevanje djelovanja VU-metra trebate proučiti neke fizikalne veličine specifične za zvuk.

Advertisement

Frekvencija zvuka. Zvuk koji dolazi do uha je zbroj raznih frekvencija, ali osnovna frekvencija je ona koja daje timbar. Frekvencija koje se daju razlučiti ima oko 2000. Uvježbani muzičari mogu razlučiti i znatno više od toga, a ima i ljudi s urođenim talentom (kao što je na primjer bio Mozart) koji među tisućama mogu razlučiti jednu jedinu notu.

Jakost zvuka. Pojednostavljeno rečeno, to je tlak kojim zrak djeluje na bubnjić uha. Označava se s I, a mjerna veličina koja se koristi je W/ m2 (vat po kvadratnom metru), gdje treba imati na umu da to nije električni vat, već mehanički vat. Iako je jakost zvuka linearna veličina, kod mjerenja se koristi logaritamska veličina koja je u čast Amerikanca Grahama Bella (sigurno ste čuli za njega, izumio je telefon) nazvana bel (B), a to je logaritam odnosa razina dviju veličina zvuka od kojih je jedna referentna. Kako je bel vrlo velika jedinica iz praktičnih razloga koristi se deset puta manja, decibel. Kao referentna veličina uzima se prag čujnosti ljudskog uha kod 1000 Hz koji iznosi I0 = 1 pW/m2 (1 pW = 0,000 000 000 001 W/m2 ili 10-12 W/m2). Formula pretvorbe glasi B = 10 × log (I / I0). Na primjer, prag čujnosti ljudskog uha je B = 10 × log (10-12 / 10-12) = 0 dB. Drugi primjer, za jakost zvuka od I = 1 W/m2 kažemo da je prag bola jer ga ljudsko uho čuje, ali još uvijek ne osjeća bol u ušima. Pretvoren u decibele iznosi B = 10 × log10 (1 / 10-12) = 120 dB.

Slika 27.1. Programski kôd za paljenje LED-ica displeja u ritmu muzike

KODIRANJE

Slika 27.2. Primjeri jakosti zvuka

Kako je iz primjera vidljivo, cjelokupno područje jakosti zvuka koje ljudsko uho može čuti ide od vrlo slabašnog zvuka, odnosno od praga čujnosti (1 pW/m2) do vrlo intenzivnog, odnosno do praga bola (1 W/m2). Drugim riječima, nevjerojatno je široko, naime jakost najjačeg zvuka, onoga na pragu bola, tisuću je milijardi puta jača od onog na pragu čujnosti. Sada je jasno zbog čega se koriste decibeli. Na Slici 27.2. prikazana je tablica gdje su prikazani neki primjeri jakosti zvuka u dB i W/m2 . No to nije sve, jakost koju osjeća ljudsko uho ovisi i o frekvenciji zvuka. Kad slušate zvuk frekvencije 1000 Hz, jakosti 30 dB, doživljavate određeni osjet sluha. Kad slušate zvuk frekvencije 100 Hz, morate mu povisiti jakost na 60 dB (što je oko 1000 puta više) da biste doživjeli isti osjet sluha kao onaj kod 1000 Hz. To drugim riječima znači da ljudsko uho ne osjeća jakost linearno, već logaritamski, i to do frekvencije od približno 300 Hz. U rasponu frekvencije od 300 Hz do 3000 Hz ljudsko uho čuje najbolje. Nakon 3000 Hz osjet jakosti pada, opet logaritamski. Zbog svega iznesenog jasno je da bi za efektniji prikaz, displej BBC micro:bita morao imati znatno više LED-ica, a program bi morao slijediti logaritamski niz, kao kod VU-metra.

Kad nema jačih zvukova donji dio displeja svijetli. Zašto? Otprije znate da mikrofon proizvodi izmjeničnu električnu energiju. To znači da je napon u odnosu na masu čas pozitivan, a čas negativan. Isto tako znate da analogni ulazi BBC micro:bita rade samo s naponima koji su pozitivni u odnosu na masu. Kako bi se ipak prikazali naponi koji su negativni prema masi, modul VMA309 obrađuje signal na poseban način tako da na izvod šalje polovinu napona napajanja. Toj polovini dodaje napon s mikrofona. Ako je dodani napon pozitivan, zbraja se s naponom izlaza. Ako je napon negativan, oduzima se od napona izlaza. To je na displeju vidljivo, naime kad ga pažljivo promatrate dok svira neka muzika, uočit ćete da se u određenim trenucima pale gornji redovi displeja, ali i da se u određenim trenucima gase donji redovi displeja. Kako biste ovo bolje razumjeli prepišite program sa Slike 27.3. Program otpremite i isprobajte. Ako je sve kako valja, dok u blizini mikrofona nema jačih zvukova svijetle samo LED-ice trećeg reda displeja. Kod pojave jačih zvukova zasvijetle LED-ice iznad ili ispod trećeg reda displeja. Nažalost, ovaj se program odvija sporije od ritmova muzike pa nemate ugođaj da LED-ice prate ritam. To je tako jer korišteni programski blokovi, a pogotovo oni iz kategorije Logic znatno usporavaju izvođenje programa, ali postoje i drugi razlozi. No idemo redom.

LED-displej BBC micro:bita LED-ice displeja BBC micro:bita uključuju se pojedinačno, tehnikom multipleksa što znači da je u određenom, vrlo kratkom trenutku uključena samo jedna LED-ica, a potom se ta LED-ica isključuje te uključuje sljedeća i tako dalje. To se

Slika 27.3. Ovim programskim kodom na displeju se ne pale donja tri reda LED-ica dok nema jačih zvukova

uključivanje i isključivanje odvija tako brzo da ga ljudsko oko ne primjećuje, već vidi sve LED-ice kako svijetle kontinuirano. Ovdje se valja prisjetiti da je 25 LED-ica displeja BBC micro:bita v.1 upravljano integriranim sklopom koji multipleksno upravlja s tri reda u devet stupaca, a da su same LED-ice posložene u pet redaka i pet stupaca, što dodatno usporava izvođenje radi preslagivanja. Radi potpunog shvaćanja funkcionalnosti sklopa pogledajte elektroničku shemu za v.1 na https:// github.com/bbcmicrobit/hardware/blob/master/ V1.5/SCH_BBC-Microbit_V1.5.PDF . Prozivanjem LED-ica koje treba uključivati i isključivati moguće je na displeju nacrtati razne likove, jednoznamenkaste brojeve ili slova abecede. Do uključivanja jedne određene LED-ice dolazi samo dok je pod naponom od 3 V red na koji je priključena njena anoda i dok je stupac na koji je priključena njena katoda u spoju s masom. Moraju biti ispunjena oba uvjeta jer inače LED-ica neće svijetliti. Displej se ciklički osvježava (refresh) zahvaljujući ugrađenom sklopu za osciliranje. Njegove oscilacije kvadratnog oblika vala služe za upravljanje s redovima i sa stupcima LED-ica, a stručno se naziva clock. Clock je raspoređen tako da je svaki od tri reda aktivan samo jednu trećinu njegova vremena. U trenutku kad se zbog clocka u prvom redu displeja pojavi napon od 3 V sve su LED-ice spremne za uključenje, ali zasvijetle samo one čije su katode u spoju s masom, što opet ovisi o clocku. Nakon što su redom aktivirana sva tri reda displeja, ciklus započinje od početka čime se displej osvježava. Frekvencija osvježavanja displeja jednaka je trećini frekvencije clocka. Brzina izvođenja programa ovisi i o Editoru što možete provjeriti s eksperimentima koji slijede.

Testiranje displeja BBC micro:bita s MC Editorom Prepišite program sa Slike 27.4. Program otpremite. Na vašem mobitelu pokrenite aplikaciju štoperice. Izmjerite vrijeme za deset ciklusa paljenja i gašenja displeja BBC micro:bita. Dobiveno vrijeme podijelite s 10 kako biste saznali koliko vremena traje jedan ciklus. Radi usporedbe, autor ovih redova izmjerio je vrijeme od 8,1 s, a to znači da jedan ciklus traje 0,81 s. Dakle, kako bi se u jednom ciklusu upalile i ugasile sve LED-ice potrebno je nešto manje od 1 sekunde. Kako je vidljivo, vrijeme izvođenja poprilično je dugo pa to treba imati na umu kad se grade projekti kod kojih je vrijeme izvođenja važno, kao na primjer kod prije obrađene igre svjetlosti.

Testiranje displeja BBC micro:bita s Pythonom Pokrenite Python, pronaći ćete ga na stranici https:// python.microbit. org/v/2 . Prepišite program sa Slike 27.5. P r o g r a m preuzmite klikom na programsku tipku Download te ga uobičajenim postupkom otpremite do pločice BBC micro:bita. Ako je sve kako valja, izvođenje će vas zadiviti. Naime, program se toliko brzo izvodi da je nemoguće štopericom izmjeriti vrijeme ciklusa paljenja LED-ica displeja, štoviše sve se odvija brže i od clocka samog displeja tako da se neke LED-ice ne stignu uključiti pa cijeli displej neravnomjerno treperi. Ako želite, izvođenje možete usporiti. Isprobajte program sa Slike 27.6.

Zašto tako? Pojednostavljeno rečeno, objašnjenje tolike razlike u vremenu izvođenja leži u činjenici da je između koda napisanog u MC Editoru i procesora BBC micro:bita umetnut prevoditelj (interpreter) koji su razvili u Lancaster Universityju čime je znatno olakšano kodiranje u MC Editoru, ali zbog toga programski kôd pisan u njemu mora najprije biti preveden u strojni kôd i tu se gubi vrijeme. U Pythonu se preskače prevoditelj jer se sve odvija preko posebnog koda bliskog strojnom kodiranju, po imenu Mbed. Što je to? Wikipedija kaže sljedeće: “Mbed je platforma i operativni

Slika 27.4. Programski kôd za testiranje odziva displeja

Slika 27.5. Programski kôd za testiranje odziva displeja

Slika 26.6. Vrijednosti dobivene 17./18. siječnja 2022.

sustav za uređaje spojene na internet-baziranim 32-bitnim ARM Cortex-M mikro-kontrolorima”. Zaključak, brži je zbog toga što je prilagođen specifičnostima mikrokontrolora i zbog toga što je vrlo blizak strojnom kodiranju. U nastavku, već kad je načeta tema s displejom, proučite kako se nadzire jakost sijanja LED-ica, jer i tu ima zanimljivih pojava.

Nadzor sijanja LED-ica Kako biste upravljali sjajem LED-ica displeja BBC micro:bita trebate koristiti analognu tehniku poznatu kao PWM (o tome se već raspravljalo u prethodnim brojevima ABC tehnike). S tom je tehnikom moguće dobiti različite intenzitete svijetljenja LED-ica. Taj se učinak postiže uzastopnim uključivanjem LED-ica za vrijeme koje je kraće od vremena potrebnog za puni sjaj. Prepišite program sa Slike 27.7. Program otpremite. Na displeju BBC micro:bita bi LED-ice prvog stupa trebale zasjati različitim intenzitetima. Prema upisanim brojevima kod “brightness” (koji mogu ići od 0 – ugašeno do 255 – puni sjaj) očekuje se da će s brojem 255 LED-ica svijetliti punim sjajem, odnosno 255 =

Slika 27.7. Sjaj LED-ica ugađa se s “brightness”

100%; za 127 = 50%; za 1 < 1%. Je li to baš tako? Zamolite nekoga tko ne zna za ovaj eksperiment, na primjer prijatelja, mamu, tatu ili sestru, da u postocima ustanovi razliku sijanja triju LED-ica. Odnosno, zamolite ga neka procijeni sjaji li srednja LED-ica 50% slabije u odnosu na gornju LED-icu. Odgovor će sigurno biti da razlika nije veća od 30%, što ste vjerojatno i sami uočili.

Osjet intenziteta sjaja Kao što ste i sami uočili, dok gledate u displej, osjet ili očekivani intenzitet sjaja ne odgovara upisanim vrijednostima. Donja LED-ica displeja s brojem 1 izgleda sjajnije od onog što se očekuje kada je PWM manji od 1 %. Gornja LED-ica s brojem 255 nešto je malo sjajnija od srednje LED-ice s brojem 127, ali nikako duplo sjajnija (50%), zar ne? Iz eksperimenta se vidi da osjet intenziteta sjaja nije proporcionalan s trajanjem PWM impulsa, a to dovodi do zaključka da osjet intenziteta sjaja za sustav oko–mozak nije proporcionalan intenzitetu svjetla. Programski pokušajte to ispraviti, prepišite kôd sa Slike 27.8. Izrađen je iz poluvodiča kadmij-sulfida. U elektroničkim shemama različitih autora crta se na različite načine, pogledajte Sliku 27.10.

Slika 27.8. Promjenom brojeva kod “brightness” moguće je uravnotežiti osjet intenziteta sjaja

Program otpremite te nanovo usporedite sjaj LED-ica. Ovom novom vrijednosti za “brightness” dobiva se osjet koji odgovara prije očekivanom 1% - 50% - 100%, iako unesene promjene nisu linearne. Sve ovo neodoljivo podsjeća na logaritme i decibele o kojima se raspravljalo kad se govorilo o osjetu zvuka, zar ne?

Fotootpornik Fotootpornik ili LDR (Light Dependent Rresistor) elektronički je element koji je osjetljiv na svjetlost, Slika 27.9.

Slika 27.9. Fotootpornici

Slika 27.10. Najčešće korišteni elektronički simboli za fotootpornik

Najvažnije tehničke karakteristike jesu: snaga 50 mW – 200 mW; maksimalan radni napon 150 V; otpor u mraku 5 MΩ - 100 MΩ; otpor na svjetlu 50 Ω - 500 Ω. Iz tih je karakteristika vidljivo da se omski otpor mijenja promjenom svjetlosti. Doista, kad je fotootpornik obasjan jarkom svjetlošću tad je njegov otpor ispod 500 Ω, a kad je u mraku njegov je otpor iznad 5 MΩ. Jeftin je i jednostavan za korištenje. Potrebno ga je spojiti na izvor napona s otpornikom (4,7 kΩ - 10 kΩ) u takozvanom spoju “pull-down” ili “pull-up”, Slike 27.11. i 27.12. Koja je razlika? Kod spoja “pull-down” dobivat ćete na BBC micro:bitu veće vrijednosti (prema 1023) kad je fotootpornik obasjan svjetlom, a manje (prema 0) kada je u mraku. Kod spoja

Slika 27.11. “Pull-down” spoj

This article is from: