Lekcija 30/31: Praćenje linije Car-8 pametnim automobilom iz SunFounder Arduino kita | Robojax
Ovaj vodič vas provodi kroz izradu pametnog automobila koji prati liniju koristeći SunFounder 3-u-1 Arduino komplet.
Projekat, prikazan u videu, koristi infracrveni modul za praćenje linije kako bi detektovao crnu liniju na bijeloj površini i kontrolisao dva motora kako bi automobil ostao na stazi. Ovo je osnovni robotički projekat koji vas uči o čitanju senzora, uslovnoj logici i kontroli motora. Vrijednost u stvarnom svijetu je ogromna—to je osnova za automatski vođena vozila (AGV) u skladištima, robotske usisivače koji prate ivice prostorija i obrazovne platforme za učenje autonomne navigacije. Osim osnovne izrade, ovaj koncept možete koristiti za:

- Kreiranje jednostavnog robota koji može navigirati unaprijed definisanom putanjom u lavirintu ili na stazi.
- Izgradnju automatizovanih kolica za dostavu u maloj kancelariji ili laboratoriji.
- Razvoj robota koji prati liniju za školski naučni projekat ili takmičenje.
- Izradu prototipa sistema za industrijsku transportnu traku koja sortira predmete na osnovu pozicije.
Hardver i komponente
Srce ovog projekta je modul za praćenje linije, koji koristi par infracrvenog (IR) predajnika i prijemnika. Evo pregleda ključnih komponenti:
- Modul za praćenje linije (TCRT5000): Ovaj senzor emituje infracrveno svjetlo i mjeri reflektovani intenzitet. Modul uključuje LM393 komparator za pretvaranje analognog signala u digitalni HIGH ili LOW izlaz.
- Šasija pametnog automobila s motorima: SunFounder komplet uključuje okvir automobila s dva zupčasta motora, koje Arduino kontroliše za upravljanje vozilom.
- Arduino ploča: "Mozak" operacije, čita senzor i šalje komande motorima.
- Draver motora (na štitu automobila): Ovo kolo omogućava Arduino pinovima male snage da kontrolišu motore veće struje.
Vodič za povezivanje
Povezivanje modula za praćenje linije je jednostavno. Video prikazuje veze na sljedeći način (u videu na 04:04):
- Line Tracker VCC (srednji pin): Spojite na Arduino 5V pin.
- Line Tracker GND (lijevi pin): Spojite na Arduino GND pin.
- Line Tracker OUT (desni pin): Spojite na Arduino digitalni pin 2.
Motori su povezani na draver motora na štitu automobila. U kodu, desni motor kontrolišu pinovi 5 i 6, a lijevi motor pinovi 9 i 10, kao što je prikazano u video demonstraciji (u videu na 12:28).
Objašnjenje koda
Kod je dizajniran da čita digitalni signal s tragača linije i u skladu s tim kontroliše motore. Evo ključnih dijelova koje korisnik može konfigurisati:
const int in1 = 5; // in1,2 za desni motor
const int in2 = 6;
const int in3 = 9; // in3,4 za lijevi motor
const int in4 = 10;
const int lineTrack = 2;
- Pinovi motora (in1, in2, in3, in4): Ove konstante definišu koji Arduino pinovi su povezani na draver motora. Ako se vaše povezivanje razlikuje, morat ćete promijeniti ove vrijednosti kako bi odgovarale vašoj postavci.
- Pin tragača linije (lineTrack): Ovo definiše digitalni pin povezan na izlaz signala senzora. Kod čita ovaj pin kako bi odredio da li je senzor iznad crne ili bijele površine.
U glavnoj petlji možete podesiti varijablu speed za kontrolu brzine okretanja automobila. Vrijednost se kreće od 0 do 255, gdje veća vrijednost čini da se automobil brže okreće.
int speed = 150;//0 do 255
Logika je jednostavna: ako senzor očita HIGH (crna linija), automobil se okreće lijevo; u suprotnom, okreće se desno. Prilagođene funkcije moveLeft() i moveRight() kontrolišu motore kako bi to postigle. Na primjer, za okretanje lijevo, desni motor se vrti dok lijevi motor stoji, okrećući automobil. Ovo ponašanje je detaljno objašnjeno u videu (u videu na 10:39).
Pozicioniranje tragača linije na crnoj liniji. Također podešavanje osjetljivosti.
Demonstracija projekta uživo
Video se završava demonstracijom uživo automobila koji prati liniju (u videu na 13:13). Automobil se postavlja na crnu stazu, a senzor se pozicionira direktno iznad linije. Dok se automobil kreće, senzor detektuje crnu liniju i bijelu pozadinu, šaljući signale motorima za prilagođavanje smjera. Demonstracija pokazuje automobil kako uspješno završava pun krug, dokazujući efikasnost jednostavne logike korekcije lijevo/desno.
Poglavlja
- [00:00] Uvod u praćenje linije
- [01:09] Kako radi modul za praćenje linije
- [04:04] Povezivanje modula za praćenje linije
- [04:23] Testiranje senzora pomoću serijskog monitora
- [07:27] Razumijevanje logike praćenja linije
- [09:08] Kod za automobil koji prati liniju
- [11:37] Demonstracija automobila koji prati liniju
- [13:13] Test uživo na crnoj stazi
/*
this is code for the tutorial: Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
YouTube video: https://www.youtube.com/watch?v=Cp2rD5RkYug
Get the code from: 📚⬇️ Download and resource page https://robojax.com/RJT613
www.robojax.com
*/
const int in1 = 5; // in1,2 for right motor
const int in2 = 6;
const int in3 = 9; // in3,4 for left motor
const int in4 = 10;
const int lineTrack = 2;
void setup() {
Serial.begin(9600);
//motor
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
//line track
pinMode(lineTrack, INPUT);
}
void loop() {
int speed = 150;//0 to 255
int lineColor = digitalRead(lineTrack); // 0:white 1:black
// Serial.println(lineColor); //print on the serial monitor
if (lineColor) {
Serial.print("Black ");
moveLeft(speed);
} else {
Serial.print("White ");
moveRight(speed);
}
}
void moveLeft(int speed) {
Serial.println("LEFT");
analogWrite(in1, 0);
analogWrite(in2, speed);
analogWrite(in3, 0);
analogWrite(in4, 0);
}
void moveRight(int speed) {
Serial.println("RIGHT");
analogWrite(in1, 0);
analogWrite(in2, 0);
analogWrite(in3, speed);
analogWrite(in4, 0);
}
Common Course Links
Common Course Files
Resursi i reference
Još nema resursa.
Datoteke📁
Nema dostupnih datoteka.