RCK Ruđera Boškovića - mobilna / uslužna robotika

Vježbe -Praćenje linije

Zadatak

Koristeći robota za labirint, pratite crnu liniju na bijeloj podlozi.

Priprema

Za vježbu je potrebno:
  • imati robota za labirint s napunjenom baterijom,
  • instalirati radnu okolinu na računalo (pogledajte eksternu stranicu za login i upute za instalaciju),
  • imati mikro USB kabel,
  • imati crnu liniju na bijeloj (ili bar svijetloj) podlozi.

Arena

×
Sastavimo arenu.

Ovdje je primjer MRMS modularne arene.

Moguće konstruirati i drugačiju arenu, npr. lijepljenjem izolir-banda na bijelu podlogu.

Uzmimo 20 donjih spojnica i rasporedimo ih na podlogu otprilike prema slici.
×
Pronađimo ploče kao na slici.

Položimo ih na spojnice.

Možete izabrati drugačije ploče, ali pazite da zavoji ne budu preoštri, npr. pod pravim kutom.
×
Kad podignemo program na robota, možemo ga postaviti na mjesto kao na slici, ali može i neko drugo.

Izbor robota za labirint

Uzmite robota za labirint. Radit ćemo program za njega.

Otvorite stranicu "MRMS.ino", u Arduino IDE.

Ako ju ne vidite, ili proširite ekran, tako da svi tabovi postanu vidljivi, ili kliknite na 3 točke.

Nakon toga kliknite na "MRMS.ino", kako biste datoteku otvorili u editoru.
void setup() {
	...
	robot = new RobotMaze((char*)"Two"); // RobotLine, RobotMaze, RobotMin, RobotSoccer, or Your custom robot. "My robot" is Bluetooth name.
	robot->print("Start.\n\r");
	...
}
Nađite ovaj dio koda.

Nakon riječi "new" mora biti "RobotMaze". Program koji se sprema u robota se sastoji od programa za razne robote. Na ovaj način se bira program baš za ovu vrstu robota.

"Two" je proizvoljno (ali ne predugo) ime robota. Ime se pojavljuje prilikom Bluetooth uparivanja robota s mobitelom pa je nužno da svaki robot ima drugačije ime.

Umjesto "Two", slobodno upišite "Marko", "Ivica" ili nešto drugo.

Pozicija programa

Otvorite datoteku "mrm-robot-maze.cpp" u Arduino IDE.

Ako ju ne vidite, ili proširite ekran, tako da svi tabovi postanu vidljivi, ili kliknite na 3 točke.

Nakon toga kliknite na "mrm-robot-maze.cpp", kako biste datoteku otvorili u editoru.
void RobotMaze::loop() {
	...
}
Nađite dio koda s lijeve strane. Umjesto "..." je možda upisan neki kod.

"..." je mjesto gdje ćemo uvijek upisivati kod u ovim vježbama.

Zašto pišemo program baš ovako? Piše ovdje.

Skreni lijevo

Napravimo program za praćenje linije.

Koristit ćemo reflektivni senzor podloge.

Generalna je strategija: ako lijevi fototranzistori vide liniju, ona je lijevo od robota pa treba skrenuti lijevo. Ako vide desni, treba skrenuti desno. Ako se linija izgubila, idemo ravno.

Znači, prvo: ako lijevi fototranzistor reflektivnog senzora vidi liniju, skreni lijevo.

Pokušajte upisati 2 programske linije koje izvršavaju ovu radnju.

Iskoristite ugrađene funkcije:

Skreni desno

Analogno, ako desni vidi liniju, skrenite desno.

Napišite 2 dodatne programske linije.

Idi ravno

Napokon još 2 zadnje linije: ako ne vidi crtu, neka ide naprijed.

Natjecanje

Probajte proći stazu što brže. Koristite dodatne tranzistore senzora. Ekspertni savjet: ponekad je potrebno ići natrag.

Primjedbe