Prepoznavanje boja

Jedan od načina rada HuskyLens kamere je i prepoznavanje boja (Color recognition). Kad je na kameri odabrana ovaj način rada, kamera može naučiti i prepoznati određenu boju.

Na prepoznavanje boja utječe ambijentalno svjetlo. Kamera može ponekad pogrešno prepoznati slične boje. Pokušajte stoga ambijentalno svjetlo držati nepromijenjenim. Dodatno, u svojim projektima preporučamo da koristite različite boje, a ne nijanse iste boje.

Zadana postavka u ovom načinu rada je učenje samo jedne boje, no to se u njezinim postavkama može promijeniti uključenjem opcije Learn Multiple.

Odabir načina rada Prepoznavanje boja

  • Uključite kameru (USB kabelom ili preko robota).
  • Pomicanjem funkcijskog tipkala u izborniku pronađite način rada prepoznavanja boja.
  • Dugim pritiskom na tipkalo uđite u njezin izbornik i pomicanjem tipkala pronađite opciju Learn Multiple. Kratkim je pritiskom odaberite.
  • Uključite opciju (kvadratić je s desne strane klizača kako je prikazano na slici) i ponovnim kratkim pritiskom na funkcijsko tipkalo završite ovaj korak. Vratite se do Save&Return i spremite promjenu. Time ste omogućili kameri da nauči više boja.

Učenje i prepoznavanje boja

Ovdje su izdvojena tri pravokutnika za korištenje u primjerima programa koji slijede. Možete koristiti i izrezane kartončiće različitih boja i oblika koje pripremite sami.

Slijedite korake za učenje boja.

1. korak

Postavite kameru u način rada za učenje boja.

Usmjerite znak plus koji se nalazi na sredini zaslona prema crvenom pravokutniku. Pojavit će se bijeli okvir. Namjestite udaljenost i kut kamere od crvenog pravokutnika tako da bijeli okvir obuhvati obojeni dio.

2. korak

Dok je znak plus usmjeren na crveni pravokutnik, pritisnite i držite pritisnuto tipkalo za učenje. Na zaslonu će se prikazati žuti okvir. Sada prilagođavajte kut i udaljenost kamere od obojenog pravokutnika kako biste omogućili učenje boje na različitim udaljenostima i pod različitim kutovima. Otpustite tipkalo za učenje. Prikazat će se poruka Click again to continue! Click other button to finish (Pritisnite ponovno za nastavak! Pritisnite drugi gumb za završetak).

3. korak

Prije kraja odbrojavanja kratko pritisnite tipkalo za učenje kako biste nastavili s učenjem boja. Dok je kamera usmjerena prema crvenom pravokutniku, bit će prikazan žuti okvir s oznakom Color:D1.

Svaki put kada kamera ponovno naiđe na istu ili sličnu boju, na zaslonu će se prikazati žuto obojeni okvir s brojčano oznakom 1 čija će veličina biti jednaka veličini prepoznatog polja boje.

4. korak

Usmjerite sada kameru prema zelenom pravokutniku i ponovite postupak učenja boje.

Nakon toga ponovite sve i s posljednjim, žutim, pravokutnikom, ali na kraju dozvolite da odbrojavanje završi ili pritisnite na funkcijsko tipkalo, kako biste završili s učenjem boja.

Svaka naučena boja će dobiti svoju brojčanu oznaku (ID). ID broj je povezan s redoslijedom naučenih boja. Ako je kamera naučila boje zadanim redoslijedom (crvena, zelena pa žuta), prilikom prepoznavanja crvene boje na zaslonu će pisati Color: ID1, prilikom prepoznavanja zelene Color: ID2, a žute Color:ID3.

Primjer: Ispis brojčane oznake naučenih boja

Izradite program kojim će se na zaslonu micro:bita ispisati brojčanu oznaku naučenih boja.

Nakon naredbe HuskyLens initialize pin until success za inicijalizaciju kamere u programu, nalazi se naredba HuskyLens switch algorithm to za način rada kamere i u njoj je parametar postavljen na prepoznavanje boje (Color recognition).

Slijedi forever petlja u kojoj se nalazi naredba HuskyLens request data once and save into the result za opažanje i pohranu podatka koji kamera detektira (u ovom slučaju boje).

Naredbom set ID to varijabli ID (koju je potrebno prethodno kreirati u kategoriji Variables) dodjeljuje se vrijednost brojčane oznake one boje koja se nalazi u središtu zaslona kamere.

Na kraju se nalazi naredba display ID za ispis vrijednosti varijable ID na zaslonu micro:bita.

Prebacite program na micro:bit opcijom Upload koja se nalazi u prostoru za upravljanje i provjeru koda. Pričekajte da se izvrši prebacivanje programa.

Smjestite micro:bit na robot i uključite robot te testirajte program.

Nakon naredbe HuskyLens initialize pin until success za inicijalizaciju kamere u programu, nalazi se naredba HuskyLens switch algorithm to za način rada kamere i u njoj je parametar postavljen na prepoznavanje boje (Color recognition).

Slijedi forever petlja u kojoj se nalazi naredba HuskyLens request data once and save into the result za opažanje i pohranu podatka koji kamera detektira (u ovom slučaju boje).

Naredbom set ID to varijabli ID (koju je potrebno prethodno kreirati u kategoriji Variables) dodjeljuje se vrijednost brojčane oznake one boje koja se nalazi u središtu zaslona kamere.

Na kraju se nalazi naredba display ID za ispis vrijednosti varijable ID na zaslonu micro:bita.

Prebacite program na micro:bit opcijom Upload koja se nalazi u prostoru za upravljanje i provjeru koda. Pričekajte da se izvrši prebacivanje programa.

Smjestite micro:bit na robot i uključite robot te testirajte program.

Prilikom izvršavanja programa uočit ćete da se na micro:bitu ispisuje -1 kada kamera ne detektira naučenu boju, stoga modificirajte program da se brojčana oznaka boje ispisuje samo onda kada kamera detektira boju, odnosno kad se u sučelju zaslona kamere prikaže okvir.

U odnosu na prethodni program dodana je jedna if then naredba kojom se u if dijelu provjerava detektira li kamera boju, a u then dijelu su smještene naredbe za dodjeljivanje vrijednosti varijabli ID i njen ispis.

Kad prebacite ovaj program na micro:bit, ispisivat će se samo brojčane oznake naučenih boja.

Primjer: Upravljanje RGB diodama robota prema prepoznatoj boji

Izradite program kojim će micro:Maqueen robot uključiti svoje RGB svjetleće diode bojom koju detektira kamerom. Kad robot “ne vidi” naučenu boju, tada neka se njegove RGB svjetleće diode isključe.

U ovom primjeru, u forever petlji, korištena je if then else naredba kojom se najprije provjerava vidi li kamera naučenu boju. Ako vidi, robot uključuje RGB svjetleće diode, inače ih isključuje. Uključenje dioda i njihova boja provjeravaju se preko brojčane oznake (ID-a) naučene boje. Ta je vrijednost pohranjena u varijabli ID naredbom set ID to u koju je ugnježđena naredba  HuskyLens get ID of frame closest to the center of screen from the result. Ako je brojčana oznaka uočene boje jednaka 1 (znate da je to crvena jer je kamera najprije nju naučila) tada robot uključuje crvena svjetla. Ako je brojčana oznaka jednaka 2, uključuje zelena svjetla, a ako je jednaka 3, žuta svjetla.

Sadržaj materijala isključiva je odgovornost Instituta za razvoj i inovativnost mladih.

Projekt je 85% financiran iz EGP financijskog mehanizma, a 15% financiran iz državnog proračuna.

Tags: