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

Daljinsko poboljšano

Cilj

Cilj vježbe je poboljšano daljinsko upravljanje.

Program

int8_t direction;

/** Custom test. The function will be called many times during the test, 
till You issue "x" menu command.
*/
void RobotLine::loop() {
	print("Start\n\r");
	direction = 0;
	end();
}

/** Generic actions, use them as templates
*/

...

void RobotLine::loop0() { // Left
	direction--; 
	loop2();
}

void RobotLine::loop1() { // Right
	direction++; 
	loop2();
}

void RobotLine::loop2() {
	print("Dir: %i", direction);
	const uint8_t MAX_DIRECTION = 5;
	const uint8_t FORWARD_SPEED = 30;
	if (direction < -MAX_DIRECTION)
		direction = -MAX_DIRECTION;
	if (direction > MAX_DIRECTION)
		direction = MAX_DIRECTION;
	uint8_t step = (127 - FORWARD_SPEED) / MAX_DIRECTION;
	go(FORWARD_SPEED + direction * step, FORWARD_SPEED - direction * step);
	end();
}

void RobotLine::loop3() { // Forward
	go(40, 40); 
	direction = 0; 
	end();
}

void RobotLine::loop4() { // Stop
	stop(); 
	direction = 0; 
	end() ;
}

void RobotLine::loop5() { // Backward
	go(-40, 40);
	direction = 0; 
	end() ;
}
Na početku je deklaracija varijable:
int8_t direction;
Radi se o "globalnoj varijabli", koja je vidljiva u cijelom programu i prenosi podatke između funkcija.

Funkcija "loop()" pokreće program.

"loop0()" skreće lijevo, "loop1()" desno.

Obje pozivaju funkciju "loop2()", koja ograničava brzinu i upravlja motorima.

"loop3()" je za ravno naprijed, "loop5()" za natrag.

"loop4()" zaustavlja robota.

App

×
Definirajte tipke.

Kako definirati tipke, možete naći u vježbi "Radio".

Tipke mogu biti:
  • lijevo ("<"),
  • desno (">") i
  • "Start".


×
Funkcije koje se pokreću:
  • "<" - "lo0",
  • ">" - "lo1" i
  • "Start" - "lo2".
Ne zaboravite pokrenuti svaki put robota tipkom "Start".

Zadatak

Oformite labirint i pokušajte ga proći što brže.

Iskušajte app "Arduino bluetooth controller", koju je izdao Giumig Apps.

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.