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

Prvi program

Cilj

Cilj je napisati najjednostavniji program, instalirati ga u robota, pokrenuti i zaustaviti.

Pozicija programa

×
Napišimo naš prvi program. Način na koji ćemo to učiniti nije uobičajen, ali je pravi izbor, što ćete vidjeti kasnije.

Dvostruko kliknite na datoteku:
  • ako radite robota za liniju - "mrm-robot-line.cpp" (1),
  • ako radite robota za nogomet - "mrm-robot-soccer.cpp" (1),
  • ako radite robota za labirint - "mrm-robot-maze.cpp" (1).
Ako ne znate kako doći do ekrana lijevo, pogledajte prethodne vježbe. U suštini, treba kliknuti na ikonu u gornjem, lijevom kutu i otvorit će se Explorer, kao na slici.

Sadržaj datoteke će se prikazati u prozoru ispod desne strelice. Teksta će biti podosta. Neka Vas to ne obeshrabri, ali ipak taj tekst ne dirajte.

Uočite traku odmah desno do sadržaja, u desnoj margini ekrana. Kliknete li na nju, ili ju vučete mišem, moći ćete se kretati po sadržaju datoteke.

Nađite tekst kao na slici, otprilike na 3/4 datoteke, tekst "void RobotLine::loop(){" (2). Došli ste do mjesta u kojem ćete unositi gotovo sav kod u nizu vježbi. "RobotLine" će pisati za robota za liniju. Ako radite nogometaša, pisat će "RobotSoccer". Za robota za labirint, "RobotMaze".

Eksperti,

Intellisense

×
Kliknite u prostor između 2 vitičaste zagrade. Ako nema praznog reda, pritisnite tipku "Enter".

Utipkajte "go(", bez navodnika (1). Rezultat bi trebao biti kao na slici: VS Code će dodati zatvorenu zagradu. Točnije, rezultat će biti takav za robote za liniju i labirint. Ako radite robota za nogomet, rezultat će biti malo drugačiji, kao što ćemo navesti uskoro.

Štoviše, Intellisense će dodati i opis funkcije (2).

Pogledajte dio "go(int_16_t leftSpeed, int16_t rightSpeed)". On nam kaže da ćemo nakon "go" morati otvoriti zagradu, upisati željenu brzinu lijevog motora, zarez, željenu brzinu desnog motora i zatvoriti zagradu.

To je dobra pomoć! Kad ne bi bilo Intellisense pomoćnika, morali bismo napamet znati kako izgleda funkcija za pokretanje motora.

Ako radite robota za nogomet, njegova "go()" funkcija izgleda drugačije. Intellisense će ponuditi 4 parametra: brzinu, kut gibanja, kut rotacije oko vertikalne osi i ograničenje brzine.

Kompajlirano

×
Ako radite robota za liniju ili labirint, poslušajte Intellisense, birajući obadvije brzine 50.

Ako radite nogometaša, birajte brzinu 40, kut kretanja 0 i kut rotacije 0 (prva 3 parametra tim redom). 4. ne morate upisati.

Kliknimo na Nike tipku za kompajliranje programa (1). Rezultat mora biti "SUCCESS" (2), označavajući (sintaktički) besprijekoran program.

Ako niste dobili ovu poruku, pogledajte dobro jeste li sve dobro upisali.

Podizanje

×
Uključite robota i spojite ga mikro-USB kablom na računalo.

Kliknite na desnu strelicu (1), kako biste program prebacili u robota. Program će se kompajlirati, prebaciti u robota i automatski pokrenuti.

Robot će se javiti programiranim tekstom (2).

U donjem dijelu teksta je meni - popis dijela mogućih naredbi, koje se sastoje većinom od troslovnih riječi. Primjer ispisa je za robota za liniju, ali sličan je popis i za druge vrste, nogomet i labirint.

Pogledajte i uočit ćete da postoji naredba "loo". "loo" će pokrenuti funkciju "loop", znači naš program. U ovom trenutku to nije bitno, ali znajte da je moguće imati stotine funkcija u programu, od kojih svaku možete pokrenuti svojom naredbom iz menija. "loop" je jednostavno jedna test funkcija, zapravo dosta nebitna.

Pokretanje

×
Došao je čas za pokretanje robota. Pazite, kotači će se početi okretati nakon što unesete naredbu.

Klikinte negdje u prostoru terminala, npr. u prostoru koji je omeđen crvenom linijom u prethodnoj slici. Pojavit će se kursor i moći ćete utipkati tekst: vašu naredbu robotu.

Utipkajte "loo", bez navodnika i nakon toga tipku "Enter". Robot će se javiti kratko "ok", kao na slici, i kotači će se početi okretati istom brzinom: 50 za robote za liniju i labirint, nekom izračunatom za nogometaša.

Cilj je naredbe pokrenuti robota ravno naprijed. Postoji mala mogućnost Vaš robot neće ovo postići jer je moguće da se neće svi kotači okretati u istom smjeru, koji bi pokrenuo robota prema naprijed. To sad nije bitno. Kasnije ćemo naučiti kako kontrolirati smjer rotacije pojedinog kotača.

Zaustavljanje

×
Program uvijek možemo zaustaviti pomoću prekidača za isključivanje robota i taj je način potpuno u redu.

Drugi način je koristiti naredbu "x" ("exit"). Utipkajte "x" i "Enter". Kotači će stati.

Sam program nije okončan. Program u robotu nikad ne staje, ali više ne vrši neku radnju. Opet se pojavio meni i možemo unijeti sljedeću naredbu.

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.