Tafuta Msimbo

Somo la 30/31: Ufuatiliaji wa Mstari wa Car-8 na Gari Mahiri kutoka kwa Kifurushi cha Arduino cha SunFounder | Robojax

Somo la 30/31: Ufuatiliaji wa Mstari wa Car-8 na Gari Mahiri kutoka kwa Kifurushi cha Arduino cha SunFounder | Robojax

somu-30-line-tracking-line-1

 Mradi huu, unaoonyeshwa kwenye video, unatumia moduli ya kufuatilia mstari wa infrared kugundua mstari mweusi kwenye uso mweupe na kudhibiti motors mbili kuweka gari kwenye njia. Hii ni mradi wa msingi wa robotiki unaokufundisha kuhusu kusoma sensor, mantiki ya masharti, na udhibiti wa motor. Thamani ya ulimwengu halisi ni kubwa sana—ni msingi wa magari yanayojiendesha (AGVs) katika maghala, visafishaji vya utupu vya roboti vinavyofuata kingo za chumba, na majukwaa ya elimu ya kujifunza urambazaji wa kujitegemea. Zaidi ya ujenzi wa msingi, unaweza kutumia dhana hii kwa:

  • Kuunda roboti rahisi inayoweza kusafiri njia iliyopangwa katika maze au kwenye wimbo.
  • Kujenga gari la kusafirisha kiotomatiki kwa ofisi ndogo au maabara.
  • Kuendeleza roboti inayofuata mstari kwa mradi wa shule ya sayansi au shindano.
  • Kutengeneza mfano wa mfumo wa conveyor ya viwandani inayopanga vitu kulingana na nafasi.

Vifaa na Vipengele

Kiini cha mradi huu ni moduli ya kufuatilia mstari, ambayo hutumia jozi ya transmitter na receiver ya infrared (IR). Hapa kuna maelezo ya vipengele muhimu:

  • Moduli ya Kufuatilia Mstari (TCRT5000): Sensor hii hutoa mwanga wa infrared na kupima kiwango cha mwanga kinachorejea. Moduli inajumuisha comparator ya LM393 kubadilisha ishara ya analog kuwa pato la digital HIGH au LOW.
  • Chassis ya Gari la Smart na Motors: Kit cha SunFounder kinajumuisha fremu ya gari na motors mbili za gia, ambazo zinadhibitiwa na Arduino kuendesha gari.
  • Bodi ya Arduino: "Ubongo" wa operesheni, inayosoma sensor na kutuma amri kwa motors.
  • Driver ya Motor (kwenye shield ya gari): Mzunguko huu unaruhusu pini za nguvu za chini za Arduino kudhibiti motors za juu za sasa.
somu-30-line-tracking-wiring

Mwongozo wa Wiring

Wiring ya moduli ya kufuatilia mstari ni rahisi. Video inaonyesha miunganisho kama ifuatavyo (kwenye video saa 04:04):

  • Line Tracker VCC (pini ya kati): Unganisha kwenye pini ya 5V ya Arduino.
  • Line Tracker GND (pini ya kushoto): Unganisha kwenye pini ya GND ya Arduino.
  • Line Tracker OUT (pini ya kulia): Unganisha kwenye pini ya digital 2 ya Arduino.

Motors zinaunganishwa kwenye driver ya motor kwenye shield ya gari. Katika code, motor ya kulia inadhibitiwa na pini 5 na 6, na motor ya kushoto na pini 9 na 10, kama inavyoonyeshwa kwenye video (kwenye video saa 12:28).

somu-30-line-tracking-how-line

Maelezo ya Code

Code imeundwa kusoma ishara ya digital kutoka kwa line tracker na kudhibiti motors ipasavyo. Hapa kuna sehemu muhimu zinazoweza kubadilishwa na mtumiaji:

const int in1 = 5; // in1,2 kwa motor ya kulia
const int in2 = 6;

const int in3 = 9; // in3,4 kwa motor ya kushoto
const int in4 = 10;

const int lineTrack = 2;
  • Pini za Motor (in1, in2, in3, in4): Constants hizi zinafafanua ni pini gani za Arduino zimeunganishwa kwenye driver ya motor. Ikiwa wiring yako inatofautiana, utahitaji kubadilisha maadili haya ili yalingane na usanidi wako.
  • Pini ya Line Tracker (lineTrack): Hii inafafanua pini ya digital iliyounganishwa kwenye pato la ishara la sensor. Code inasoma pini hii kuamua kama sensor iko juu ya uso mweusi au mweupe.

Katika loop kuu, unaweza kurekebisha variable ya speed kudhibiti kasi ya kugeuka ya gari. Thamani inaanzia 0 hadi 255, ambapo thamani ya juu inafanya gari kugeuka haraka.

int speed = 150;//0 hadi 255

Mantiki ni rahisi: ikiwa sensor inasoma HIGH (mstari mweusi), gari hugeuka kushoto; vinginevyo, hugeuka kulia. Kazi maalum moveLeft() na moveRight() zinadhibiti motors kufikia hili. Kwa mfano, kugeuka kushoto, motor ya kulia inazunguka wakati motor ya kushoto inasimama, ikigeuza gari. Tabia hii inaelezewa kwa undani kwenye video (kwenye video saa 10:39).

somu-30-line-tracking-sensor-on-line
Kuweka line tracker kwenye mstari mweusi. Pia kurekebisha usikivu. 

Maonyesho ya Mradi wa Moja kwa Moja

Video inahitimisha kwa maonyesho ya moja kwa moja ya gari linalofuata mstari (kwenye video saa 13:13). Gari limewekwa kwenye wimbo mweusi, na sensor imewekwa moja kwa moja juu ya mstari. Gari linaposonga, sensor inagundua mstari mweusi na mandharinyuma meupe, ikituma ishara kwa motors kurekebisha mwelekeo wake. Maonyesho yanaonyesha gari likikamilisha mzunguko mzima kwa mafanikio, ikithibitisha ufanisi wa mantiki rahisi ya kusahihisha kushoto/kulia.

Sura

  • [00:00] Utangulizi wa Ufuatiliaji wa Mstari
  • [01:09] Jinsi Moduli ya Ufuatiliaji wa Mstari Inavyofanya Kazi
  • [04:04] Kuunganisha Moduli ya Ufuatiliaji wa Mstari
  • [04:23] Kupima Sensor kwa Serial Monitor
  • [07:27] Kuelewa Mantiki ya Kufuata Mstari
  • [09:08] Msimbo wa Gari la Kufuata Mstari
  • [11:37] Maonyesho ya Gari la Kufuata Mstari
  • [13:13] Jaribio la Moja kwa Moja kwenye Wimbo Mweusi

Bilder

Lesson 30 line tracking wiring
Lesson 30 line tracking wiring
Lesson 30 line tracking line 1
Lesson 30 line tracking line 1
Lesson 30 line tracking how line
Lesson 30 line tracking how line
Lesson 30 line tracking sensor on line
Lesson 30 line tracking sensor on line
889-Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
Språk: C++

/*
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);
}

Resurser och referenser

Inga resurser än.

Filer📁

Inga filer tillgängliga.