Prepoznavanje oznaka

Funkcijom prepoznavanja oznaka (u daljnjem tekstu tagova) HuskyLens kamera može prepoznati i naučiti takozvane April tagove (AprilTags). Inače je prepoznavanje tagova vrlo korisna metoda standardiziranog označavanja i identificiranja dobara. Postoje različite vrste tagova, a u svakodnevnici se najčešće susrećete s bar kodovima i QR kodovima.

Ova kamera može prepoznati samo April tagove. Više primjera tih tagova možete pronaći i preuzeti na poveznici: bit.ly/3B31rpI.

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

Odabir načina rada prepoznavanje tagova

  • Uključite kameru (USB kabelom ili preko robota).
  • Pomicanjem funkcijskog tipkala u izborniku pronađite funkciju prepoznavanje tagova (Tag Recognition).
  • Dugim pritiskom na tipkalo uđite u njezin izbornik i pomicanjem tipkala pronađite opciju Learn Multiple. Kratkim je pritiskom odaberite.
  • Uključite opciju 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 tagova.

Učenje i prepoznavanje tagova

Za proučavanje rada ovog načina rada kamere te za izradu programa iz primjera u nastavku, koristite tri izdvojena taga.

Slijedite korake za učenje ovih oznaka.

1. korak

Usmjerite znak plus prema prvom tagu.

Kada kamera prepozna tag, automatski će ga na zaslonu označiti bijelim okvirom.

2. korak

Dok je znak plus usmjeren prema prvom tagu, pritisnite tipkalo za učenje.

Na zaslonu kamere će se prikazati žuti okvir s nazivom Tag:ID1, što znači da kamera uči taj tag.

3. korak

Otpustite tipkalo za učenje. Prikazati će se poruka Click again to continue! Click other button to finish (Pritisnite ponovno za nastavak! Pritisnite drugi gumb za završetak).

Prije kraja odbrojavanja kratko pritisnite tipkalo za učenje da možete nastaviti s učenjem tagova.

Usmjerite sada kameru prema drugom tagu i ponovite postupak učenja.

Ponovite na kraju učenje i za treći tag te dozvolite da odbrojavanje završi ili ga završite pritiskom na funkcijsko tipkalo.

Kada naiđete na naučeni tag, na zaslonu će se prikazati obojeni okviri s brojčanim oznakama. Veličina okvira mijenja se s veličinom taga, a okviri automatski prate tagove.

Primjer: Brojanje naučenog taga

Za testiranje programa primjera u nastavku, prethodno naučeni tagovi su raspoređeni u tablici.

Izradite program kojim će se na zaslonu micro:bita ispisati ukupan broj detektiranih tagova brojčane oznake 1 kada se pritisne tipkalo A na micro:bitu.

Taj broj se mijenja ovisno o tome koliko tagova s brojčanom oznakom 1 kamera odjednom vidi. U tablici ih ima ukupno 4 i ako ih kamerom sve obuhvatite, pritiskom na tipkalo A ispisat će se broj 4.

Na početku programa nalazi se naredba HuskyLens initialize pin until success za inicijalizaciju kamere. Zatim slijedi naredba HuskyLens switch algorithm to kojom je definirano da kamera radi u načinu rada prepoznavanje tagova (Tag recognition).

U forever petlji nalaze se naredbe wait until A button pressed kojima se u programu čeka pritisak na tipkalo A. Nakon toga slijedi naredba HuskyLens request data once and save into the result za opažanje i pohranu podatka koji kamera detektira (u ovom slučaju tagova).

U varijablu Tag1 (prethodno kreiranu u kategoriji Variables) tada će se pohraniti ukupan broj tagova s brojčanom oznakom 1, a zatim se taj broj ispisuje na zaslonu micro:bita.

Primjer: Samoposlužna blagajna

Izradite program u kojem ćete robota pretvoriti u samoposlužnu blagajnu. Tri prethodno naučena taga neka se odnose na tri proizvoda i njihovu cijenu. Robot će ih skenirati kamerom te pritom kratko zasvijetliti te popratiti zvučnim signalom. Na kraju neka se ukupna cijena prikaže na zaslonu kamere pritiskom na tipkalo A na micro:bitu. Dodajte i naredbe za resetiranje programa tako da kad pritisnete na oba tipkala istovremeno (A+B), postavite cijenu na nulu i time pripremite blagajnu za novo skeniranje.

Za ovaj program kreirano je ukupno sedam varijabli. Varijable Cijena1, Cijena2 i Cijena3 su glavne varijable i odnose se na tagove i u njima je pohranjena cijena proizvoda. Varijable Skenirano1, Skenirano2 i Skenirano3 su pomoćne varijable koje u programu služe za kontroliranje zbrajanja cijena prilikom skeniranja proizvoda (da se prilikom jednog skeniranja cijena proizvoda zbroji samo jednom). One su na početku programa postavljene na nulu. Varijabla Ukupno se odnosi na zbroj cijena svih skeniranih proizvoda.

U glavnom dijelu programa, u forever petlji nalazi se najprije naredba kojom kamera javlja micro:bitu koji je tag detektirala. Nakon toga slijede tri if then else naredbe kojima se provjerava o kojem se točno tagu radi te ovisno o tome uvećava se ukupna cijena. Pritom se izvršava i posebno kreiran blok naredbi Skeniraj kojim robot uključuje RGB svjetleće diode plavom bojom, kratko odsvira zvučni signal i isključuje diode.

U bloku naredbe koji se izvršava pritiskom na tipkalo A dodane su naredbe za prikaz teksta na zaslonu kamere. Kad se tipkalo pritisne ispisat će se tekst “Ukupno:”, zatim zbrojena cijena svih proizvoda (vrijednost varijable Ukupno) te tekst “EUR”. Pozicija ispisa teksta na zaslonu se regulira u parametrima x i y. Nakon 5 sekundi tekst se briše sa zaslona.

U bloku naredbe koji se izvršava pritiskom na oba tipkala istovremeno nalaze se naredbe koje varijable Ukupno, Skenirano1, Skenirano2 i Skenirano3 u programu postavljaju na nulu i time se program resetira te se spreman za skeniranje nove skupine proizvoda.

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: