6.4 Signalizacija svjetlima
...da te bolje vidim!
Čemu služe svjetla na vozilima?
Danas se igramo svjetlima na vozilu – ali ne samo zato što lijepo izgledaju, nego zato što vozilu pomažu pričati s nama i s okolinom. Svjetla nam kažu ide li vozilo naprijed ili nazad, skreće li lijevo ili desno, je li stalo ili upozorava na opasnost.
Na pravim autima prednja svjetla osvjetljavaju cestu, stražnja i stop‑svjetla govore kada kočimo, a žmigavci pokazuju u kojem smjeru skrećemo. Na Maqueenu ćemo raditi isto: obična LED svjetla koristit ćemo kao farove, a šarene NeoPixel RGB lampice kao posebne signale za kočenje, vožnju unazad i skretanje. Na taj način učimo kako robot može svjetlima jasno pokazati što radi i što će sljedeće napraviti.
Gdje su svjetla na Maqueenu?
Na prednjem dijelu Maqueena su dvije velike crvene LED – mogu biti samo ugašene ili upaljene.
Na donjoj strani, između kotača, nalaze se 4 male NeoPixel RGB LED‑ice (WS2812) koje mogu svijetliti u bilo kojoj boji i raditi efekte.
NeoPixeli su spojeni na micro:bit pin P15, pa ih programiramo preko posebne NeoPixel ekstenzije, dok se prednje LED‑ice pale i gase Maqueen blokovima.
LED, RGB LED i NeoPixel
- Obična LED: jedna boja (npr. crvena, bijela), ima samo stanja upaljeno ili ugašeno, upravljamo samo jačinom svjetla (PWM) i uključi/isključi.
- RGB LED: u jednoj lampici su tri LED‑ice (crvena, zelena, plava), pa miješanjem tih boja dobivamo mnogo različitih boja; potrebno je više žica/pinova za upravljanje (R, G, B).
- NeoPixel RGB LED (WS2812): RGB LED s ugrađenim malim čipom; sve boje i efekte šaljemo preko samo jedne žice (data), mogu se nizati i pojedinačno adresirati u programskom kodu.
Zadatak 1:
Na početku ćemo pokazati mogućnosti NeoPixel RGB LED-ica – osvjetljavati ćemo ih nasumičnim bojama!
Zadatak 2:
U zadatku spajamo senzore, motore, obične LED i NeoPixele u jednog skoro pametnog robota:
- Maqueen kreće naprijed s upaljenim prednjim crvenim LED svjetlima kao auto.
- Ultrazvučni senzor stalno mjeri udaljenost; kad vidi prepreku bliže od 10 cm, Maqueen se zaustavlja i počinje dio izbjegavanja prepreke.
- Zatim se uključe zadnji RGB NeoPixeli na dnu: trepću u nekoj boji (npr. narančasta i crvena) i robot se vozi unazad.
- Nakon toga Maqueen slučajnim odabirom odluči hoće li se okrenuti lijevo ili desno, i dok se okreće trepće žuto samo lijevim ili samo desnim donjim RGB pixelićima kao žmigavcima.
- Kad završi skretanje, Maqueen kreće naprijed i cijeli se proces ponavlja.
Posebnost današnjeg zadatka je uredan i čitljiv program
Iz tog razloga ćemo definirati funkcije.
Funkcija ima ime (npr. nazad, lijevo, desno) koje govori što radi.
U tijelu funkcije se nalaze upute koje se izvrše svaki put kad funkciju pozovemo – kao recept koji svaki put vodi istim koracima.
Funkcija može primati parametre (npr. broj treptaja) – to su mjesta u koja upisujemo vrijednosti da bi se isti zadatak izvršio malo drugačije (kraće, duže, brže...)
Na taj način program postaje čitljiviji i lakši za mijenjanje: ako želimo promijeniti kako Maqueen ide nazad, mijenjamo samo funkciju nazad, a ne tražimo isti kod na više mjesta u programu.
Funkcije s parametrima (nazad, lijevo, desno)
Definirane su tri funkcije: nazad, lijevo i desno – svaka od njih zna kako upaliti odgovarajuće RGB LED‑ice i pokrenuti motore u tom smjeru.
Svaka funkcija prima parametar broj treptaja; taj broj određuje koliko puta će RGB pikseli trepnuti i koliko dugo će se Maqueen kretati u tom smjeru (što veći broj, to duže).
U glavnom dijelu programa samo pozovemo funkcije, npr. call nazad 4 ili call lijevo 3, što program čini preglednim i lakšim za razumijevanje.
Same funkcije su definirane u zasebnim blokovima, a rade na sličan način:
- pokreni motore u smjeru koji funkcija zahtijeva,
- u petlji ponovi broj puta treptanje (pali i gasi) LED dioda,
- zaustavi motore.
Dodatna pitanja i zadaci:
- Promijeni boje zadnjih RGB piksela ovisno o udaljenosti: daleko = zelena, srednje = žuta, jako blizu = crvena.
- Dodaj zvuk: kad je prepreka bliže od 10 cm, osim svjetla, Maqueen kratko zasvira alarm na zvučniku.
- Umjesto nasumičnog skretanja, broji koliko puta je skrenuo lijevo i desno i pokušaj napraviti program da bude otprilike pošten (jednako često lijevo i desno).
Dodatna pitanja i zadaci:
- Izmijeni program na kontroleru tako da ispisuje strelice u smjeru u kojem treba Maqueen skrenuti.
Što smo naučili?
- Gdje se na Maqueenu nalaze prednje LED lampice i donje NeoPixel RGB LED‑ice te čemu služe.
- Razliku između obične LED, RGB LED i NeoPixel RGB LED, te zašto su NeoPixeli praktični za šarene efekte s jednom podatkovnom žicom.
- Kako povezati motore, ultrazvučni senzor udaljenosti, LED svjetla i funkcije s parametrima da Maqueen samostalno reagira na prepreke i jasno pokazuje što radi svojim svjetlima.


