Kako da napišemo program kojim omogućavamo robotu da prati crnu liniju?
Robot ima sa donje strane dva senzora. Levi senzor SL nalazi se na pinu 2, a desni senzor SR na pinu 5. To je važno da znamo koje pinove postavljamo kao ulazne. Levi motor ML je na pinu 0, a desni motor MR na pinu 1.
Kada senzori imaju vrednost 1 to znači da se nalaze iznad crne linije, a kada imaju vrednost 0, nalaze se iznad belog papira.
Na početku moramo kreirati dve varijable koje će primati ulazne vrednosti senzora. Daćemo im ime SL i SR po oznakama koje se nalaze na pločici. Algoritam koda je sledeći, kada su oba senzora iznad crne linije, robot treba da se kreće napred, kada je desni senzor iznad crne linije, a levi iznad bele površine papira, desni motor staje, a levi pokušava da vrati robota na liniju. Obrnuto, kada je levi senzor iznad crne linije, a desni iznad bele površine papira, levi motor staje, a desni se kreće.
Nakon što napravimo kod u programu koji koristite online na adresi https://www.tinkercad.com/ kliknite na strelicu pored natpisa Blocks
i odaberite Blocks+Text. Tako ćete dobiti tekst koda u programskom jeziku C++ koji sada treba selektovati i kopirati, kao što radite sa bilo kojim tekstom. Nakon toga otvorite Arduino IDE, nakon toga obrišite sve što se nalazi u polju za pisanje teksta i zalepite kod koji ste kopirali.
int SL = 0;
int SR = 0;
void setup()
{
pinMode(2, INPUT);
pinMode(5, INPUT);
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
}
void loop()
{
SL = digitalRead(2);
SR = digitalRead(5);
if (SL == 0 && SR == 0) {
analogWrite(0, 0);
analogWrite(1, 0);
}
if (SL == 1 && SR == 0) {
analogWrite(0, 0);
analogWrite(1, 255);
}
if (SL == 0 && SR == 1) {
analogWrite(0, 255);
analogWrite(1, 0);
}
if (SL == 1 && SR == 1) {
analogWrite(0, 255);
analogWrite(1, 255);
}
}
Sačuvajte kod, priključite mikrokontrolersku pločicu, podesite COM port i učitajte kod.
Нема коментара:
Постави коментар