Operacija robota – IOT Projekt

Zajedno ćemo izraditi društvenu igru Operacija robota. Prije nego što krenemo sa izradom projekta, pogledajte video koji prikazuje rad gotove igre Operacija robota:

Opis projekta

Projekt operacija robota pretvara klasičnu društvenu igru Operation (https://boardgamegeek.com/boardgame/3737/operation) u novu interaktivnu igru povezanu na internet.

 

igra operacija robota
Slika 1. Društvena igra Operation (izvor: https://boardgamegeek.com/image/866354/operation)

 

Igra Operacija robota odlazi korak dalje i mlade zaljubljenike u robote i medicinu podučava motoričkim vještinama potrebnim zaoperaciju robotate ispitujenjihovu smirenost i strpljenje. Kao dodatak društvenoj igri izrađena je mobilna aplikacija putem koje seu pravlja igrom.

 


Slika 2. Fotografija projekta i mobilne aplikacije
Projekt je izrađen pomoću lako dostupnih materijala (karton i aluminijska folija), mikrokontrolera Arduino MKR1000, DF Robot zvučnika i matričnog LED ekrana. Igrači pokreću igru putem mobilne aplikacije. Cilj igre je izvaditi dijelove iz robota pomoću metalne pincete, bez doticanja otvora na robotu koji su obloženi aluminijskom folijom. Kada igrač dotakne ploču igre, zatvara se strujni krug i igra javlja da operacija nije uspjela.

Popis komponenti i alata

  1. Arduino MKR1000
  2. Matrični LED zaslon MAX7219 8x8x4
  3. DFRobot Gravity zvučnik
  4. Šaraf i matica (5x)
  5. Metalna pinceta
  6. Aluminijska folija
  7. Slika robota
  8. Kartonska kutija
  9. Mobilni uređaj (s Android ili iOS operacijskim sustavom i aplikacijom Blynk)
  10. Ljepilo
  11. Ljepljiva traka s aluminijskim slojem
  12. Škare

Izrada igre

Prvi dio projekta sastoji se od izrade „ploče za igru“. Nakon pronalaska odgovarajuće ilustracije robota na internetu, datoteka je obrađenu u alatu za obradu fotografija GIMP (https://www.gimp.org/). Time je slika postavljena na veličinu pogodnu za ispis na A4 papir i dodani su oblici koji će biti izrezani i predstavljati otvore na tijelu robota, kroz koje će se vršiti operacija.

Slika 3. Uređena ilustracija robota spremna za ispis

 

Nakon ispisa, papir je zalijepljen na karton i izrezani su otvori na robotu. Slijedilo je lijepljenje aluminijske folije na stražnju stranu ploče. Rub ploče pojačan je ljepljivom trakom s aluminijskim slojem. Na svaki od 4 kuteva i sredinu ploče dodani su šarafi s maticama koji ploču podižu od podloge, a služe i za spajanje ploče na Arduino. Od kartonske kutije napravljena je podloga za ploču s robotom i držač za ekran.

Slika 4. proces izrade ploče za igru

Drugi dio projekta sastoji se od spajanja elektroničkog sklopa, za koji je korištena ploča za prototipiranje (eng. breadboard). Na Arduino je spojen matrični LED ekran i zvučnik, te je napravljen strujni krug koji se na jednom kraju sastoji od metalne pincete, a drugi je kraj spojen na ploču obloženu aluminijskom folijom. Kada igrač dotakne rub ploče tijekom igre, zatvara se strujni krug koji se ponaša poput velikog gumba i Arduino može zabilježiti grešku igrača.

Slika 5. Shema spajanja

Mobilna aplikacija

Za izradu mobilne aplikacije korištena je IOT platforma Blynk. Mobilna aplikacija sastoji se od dva gumba koji zapisuju svoje stanje na 2 virtualna pina V1 i V2. Virtualni pinovi pružaju programeru mogućnost dijeljenja podataka između obilne aplikacije i mikrokontrolera. Aplikacija služi za pokretanje igre te za obavještavanje Arduina da je igrač uspješno obavio operaciju.

 

Slika 6. mobilna aplikacija izrađena pomoći Blynk platforme

Programski kod

Programski kod s komentarima dostupan je na kraju stranice. Ovdje su opisani specifični dijelovi programskog koda

Rad s matričnim LED ekranom

LED ekran korišten pri izradi projekta sastoji se od 4 povezana MAX7219 ekrana. Kako bi se olakšalo programiranje i upravljanje ispisom na ekran, korištena je biblioteka MD Parola (https://github.com/MajicDesigns/MD_Parola). Biblioteka pojednostavnjuje rad s navedenim ekranima i omogućuje konfiguraciju pinova i ponašanja ekrana s nekoliko jednostavnih naredbi. Za modul korišten u projektu bilo je potrebno postaviti sljedeće vrijednosti.

Nakon konfiguracije ekrana, ispis na ekran obavlja se pozivom metode displayText().

Upravljanje ispisom na ekran izvedeno je pomoću timer-a, prema uputama platforme Blynk, kako bi se osigurao nesmetan tok programa.

Rad sa zvučnikom

Zvučnik iz DF Robot seta spojen je na digitalni pin 10 i njime se upravlja preko metode buzz prikazane u nastavku.

Komunikacija s platformom Blynk

Osim obaveznih dijelova, podataka za vezu na internet i tokena za spajanje na aplikaciju Blynk, potrebno je definirati čitanje virtualnih pinova preko kojih se komunicira s mobilnom aplikacijom.

Metoda loop

Kada se sve navedeno spoji, metoda loop osim poziva run() metode za Blynk aplikaciju i timera za upravljanje ispisom na ekran, sadrži još i provjeru pincete kojom igrač vrši operaciju. U trenu kada pinceta dotiče ploču, digitalni pin 9 na koji je pinceta spojena vraća vrijednost HIGH i igra je završila.

Programski kod cijelog projekta: