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

Digitalni ulaz

Cilj

Želimo ustanoviti je li pritisnuto jednostavno tipkalo, koje nam može omogućiti detekciju uhvaćene lopte, kasnije i za druge namjene.

Spajanje

×
Spojite 3.3 V pin (crveni) s bilo kojim kontaktom tipkala. Drugi kontakt spojite s pinom 27 mikrokontrolera.

Ukoliko spajate svoje prekidače, pazite da je u strujnom krugu otpornik od oko 220 Ω. Nikad ne spajajte prekidač bez otpornika je, ovisno o podignutom programu, moguće ostvariti kratki spoj i uništiti mikrokontrolersku pločicu.

Priprema

RobotLine::RobotLine(char name[]) : Robot(name) {
	...
	// Digital switches connected to ESP32 pins
	// pinMode(25, INPUT_PULLDOWN);
	// pinMode(26, INPUT_PULLDOWN);
	pinMode(27, INPUT_PULLDOWN);
	// pinMode(32, INPUT_PULLDOWN);
	// pinMode(33, INPUT_PULLDOWN);
	...
}

Na početku "mrm-robo-line.cpp" se nalazi funkcija "RobotLine". Već smo ju koristili za promjenu smjera rotacije kotača. U njoj se nalaze sve pripremne radnje, koje se pokreću kad se uključi mikrokontroler. U stručnim krugovima se zove "konstruktor".

Iskoristit ćemo ju da najavimo korištenje tipkala. Tipkalo će imati istu funkciju kao i tipkalo na displeju, koje smo koristili npr. za pokretanje robota.

Pronađimo dio u kojem su funkcije pinMode. Svaka od njih prijavljuje jedan "pin" na mikrokontroleru za korištanje s vanjskim prekidačem.

Ispred linije koja ima naveden broj 27, obrišimo komentar. Tipkalo je prijavljeno i sad ćemo ga moći koristiti kasnije u kodu.

Program

void RobotLine::loop() {
	if (digitalRead(27))
		print("Da\n\r");
	else
		print("Ne\n\r");
}

Vratimo se na našu funkciju "loop()".

digitalRead(27) je još jedna nova Arduino funkcija.

Ako je pin 27 na visokom naponu, vratit će istinu. Ako nije, laž. Pažnja, "visoki napon" je u jeziku mikrokontrolera 3.3 V! Već 5 V može oštetiti mikrokontroler.

Zadatak: pauza.

Pokrenite robota ravno naprijed. Kad pritisnete tipkalo, privremeno zaustavite motore.

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.