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

Programiranje ruke

Cilj

Pokrenuti programski ruku.

Postojeće funkcije

void RobotLine::loop() {
	...
	void armCatch();
	...
}
Ruka se pokreće sljedećim funkcijama, koje možete mijenjati ili parametrizirati:
  • armCatch() - u donjem položaju, ruka je stisnula prste oko lopte,
  • armCatch() - u donjem položaju, ruka ima raširene prste,
  • armDrop() - u gornjem položaju, ruke ima raširene prste,
  • armIdle() - donjem porložaju, ruka ima potpuno uvučene prste - pozicija kad npr. robot prati liniju,
  • armUp() - u gornjem položaju, prsti oko lopte.

Parametriziranje funkcije

void RobotLine::armCatch() {
	mrm_servo->write(LIFT_SERVO_DOWN, 0); 
	mrm_servo->write(CATCH_SERVO_L_CATCH, 1);
	mrm_servo->write(CATCH_SERVO_R_CATCH, 2); 
}
Nađimo, u "mrm-robo-line.cpp", funkciju "armCatch()".

Sastoji se od 3 naredbe. Prvi parametar, ispisan velikim slovima (npr. "LIFT_SERVO_DOWN", je kut na koji se servo pozicionira.

Drugi označava o kojem se servo motoru radi. 0 - veliki servo za podizanje ruke, 1 - lijevi prsti, 2 - desni prsti.

Želimo li mijenjati pozicije servo motora, moramo mijenjati kuteve, znači ove riječi ispisane velikim slovima ("konstante").
...
#define CATCH_SERVO_L_CATCH 40
#define CATCH_SERVO_L_CLOSE 0
#define CATCH_SERVO_L_OPEN 90 
#define CATCH_SERVO_R_CATCH 60
#define CATCH_SERVO_R_CLOSE 90
#define CATCH_SERVO_R_OPEN 0
...
#define LIFT_SERVO_DOWN 130
#define LIFT_SERVO_IDLE 135
#define LIFT_SERVO_UP 230
...
}
Konstante se nalaze u "mrm-robot-line.h", blizu početka.

Npr., gornja konstatna, "LIFT_SERVO_DOWN", ima vrijednost 130 (stupnjeva).

Promijenimo li broj na 120 ili 140 stupnjeva, servo će se pomaknuti malo više gore ili dolje.

"#define" ima značenje: gdje god u programu nađeš riječ koja slijedi iza naredbe, zamijeni ju rječju koja je nakon nje. Npr.: LIFT_SERVO_DOWN zamijeni u 130.

Zadatak: hvatanje loptice.

Podesite parametre i pozivajte gornje funkcije tako da dobijete sekvencu: prsti otvoreni, loptica uhvaćena, loptica podignuta, loptica ispuštena, ruka se vratila u početni položaj.

Video

Hvatanje loptice.

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.