كود البحث

الدرس 30/31: تتبع الخط بواسطة سيارة ذكية من مجموعة سونفاوندر أردوينو | روبوجَکس

الدرس 30/31: تتبع الخط بواسطة سيارة ذكية من مجموعة سونفاوندر أردوينو | روبوجَکس

ترشدك هذه الدليل لبناء سيارة ذكية تتبع الخطوط باستخدام مجموعة Arduino 3 في 1 من SunFounder.

درس30-تتبع الخط-الخط-1

المشروع، الذي تم عرضه في الفيديو، يستخدم وحدة تتبع خط بالأشعة تحت الحمراء لاكتشاف خط أسود على سطح أبيض والتحكم في محركين للحفاظ على السيارة على المسار. هذا مشروع روبوتات أساسي يعلمك كيفية قراءة المستشعرات، والمنطق الشرطي، والتحكم في المحركات. القيمة الواقعية هائلة - فهي أساس للسيارات المُوجهة الآلية (AGVs) في المستودعات، ومكانس كهربائية روبوتية تتبع حواف الغرف، ومنصات تعليمية للتعلم عن الملاحة الذاتية. بالإضافة إلى البناء الأساسي، يمكنك استخدام هذا المفهوم لـ:

  • إنشاء روبوت بسيط يمكنه التنقل في مسار محدد مسبقًا في متاهة أو على مسار.
  • بناء عربة توصيل آلية لمكتب صغير أو مختبر.
  • تطوير روبوت يتبع الخط لمشروع علمي مدرسي أو مسابقة.
  • تصميم نموذج أولي لنظام حزام ناقل صناعي يقوم بفرز العناصر بناءً على الموقع.

الأجهزة والمكونات

جوهر هذا المشروع هو وحدة تتبع الخط، والتي تستخدم زوجًا من المرسل والمستقبل بالأشعة تحت الحمراء (IR). إليك تحليل للمكونات الرئيسية:

  • وحدة تتبع الخط (TCRT5000):يقوم هذا المستشعر بإصدار ضوء تحت الأحمر ويقيس شدة الانعكاس. يتضمن الوحدة مقياس LM393 لتحويل الإشارة التناظرية إلى إخراج رقمي عالي أو منخفض.
  • هيكل السيارة الذكية مع المحركات:تتضمن مجموعة SunFounder إطار سيارة مزودًا بمحركين مسننين، يتم التحكم بهما بواسطة Arduino لتوجيه المركبة.
  • لوحة أردوينو:"دماغ" العملية، قراءة المستشعر وإرسال الأوامر إلى المحركات.
  • سائق المحرك (على درع السيارة):تسمح هذه الدائرة بدبابيس الطاقة المنخفضة للاردوينو بالتحكم في المحركات ذات التيار العالي.
درس30-تتبع الخطوط-الأسلاك

دليل الأسلاك

توصيلات وحدة تتبع الخط بسيطة. يظهر الفيديو الاتصالات كما يلي (في الفيديو عند 04:04):

  • موصل خط VCC (الدبوس الأوسط):الاتصال بـ Arduino5 فولتدبوس.
  • مسار الخط GND (الطرف الأيسر):اتصل بـ ArduinoGNDدبوس.
  • خارج مسار الخط (الدبوس الأيمن):اتصل بالرقمي على لوحة الأردوينودبوس 2.

المحركات متصلة بوحدة التحكم في المحرك على درع السيارة. في الكود، يتم التحكم في المحرك الأيمن بواسطة الدبابيس 5 و 6، والمحرك الأيسر بواسطة الدبابيس 9 و 10، كما هو موضح في عرض الفيديو (في الفيديو عند 12:28).

درس30-تتبع الخط-كيف الخط

شرح الكود

الكود مصمم لقراءة الإشارة الرقمية من متتبع الخط والتحكم في المحركات وفقًا لذلك. إليك الأجزاء الرئيسية القابلة للتكوين من قبل المستخدم:

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;
  • أطراف المحرك (in1، in2، in3، in4):تحدد هذه الثوابت أي دبابيس من أرduino متصلة بجهاز قيادة المحرك. إذا كان توصيلك مختلفًا، ستحتاج إلى تغيير هذه القيم لتناسب إعدادك.
  • دبوس متتبع الخط (lineTrack):يحدد هذا الدبوس الرقمي المتصل بمخرج إشارة المستشعر. يقوم الكود بقراءة هذا الدبوس لتحديد ما إذا كان المستشعر فوق سطح أسود أو أبيض.

في الحلقة الرئيسية، يمكنك ضبط الspeedمتغير للتحكم في سرعة دوران السيارة. تتراوح القيمة من 0 إلى 255، حيث تجعل القيمة الأعلى السيارة تدور بشكل أسرع.

int speed = 150;//0 to 255

المنطق بسيط: إذا كانت الحساسات تقرأHIGH(خط أسود)، السيارة تنحرف يسارًا؛ خلاف ذلك، تنحرف يمينًا. الوظائف المخصصةmoveLeft()وmoveRight()تحكم في المحركات لتحقيق ذلك. على سبيل المثال، للدوران نحو اليسار، يدور المحرك الأيمن بينما يتوقف المحرك الأيسر، مما يجعل السيارة تدور. يتم شرح هذا السلوك بالتفصيل في الفيديو (في الفيديو عند 10:39).

درس30 - مستشعر تتبع الخط على الخط
تحديد موضع جهاز تتبع الخط على الخط الأسود. أيضاً ضبط الحساسية.

عرض المشروع الحي

تنتهي الفيديو بعرض مباشر لسيارة تتبع الخط (في الفيديو عند 13:13). يتم وضع السيارة على مسار أسود، ويتم وضع المستشعر مباشرة فوق الخط. بينما تتحرك السيارة، يكتشف المستشعر الخط الأسود والخلفية البيضاء، مما يرسل إشارات إلى المحركات لضبط اتجاهها. يُظهر العرض نجاح السيارة في إكمال دائرة كاملة، مما يثبت فعالية منطق التصحيح البسيط لليسار/اليمين.

الفصول

  • مقدمة في تتبع الخط
  • كيف يعمل نموذج تتبع الخط
  • توصيل وحدة تتبع الخط
  • اختبار المستشعر باستخدام شاشة السيريال :23
  • [07:27] فهم منطق تتبع الخط
  • [09:08] شيفرة سيارة تتبع الخط
  • [11:37] عرض سيارة اتباع الخطوط
  • اختبار مباشر على مسار أسود

الصور

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
اللغة: 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);
}

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

لا توجد ملفات متاحة.