Dokumentácia

Obsah

1. Čo potrebujete
2. Hardvér
3. Softvér
4. Programovanie

S týmto návodom to dokážete!

Čo potrebujete

To je všetko!

Hardvér

Najprv musíme vyrobiť senzor, tento robot na sledovanie čiary je iba s jedným senzorom, pre senzor potrebujeme jednu prototypovaciu DPS, LED, tri piny, spájkovačku, fototranzistor a oba odpory, 150k a 1k.

Druhou vecou, ktorú musíte urobiť, je zapojenie, takže senzor na čiaru bude pripojený do GND, OUT na Analógový pin 0 na Arduino a VCC na 3,3 V na Arduino. Potom musíte pripojiť ostatné komponenty.

Pravé servo VSTUP na Digitálny pin 9

Ľavé servo VSTUP na Digitálny pin 10

IR detekčný senzor na Digitálny pin 3

Klaibračný mód ON/OFF na Digitálny pin 4

Kalibračný pin bude pripojený k tlačidlu na nasledujúcom DPS, kde budú pripojené všetky VCC (5V) a GND. Na to budete potrebovať spajkovačku, 15 pinov a káblov na spojenie všetkého dokopy.

Teraz, keď je všetko pripojené, stačí urobiť 3D tlačenú základňu a držiaky servo. Tieto časti si môžete stiahnuť kliknutím na tlačidlo nižšie.

Stiahnuť 3D modely

Ak ste ho vytlačili, musíte ho dať dokopy, ako to má vyzerať, môžete vidieť v sekcii obrázkov.

Softvér

Ak ste robili niečo s Arduinom, môžete prejsť priamo do programovacej sekcie tu. Ak ešte nie, začnite s inštaláciou Arduino IDE.

Ak ste ho nainštalovali, musíte svoju dosku nastaviť na Arduino/Genuino UNO

Teraz je všetko hotové. Stačí už len nahrať program do svojho robota sledovania čiary.

Programovanie

Najprv musíme importovať knižnice a definovať niektoré premenné, ktoré budeme potrebovať v celom našom programe:

#include <EEPROM.h>
#include <Servo.h>
Servo s1;
Servo s2;
#define senzor A0
#define IR 3
int x = 100; //pocet merani
String farba;

Teraz je tu kalibračná funkcia, ktorá kalibruje vášho robota. Ak je v kalibračnom režime, stačí ho umiestniť na čiaru a nakalibruje sa sám. Ak nie je v kalibračnom režime, bude to preskočené a robot bude pokračovať so svojími hodnotami uloženými v pamäti EEPROM.

void kalibracia() {
 int ciernaNamerana = 0;
 int bielaNamerana = 0;
 for (int k = 0; k < x; k++) {
   ciernaNamerana += analogRead(senzor);
   delay(10);
 }
 EEPROM.write(0, 0);
 EEPROM.write(0, map((ciernaNamerana / x), 0, 1023, 0, 255)); //cierna
 doprava();
 delay(500);
 zastav();
 for (int j = 0; j < x; j++) {
   bielaNamerana += analogRead(senzor);
   delay(10);
 }
 EEPROM.write(1, 0);
 EEPROM.write(1, map((bielaNamerana / x), 0, 1023, 0, 255)); //biela
 Serial.println(EEPROM.read(1));
 Serial.println(EEPROM.read(0));
 EEPROM.write(2, (EEPROM.read(1) + EEPROM.read(0)) / 2);
 Serial.println(EEPROM.read(2));
 delay(1000);
}

Teraz naprogramujeme funkcie pre pohyb nášho robota:

void dopredu () {
 s1.write(0); // dopredu
 s2.write(180); // dopredu
}
void doprava () {
 s1.write(90); // dopredu
 s2.write(180); // stoji
}
void dolava () {
 s1.write(0); // stoji
 s2.write(90); // dopredu
}
void dozadu () {
 s1.write(180); // dozadu
 s2.write(0); // dozadu
}
void zastav () {
 s1.write(90); // stoji
 s2.write(90); // stoji
}

Teraz sa potrebujeme dostať naokolo predmetu na čiare. Urobíme to nasledujúcou funkciou:

void naokolo() {
 dozadu();
 delay(100);
 doprava();
 delay(500);
 dopredu();
 delay(1000);
 dolava();
 delay(1000);
 dopredu();
 delay(800);
}

Už nám zostáva iba naprogramovať void setup()void loop():

void setup() {
 s1.attach(9);
 s2.attach(10);
 pinMode(senzor, INPUT);
 pinMode(IR, INPUT);
 delay(200);
 if (digitalRead(4) == HIGH)
   kalibracia();
}

A loop, ak sme na bielom, ideme na čiernu, ale ak sme na čiernej, potom ideme na bielu, takže sme na okraji čiary.

void loop() {
 if (map(analogRead(senzor), 0, 1023, 0, 255) > (EEPROM.read(2) + 20)) {
   farba = "cierna";
 }
 else if (map(analogRead(senzor), 0, 1023, 0, 255) < (EEPROM.read(2) + 20)) {
   farba = "biela";
 }
 if (farba == "cierna") {
   doprava();
 }
 if (farba == "biela") {
   dolava();
 }
 if (digitalRead(IR) == LOW) {
   naokolo();
 }
}

Teraz to máte naprogramované, jednoducho nahrajte do robota a je to. Tento program si môžete tiež stiahnuť nižšie. Alebo si ho môžete celý prečítať tu.

Stiahnuť program