Pametni sustavi i povezani uređaji
Pametno križanje s micro:bitom - od LED ekrana do dva semafora koji razgovaraju

Sada idemo korak dalje.
Više nećemo praviti samo program koji radi na jednom micro:bitu. Gradit ćemo pametne uređaje koji mogu upravljati stvarnim svjetlima, zvukom, senzorima, motorima i drugim dijelovima naših modela.
Učit ćemo kako jedan micro:bit može:
- uključiti stvarnu LED lampicu;
- upravljati semaforom;
- prepoznati što se događa oko njega;
- poslati poruku drugom micro:bitu;
- primiti poruku i reagirati;
- raditi zajedno s drugim uređajem kao dio većeg sustava.
Zamisli semafor na križanju. On nije samo skup svjetala. Mora znati kada je drugi smjer crven, kada pješaci smiju prijeći i kako poslati jasnu poruku ljudima koji čekaju.
To je primjer pametnog sustava.
Pametni sustav ima nekoliko važnih dijelova:
Ulaz ⇒ program odlučuje ⇒ izlaz ⇒ komunikacija s drugim uređajima
Na primjer, u našem današnjem križanju:
- Tipka ili radio-poruka
- micro:bit program odlučuje koje je stanje križanja
- Semafor mijenja crveno, žuto i zeleno svjetlo
- LED ekran pokazuje signal za pješake
- Zvuk šalje dodatnu poruku osobama sa slabijim vidom
Od danas ćemo razmišljati kao tim koji gradi pravi uređaj:
- Što naš uređaj treba raditi?
- Koje informacije mora dobiti?
- Kako će pokazati rezultat?
- Što se događa ako radi zajedno s drugim uređajem?
- Kako ćemo provjeriti da ne napravi pogrešku?
Najvažnije pravilo ostaje isto:
Prvo napravimo da radi jedna mala stvar. Zatim je testiramo. Tek onda dodajemo sljedeći dio.Danas počinjemo s pametnim križanjem – prvim projektom u kojem će naši micro:bitovi svijetliti, komunicirati i raditi zajedno.
Pametno križanje s micro:bitom
Danas ćemo napraviti malo pametno križanje.
Najprije ćemo na ugrađenom LED ekranu micro:bita prikazati semafor. Zatim ćemo istu logiku prenijeti na naš 3D-printani model semafora sa stvarnim LED lampicama. Nakon toga ćemo povezati dva semafora radio-vezom, dodati pješački semafor na LED ekranu i na kraju dodati zvuk kao pomoć osobama sa slabijim vidom.
Naše križanje neće biti pravi prometni sustav. To je edukativni model pomoću kojeg učimo:
- kako program upravlja svjetlom;
- kako micro:bit šalje signal vanjskim LED-icama;
- kako dva micro:bita razmjenjuju poruke;
- kako jedan uređaj može prikazivati informacije na više načina: svjetlom, slikom i zvukom.
Najvažnije pravilo našeg križanja: dva smjera ne smiju istovremeno imati zeleno svjetlo.
Naša misija
Na kraju radionice svaki par imat će:
- dva 3D-printana semafora;
- dva micro:bita;
- dva smjera križanja;
- vanjske crvenu, žutu i zelenu LED lampicu na svakom modelu;
- LED ekran micro:bita koji prikazuje pješački semafor;
- radio-poruke koje usklađuju oba semafora;
- kratki zvučni signal kada pješaci dobiju znak za prelazak.
Naš sustav prolazi kroz nekoliko stanja
| Korak | Stanje | Semafor A | Semafor B | Pješaci kod A | Pješaci kod B |
|---|---|---|---|---|---|
| 1 | Sigurnosno stanje prije smjera A | crveno | crveno | stoje | stoje |
| 2 | Smjer A se priprema | crveno + žuto | crveno | stoje | stoje |
| 3 | Smjer A prolazi | zeleno | crveno | hodaju | stoje |
| 4 | Smjer A upozorava | zeleno trepće | crveno | stoje | stoje |
| 5 | Smjer A se zaustavlja | žuto | crveno | stoje | stoje |
| 6 | Sigurnosno stanje prije smjera B | crveno | crveno | stoje | stoje |
| 7 | Smjer B se priprema | crveno | crveno + žuto | stoje | stoje |
| 8 | Smjer B prolazi | crveno | zeleno | stoje | hodaju |
| 9 | Smjer B upozorava | crveno | zeleno trepće | stoje | stoje |
| 10 | Smjer B se zaustavlja | crveno | žuto | stoje | stoje |
| ⇒ | Povratak na početak | crveno | crveno | stoje | stoje |
Za naš edukativni model koristimo jednostavno pravilo:
- Vozila zeleno ⇒ pješaci istog smjera hodaju.
- Vozila zeleno trepće ⇒ pješaci istog smjera stoje.
- Vozila žuto ⇒ pješaci istog smjera stoje.
- Vozila crveno + žuto ⇒ pješaci istog smjera stoje.
- Vozila crveno ⇒ pješaci istog smjera stoje.
U pravim gradovima semafori mogu imati više pravila, posebna vremena za pješake, senzore za automobile i dodatne sigurnosne faze. Danas gradimo jednostavniji model da bismo razumjeli osnovnu logiku.
Materijal koji koristimo
Svaki par dobiva:
- 2 × micro:bit V2 – Programabilni „mozgovi” semafora
- 2 × 3D-printani semafor – Modeli sa stvarnim LED lampicama
- 2 × mini breadboard – Mjesto za otpornike i spojeve
- 2 × battery pack – Napajanje micro:bita nakon programiranja
- Krokodil štipaljke – Spajaju micro:bit, breadboard i model semafora
- 6 × otpornik – Svaka LED lampica treba svoj otpornik
- Žice iz modela – Crvena, žuta, zelena i zajednička crna žica
Na micro:bitu V2 koristit ćemo i ugrađeni LED ekran te ugrađeni zvučnik.
Sigurno spajanje semafora
Naši 3D-printani modeli imaju četiri žice:
- Crvena: Povezana je s crvenom LED lampicom
- Žuta: Povezana je sa žutom LED lampicom
- Zelena: Povezana je sa zelenom LED lampicom
- Crna: Zajednička GND žica za sve LED lampice
Svaka LED lampica mora imati svoj otpornik. Crvena, žuta i zelena LED ne dijele jedan otpornik. Otpornici se ne nalaze unutar 3D-printanog modela. Postavljamo ih na mini breadboard.
Naš dogovoreni raspored je:
- micro:bit P0 ⇒ otpornik ⇒ crvena žica semafora
- micro:bit P1 ⇒ otpornik ⇒ žuta žica semafora
- micro:bit P2 ⇒ otpornik ⇒ zelena žica semafora
- micro:bit GND ⇒ crna zajednička žica semafora
Digitalni pin micro:bita može poslati stanje 1 za uključivanje ili 0 za isključivanje signala. U MakeCodeu to koristimo za paljenje i gašenje vanjskih LED lampica.
Digitalni signal i pinovi micro:bita
Micro:bit ne mora uvijek slati složenu poruku. Ponekad mu je dovoljna vrlo jednostavna odluka: UKLJUČENO (1) ili ISKLJUČENO (0).
Takvu poruku zovemo digitalni signal.
Digitalni signal ima samo dva stanja:
- 1 = Uključeno / HIGH; LED lampica može svijetliti
- 0 = Isključeno / LOW; LED lampica je ugašena
Na micro:bitu koristimo pinove – male metalne priključke uz donji rub pločice – da bismo poslali digitalni signal prema vanjskom uređaju. Micro:bit ima više pinova, a za naš semafor koristimo P0, P1 i P2.
Pravilo prije spajanja
- Battery pack mora biti isključen.
- Spojimo žice i otpornike.
- Provjerimo spoj.
- Voditelj pregleda sklop.
- Tek tada uključujemo napajanje i testiramo.
Nikada ne spajamo LED lampicu direktno na pin bez otpornika.
Vježba 1: Semafor na LED ekranu
Prije stvarnog modela napravit ćemo semafor na ugrađenom LED ekranu micro:bita.
Micro:bit ima mali ekran od 5 × 5 LED lampica. U MakeCodeu možemo upotrijebiti blok show leds i nacrtati vlastite slike. Upaljene LED točkice predstavljaju simbol, sliku ili poruku.
Ručni semafor
Napravimo tri jednostavna prikaza:
- Tipka A = crveno: STANI
- Tipka B = žuto: PRIPREMI SE
- Tipke A+B = zeleno: KRENI
Možemo koristiti simbole:
- Crveno: X
- Žuto: !
- Zeleno: ↑
Ili možemo nacrtati vlastite slike pomoću bloka show leds.
Što ovdje učimo?
- Tipka = ulaz
- LED ekran = izlaz
Kada pritisnemo tipku, micro:bit primi informaciju. Zatim program odluči koju sliku treba pokazati na LED ekranu.

Kviz 1: LED ekran i događaji
1. Koji je ulaz u našem ručnom semaforu na micro:bitu?
2. Što je izlaz u prvom dijelu vježbe?
3. Zašto najprije radimo semafor na LED ekranu, a ne odmah na pravom modelu?
Vježba 2: Zeleno svjetlo trepće
Sada ćemo dodati važno upozorenje.
Prije nego što zeleno svjetlo prijeđe na žuto, zeleno će kratko treptati. Treptanje poručuje vozačima da će se stanje uskoro promijeniti.
Plan treptanja:
- Uključi zeleno (1)
- Pričekaj
- Ugasi zeleno (1)
- Pričekaj
- Uključi zeleno (2)
- Pričekaj
- Ugasi zeleno (2)
- Prikaži žuto
- Pričekaj malo duže
Za početak neka zeleno trepne dva ili tri puta.
U MakeCode-u ćemo koristiti:
- pause za čekanje,
- repeat za ponavljanje treptanja određeni broj puta,
- forever za stalno ponavljanje cijelog semaforskog ciklusa.
- pause govori koliko dugo čekamo.
- repeat govori koliko puta ponavljamo istu radnju.
- forever govori da cijeli ciklus ponavljamo stalno.

Dodatni izazov
Promijeni vrijeme čekanja kod treptanja:
- 100 ms = desetina sekunde
- 1000 ms = jedna sekunda
Koja verzija treptanja izgleda bolje: brža ili sporija?
Kviz 2: Treptanje i vrijeme
4. Što znači da zeleno svjetlo trepće?
5. Čemu služi blok pause?
6. Koliko traje 1000 ms?
7. Koja je razlika između repeat i forever?
Vježba 3: Pravi 3D-printani semafor
Sada logiku s LED ekrana prenosimo na pravi model.
Micro:bit više neće prikazivati samo simbol na svome ekranu. Sada će preko pinova upravljati stvarnim LED lampicama u 3D-printanom semaforu.
Spajanje
Prvo odspoji micro:bit s računala i s baterija (ako ih koristiš).
Zatim spoji:
- P0 ⇒ otpornik ⇒ crvena žica
- P1 ⇒ otpornik ⇒ žuta žica
- P2 ⇒ otpornik ⇒ zelena žica
- GND ⇒ crna žica

Zašto koristimo baš ove boje žica?
Nakon spajanja provjeri:
- Crna žica je na GND.
- Crvena LED ima svoj otpornik.
- Žuta LED ima svoj otpornik.
- Zelena LED ima svoj otpornik.
- Krokodil štipaljke se ne dodiruju.
- Žice nisu previše zategnute.
- Voditelj je pregledao spoj.
Test boja
Prije automatskog semafora provjerimo svaku boju posebno:
- Tipka A ⇒ upali samo crveno svjetlo
- Tipka B ⇒ upali samo žuto svjetlo
- Tipke A+B ⇒ upali samo zeleno svjetlo

Kada palimo jednu boju, druge dvije trebaju biti ugašene.
Ako pritisak tipke A upali zelenu umjesto crvene LED lampice, ne mijenjamo odmah cijeli program. Prvo provjerimo:
- je li crvena žica stvarno spojena na P0;
- je li žica možda zamijenjena s drugom bojom;
- je li otpornik dobro postavljen;
- je li zajednička crna žica na GND-u.
Prebacivanje automatskog ciklusa
Nakon testiranja, umjesto prikaza na LED ekranu koristimo pinove:
- Crveno:
- P0 = 1
- P1 = 0
- P2 = 0
- Žuto:
- P0 = 0
- P1 = 1
- P2 = 0
- Zeleno:
- P0 = 0
- P1 = 0
- P2 = 1
Za treptanje zelenog ponavljamo:
- P2 = 1
- čekaj
- P2 = 0
- čekaj
Tako ista programska ideja upravlja pravim svjetlom, a ne samo slikom na ekranu.
Kviz 3: Vanjske LED-ice
8. Zašto svaka LED lampica u semaforu treba svoj otpornik?
9. Gdje spajamo zajedničku crnu žicu semafora?
10. Što prvo radimo prije premještanja žice ili otpornika na breadboardu?
11. Što trebamo provjeriti ako tipka A upali zelenu LED umjesto crvene?
Vježba 4: Dva semafora razgovaraju radio-vezom
Sada svaki par polaznika ima dva micro:bita i dva semafora:
- Semafor A upravlja jednim smjerom ceste.
- Semafor B upravlja drugim smjerom.
Semafori moraju znati kada drugi smjer ima zeleno.
Micro:bitovi mogu slati kratke radio-poruke bez žice između njih.
Radio grupa
Da bi dva micro:bita mogla razgovarati, moraju imati istu radio grupu.
Par 1 ⇒ radio grupa = 41
Par 2 ⇒ radio grupa = 42
Par 3 ⇒ radio grupa = 43
Par 4 ⇒ radio grupa = 44
Samo micro:bitovi s istim brojem grupe trebaju reagirati jedni na druge. Radio grupa može imati vrijednost od 0 do 255.
Najprije testiramo radio bez semafora

Ako drugi micro:bit pokaže broj 1, radio veza radi.
Tek tada spajamo radio poruku s pravim semaforima.
Dogovor o porukama
Oba micro:bita moraju znati što svaki broj znači:
- 0 = Oba semafora su crvena
- 1 = Semafor A je crven i žut, semafor B je crven
- 2 = Semafor A je zelen, semafor B je crven
- 3 = Semafor A zeleno trepće, semafor B je crven
- 4 = Semafor A je žut, semafor B je crven
- 5 = Semafor A je crven, semafor B je crven i žut
- 6 = Semafor A je crven, semafor B je zelen
- 7 = Semafor A je crven, semafor B zeleno trepće
- 8 = Semafor A je crven, semafor B je žut
Broj 2 sam po sebi ne znači zeleno. Mi smo se dogovorili da poruka 2 znači to stanje.
Obratite pažnju: nakon poruke 4 dolazi faza u kojoj su oba semafora crvena. Ona nema svoj poseban broj jer je ista kao stanje s porukom 0, pa ćemo ponovno iskoristiti broj 0.
Najvažniji test
Za svaku radio poruku provjerimo oba modela:
- Ako Semafor A svijetli zeleno,
- Semafor B mora svijetliti crveno.
- Ako Semafor B svijetli zeleno,
- Semafor A mora svijetliti crveno.
Nijedna poruka ne smije dati zeleno svjetlo na oba semafora istovremeno.Smije li biti crveno svjetlo na oba semafora istovremeno?
Programiranje se sada radi odvojeno za svaki micro:bit.
Uloge micro:bitova nisu iste:
Jedan micro:bit diktira rad semafora, dok drugi sluša primljene poruke i ponaša se u skladu s njima.Što je funkcija?
Funkcija je skupina blokova kojoj damo ime. Kada nam zatreba, ne slažemo ponovno sve te blokove, nego samo pozovemo funkciju po imenu, blokom call.
Funkcija je kao recept: zapišemo ga jednom, a kuhamo po njemu koliko god puta želimo.
Naša funkcija zove se Svjetlo. Kada je pozovemo, damo joj tri broja, za crveno, žuto i zeleno svjetlo, istim redom kojim su svjetla na semaforu, odozgo prema dolje. Te brojeve zovemo parametri:
- 0 = svjetlo je ugašeno
- 1 = svjetlo je upaljeno
- 2 = zeleno svjetlo trepće
Na primjer, call Svjetlo 1 1 0 znači: crveno upaljeno, žuto upaljeno, zeleno ugašeno.
Zašto ovdje koristimo funkciju?
- Za svako stanje semafora moramo postaviti sva tri pina: P0, P1 i P2. Bez funkcije bismo iste blokove digital write pin slagali iznova za svako stanje.
- Program je kraći i lakše se čita. Poziv call Svjetlo 0 0 1 odmah pokazuje koje svjetlo gori, kao redak u tablici stanja.
- Ako nešto promijenimo, na primjer pin za neku boju ili brzinu treptanja, to radimo samo na jednom mjestu.
- Istu funkciju koriste oba micro:bita. Semafor A i Semafor B pale svjetla na isti način, a razlikuju se samo po tome kada je pozivaju.
Upravljački (glavni) micro:bit Semafor A:
Micro:bit koji sluša Semafor B:
Kviz 4: Radio veza
12. Što moraju imati dva micro:bita da bi mogla međusobno komunicirati radio-vezom?
13. Zašto svaki par dobiva svoju radio grupu?
14. Zašto najprije testiramo radio prikazom primljenog broja na LED ekranu?
15. Smiju li oba semafora istovremeno pokazivati zeleno?
Vježba 5: Pješački semafor na LED ekranu
Vanjski 3D-printani model pokazuje svjetla za vozila. Ugrađeni LED ekran micro:bita koristimo kao semafor za pješake.
Napravit ćemo dvije slike:
- Čovjek stoji ⇒ pješaci čekaju
- Čovjek hoda ⇒ pješaci mogu prijeći
Pješak stoji
Možeš nacrtati ovakvu sliku u show leds bloku:
. . # . .
. # # # .
. . # . .
. # . # .
. # . # .
Pješak hoda
Možeš nacrtati ovakvu sliku:
. . # . .
# # # # .
. . # . .
. # . # .
# . . # #
Ne mora izgledati potpuno isto. Važno je da se može prepoznati razlika između osobe koja stoji i osobe koja hoda.
Pravilo pješaka
Na jednom micro:bitu vrijedi:
- Ako vozila imaju zeleno:
- pješak hoda
- Ako vozila imaju zeleno koje trepće:
- pješak stoji
- Ako vozila imaju žuto:
- pješak stoji
- Ako vozila imaju crveno:
- pješak stoji
Tako jedan micro:bit upravlja s dva različita izlaza:
- Vanjske LED-ice ⇒ semafor za vozila
- LED ekran ⇒ semafor za pješake
Ako pogledaš gornje pravilo, vidjet ćeš da pješak hoda samo ako je zeleno svjetlo stalno upaljeno. To nam daje mogućnost da dodamo ovo ponašanje u naš prethodni kod (iz vježbe 4) kao poziv funkcije pjesak, i to samo u dijelu koda koji barata sa zelenim svjetlom:
- Ako je zeleno upaljeno (vrijednost 1):
- Pješak hoda
- Inače (vrijednost 0 ili 2):
- Pješak stoji.

Kviz 5: Pješački semafor
16. Što prikazuje LED ekran micro:bita u ovoj vježbi?
17. Što pješački semafor treba pokazati kada vozila istog smjera imaju zeleno?
18. Što pješački semafor može pokazati kada vozila istog smjera imaju crveno?
Vježba 6: Zvuk kao pomoć pješacima
Sada dodajemo zvuk.
Pitanje za razmišljanje:Kako osoba koja ne vidi semafor može dobiti informaciju da je sigurno prijeći cestu?
MakeCode blok play tone može pustiti ton određene visine i trajanja. Ton se zadaje frekvencijom i vremenom u milisekundama. Koristit ćemo in background opciju, kako puštanje zvuka ne bi ometalo normalan rad semafora.
Pravilo za zvuk u radionici
- Testiramo zvuk kratko.
- Ne puštamo ton bez prekida tijekom cijelog zelenog stanja.
- Kada više parova radi, zvuk testiramo na znak voditelja.
Dobar uređaj može slati poruku na više načina: svjetlom, slikom i zvukom.
Zadatak: Dodaj odgovarajuće zvukove u funkciju pjesak.

Završni izazov: Demonstracija križanja
Svaki par pokazuje jedan puni prometni ciklus.
Prije demonstracije provjerite:
- Oba semafora koriste istu radio grupu unutar para.
- Različiti parovi koriste različite radio grupe.
- Svaka LED ima svoj otpornik.
- Nijedne krokodil štipaljke se ne dodiruju.
- LED ekran je vidljiv.
- Nijedan trenutak ne daje zeleno svjetlo na oba semafora.
Potvrdite da sve radi kao na tablici stanja semafora.
Što smo naučili?
- Micro:bit može upravljati ugrađenim LED ekranom i stvarnim vanjskim LED lampicama.
- Tipke na micro:bitu mogu biti ulazi, a LED ekran i vanjske LED-ice mogu biti izlazi.
- Zeleno svjetlo može treptati stalnim uključivanjem i isključivanjem LED lampice.
- pause određuje koliko dugo program čeka.
- repeat ponavlja neku radnju određen broj puta, a forever ponavlja program stalno.
- Svaka vanjska LED lampica treba svoj otpornik.
- Crna zajednička žica našeg semafora spaja se na GND.
- Pinovi P0, P1 i P2 mogu upravljati crvenom, žutom i zelenom LED lampicom.
- Dva micro:bita mogu razmjenjivati radio-poruke kada koriste istu radio grupu.
- Različiti parovi koriste različite radio grupe da se njihovi semafori ne bi ometali.
- Radio poruke moraju imati unaprijed dogovoreno značenje.
- Semafor za pješake može se prikazati na LED ekranu micro:bita.
- Pješaci u našem modelu hodaju kada vozila istog smjera imaju stalno upaljeno zeleno svjetlo.
- Zvuk može pomoći osobama sa slabijim vidom da dobiju informaciju o promjeni stanja.
- Dva smjera križanja nikada ne smiju imati zeleno svjetlo istovremeno.



