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

Barijera

Cilj

Korištenje svjetlosne barijere za detekciju uhvaćene lopte.

Test

×
Za test svjetlosne barijere utipkajte "bar" (1).

Pojavit će se niz brojeva između 0 i 4095 (2), koji opisuju intenzitet svjetla koji dolazi do tranzistora barijere.

Zapamtite vrijednosti kad je zraka prekinuta i kad nije.

Nađite u mrm-robot-soccer.h datoteci liniju:
#define BARRIER_MID_VALUE 1000
Umjesto "1000" upišite zbroj najveće i najmanje vrijednosti koju mjeri barijera, podijeljen s 2. Npr. ako je najniža 800, a najviša 4000, upišite (800 + 4000) / 2 = 2400.

Program

void RobotSoccer::loop() {
	if (setup())
		headingToMaintain = heading();
	go(40, 0, pidRotation->calculate(heading() - 
		headingToMaintain));
	if (barrier()){
		go(0, 0, 0);
		end();
	}
Napravimo program koji će zaustaviti robota kad ulovi loptu.

Pokrenuli smo robota u smjeru 0°, brzinom 40.

barrier() je funkcija koja vraća "true" kad je barijera prekinuta. Da bi ispravno radila, trebate upisati točnu srednju vrijednost kao konstantu BARRIER_MID_VALUE, kao što smo opisali.

Kad se to dogodi, robot stane i program se prekida.

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.