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

While

Cilj

Ponavljajući dijelovi koda. Jedan od osnovnih elemenata izgradnje složenijeg programa.

Petlja

void RobotLine::loop() {
	go (50, 50);
	while(front() < 100){
		stop();
		noLoopWithoutThis();
	}
}

Sama funkcija "loop()" je određeni vid "petlje", dijela koda koji se ponavlja. Iako još nije, zatrebat će nam petlje unutar samih ponavljajućih funkcija.

Promotrimo kod lijevo. Prva naredba pokreće (u svakom prolasku kroz ovu ponavljajuću funkciju) robota naprijed.

Slijedi while, nova konstrukcija. Ova naredbe počinje blok naredbi, koji će slijediti između vitičastih zagrada nakon "while", koji će se izvršavati sve dok je izraz u zagradama istinit.

Izraz je "front() < 100", znači istinit je kad je prepreka naprijed na manje od 100 mm.

Između vitičastih zagrada su 2 naredbe. Prva zaustavlja motore. Robot staje ispred prepreke, npr. kad stavimo ruku ispred njega.

noLoopWithoutThis() je nova naredba. Nema veze s C++ jezikom, nego je naredba koja izmjenjuje poruke između našeg mikrokontrolera, senzora i motora. Ona se mora uvijek uključiti u lokalnu petlju. Ne učinimo li to, poruke će stati: senzori neće slati nove vrijednosti, niti će motori primati naše naredbe.

Ova naredba je cijena koju moramo platiti kad radimo lokalne petlje. Kad je naša petlja sama funkcija "loop()" ili neka druga, poruke se automatski izmjenjuju.

Lokalne petlje se gotovo uvijek mogu izbjeći u našoj okolini, ali će Vam olakšati programiranje pa ćemo ih koristiti.

Zadatak: okret na crti.

×
Rasporedite spojnice.
×
Postavite ploče.
×
Stavite robota na crtu. Neke slijedi crtu do jedne prepreke, okrene se pa slijedi do druge, itd.

3D

Na ovom linku možete pogledati 3D vizualizaciju modela i cijeloga ga otvoriti u Autodesk Fusion 360 programu.

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.