Hrvatsko društvo za robotiku - Uvod u robotiku - vježbe

Arduino IDE detaljnije

Cilj

Naučit ćemo najosnovnije o Arduino IDE okolini.

Programi

×
Nađimo u Windows Exploreru direktorij "Documents\Arduino". U njemu ćemo pisati sve naše programe.

Jedan od poddirektorija, na slici lijevo, se zove "libraries". U njemu su biblioteke koje, u principu, ne diramo.

Biblioteke komuniciraju sa senzorima, pokreću motore i slično. Relativno su komplicirane i za početnika zbunjujuće.

Pogledajmo preostala 4 poddirektorija. Riječ je o Arduino programima.

Otvorimo direktorij "MRMS_ESP32".

Program MRMS_ESP32

×
U direktoriju su 3 vrste datoteka:
  • ".h" datoteke - "zaglavlja" C++ programa. Ovim tipom se nećemo puno baviti na početku.
  • ".cpp" datoteke - C++ funkcije. Ovdje ćemo pisati naše programe.
  • ".ino" datoteka - iako je u Arduino predviđena za pisanje programa, mi to nećemo činiti, osim na samom početku.
Ako slažete robota za praćenje linije, "mrm-robot-line.*" (zvjezdicom označavamo proizvodnji niz znakova) su datoteke s njegovim funkcijama.

Ako slažete robota za nogomet, "mrm-robot-soccer.*" su datoteke s njegovim funkcijama.

Ako slažete robota za labirint, "mrm-robot-maze.*" su datoteke s njegovim funkcijama.

Koncentrirajte se na datoteke za vašeg robota. Ostale "*.h" i "*.cpp" datoteke su za 3 druge vrste robota. Njih je moguće i obrisati, ako nećete programirati druge vrste robota. Cjelokupna programska podrška je, kako vidimo, za razne vrste robota. Nešto što možemo zahvaliti terminu "objektno programiranje".

Ako nemate otvoren Arduino IDE s MRMS_ESP32 programom, kliknite dvostruko na "MRMS_ESP32.ino" i otvorit će se radna okolina.

Biblioteke, setup() i loop()

×
Pogledajmo osnovne dijelove programa.
  • Na početku je popis biblioteka koje trebaju programu (1). Ovaj dio nikad ne diramo.
  • Linija "Robot *robot;" deklarira našeg robota. Primimo činjenicu na znanje i nikad ne mijenjajmo ovaj tekst. Zašto je linija baš ovakva, to sad nećemo proučavati. Jednostavno "robot" je naš robot.
  • "setup()" (2) je "funkcija" (skup naredbi koje nešto rade) koja se izvrši samo jednom, kad se program prvi put pokrene. Kao i za druge stvari, mi ćemo namjerno preskakati sva objašnjenja, kako bismo što prije došli do rezultata. Naknadno ćemo bolje objasniti bar najnužnije pojmove. Kad bismo sad išli u detalje, zaglibili bismo. Ugrubo, "setup()" odredi da je naš "robot" zapravo robot za praćenje linije, za nogomet ili labirint.

    Kako odaberemo robota?
    • Ako slažete robota za praćenje linije, programska linija mora izgledati ovako:
      	robot = new RobotLine((char*)"Donald"); // ...
      
    • Ako slažete robota za nogomet:
      	robot = new RobotSoccer((char*)"Donald"); // ...
      
    • Ako slažete robota za labirint:
      	robot = new RobotMaze((char*)"Donald"); // ...
      
    "Donald" je proizvoljna riječ - ime vašeg robota. Možete izabrati neku drugu, samo ne predugu. Pazite da točno izaberete robota! Inače ćete pokrenuti krivi program i neće Vam biti jasno što se događa. Umjesto "..." će u programu biti neki test (komentar).
  • Na kraju je funkcija "loop()" (3). Eto, ovo je mjesto gdje ćemo, bar na početku, programirati. "loop()" se ponavalja bez prestanka, tisuće ili milione puta, sve dok je robot uključen.
U funkciji "loop()" je jedna jedina linija, koja je nužna za rad robota. Ona šalje poruke motorima, prima poruke od senzora, proučava tipke robota, upravlja LEDovima, čita tipkovnicu i Bluetooth vezu. Kad bi se ispustila, robot bi prestao raditi išta korisno. Nemojte ju brisati i zapamtite da se mora izvršavati "često". Što to točno znači, naučit ćemo.

Primjedbe



Projekt "Uvod u robotiku" sufinanciran je iz Europskog socijalnog fonda, poziv "Jačanje kapaciteta organizacija civilnoga društva za popularizaciju STEM-a". Relevantne stranice: Sadržaj vježbe za virtualne radionice isključiva je odgovornost Hrvatskog društva za robotiku.