شِفر (کود) جستجو

درس 30/31: پیگیری خطوط Car-8 توسط خودرو هوشمند از کیت آردوینو سان‌فاندر | Robojax

درس 30/31: پیگیری خطوط Car-8 توسط خودرو هوشمند از کیت آردوینو سان‌فاندر | Robojax

این راهنما شما را در ساخت یک خودروی هوشمند دنبال‌کننده خط با استفاده از کیت آردوینو 3 در 1 سن‌فاندر هدایت می‌کند.

درس30-ردیابی-خط-1

این پروژه که در ویدیو نشان داده شده است، از یک ماجیول ردیابی خط مادون قرمز برای شناسایی یک خط سیاه بر روی یک سطح سفید استفاده می‌کند و دو موتور را کنترل می‌کند تا خودرو در مسیر بماند. این یک پروژه بنیادی در رباتیک است که شما را با خواندن سنسورها، منطق شرطی و کنترل موتورها آشنا می‌کند. ارزش واقعی آن بسیار زیاد است - این پایه‌ای برای وسایل نقلیه هدایت‌شده خودکار (AGVs) در انبارها، جاروبرقی‌های رباتیکی که لبه‌های اتاق را دنبال می‌کنند و پلتفرم‌های آموزشی برای یادگیری ناوبری خودکار است. فراتر از ساخت پایه، شما می‌توانید این مفهوم را برای:

  • ایجاد یک ربات ساده که می‌تواند در یک Maze یا در یک مسیر از یک مسیر تعریف شده حرکت کند.
  • ساخت یک کالسکه تحویل خودکار برای یک دفتر یا آزمایشگاه کوچک.
  • توسعه یک روبات دنبال‌کننده خط برای یک پروژه علمی مدرسه یا مسابقه.
  • نمونه‌سازی سیستمی برای باند نقاله صنعتی که اقلام را بر اساس موقعیت مرتب می‌کند.

سخت‌افزار و اجزا

هسته این پروژه ماجیول ردیابی خط است که از یک جفت فرستنده و گیرنده مادون قرمز (IR) استفاده می‌کند. در ادامه، تجزیه و تحلیل اجزای کلیدی را مشاهده خواهید کرد:

  • ماجیول ردیابی خط (TCRT5000):این حساس(حس کننده) نور مادون قرمز انتشار می‌دهد و شدت بازتابیده شده را اندازه‌گیری می‌کند. ماجیول شامل یک مقایسه‌گر LM393 است که سیگنال آنالوگ را به خروجی دیجیتال بالا یا پایین تبدیل می‌کند.
  • شاسی ماشین هوشمند با موتورها:کیت SunFounder شامل یک چهارچوب خودرو با دو موتور دارای دنده است که توسط آردوینو کنترل می‌شوند تا وسیله نقلیه را هدایت کنند.
  • برد آردوینو:"مغز" عملیات، خواندن حساس(حس کننده) و ارسال دستورات به موتورها.
  • راننده موتور (روی سپر خودرو)این مدار به پایه‌های کم‌مصرف آردوینو این امکان را می‌دهد که موتورهای پرجریان‌تری را کنترل کنند.
متن درس۳۰-ردیابی سیم‌کشی

راهنمای سیم‌کشی

نخ wiring برای ماجیول پیگیری خطوط ساده است. ویدئو اتصالات را به شرح زیر نشان می‌دهد (در ویدئو در ۰۴:۰۴):

  • موقعیت ردیاب خط VCC (پایه وسط):به آرنوی متصل شوید۵ ولتسوزن.
  • خط پیگیری خط زمین (پایه چپ):به آردوینو متصل شویدGNDپایه.
  • خط ردیاب خارج (پایه راست):به دیجیتال آردوینو متصل شویدپایه ۲.

موتورها به درایور موتور روی سپر خودرو متصل هستند. در شِفر (کود)، موتور راست توسط پایه‌های ۵ و ۶ و موتور چپ توسط پایه‌های ۹ و ۱۰ کنترل می‌شود، همانطور که در ویدیوی نمایش داده شده (در ویدیو در ساعت ۱۲:۲۸) نشان داده شده است.

درس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;
  • پایه‌های موتور (در1، در2، در3، در4):این ثابت‌ها مشخص می‌کنند که کدام پایه‌های آردوینو به درایور موتور متصل هستند. اگر سیم‌کشی شما متفاوت است، باید این مقادیر را تغییر دهید تا با تنظیمات شما هماهنگ شوند.
  • پایه ردیاب خط (lineTrack):این پایه دیجیتال متصل به خروجی سیگنال حساس(حس کننده) را تعریف می‌کند. شِفر (کود) این پایه را می‌خواند تا تعیین کند که آیا حساس(حس کننده) روی سطح سیاه یا سفیدی قرار دارد.

در حلقه اصلی، می‌توانید تنظیم کنید کهspeedمتغیری برای کنترل سرعت چرخش خودرو. مقدار آن از ۰ تا ۲۵۵ متغیر است، که مقدار بالاتر باعث می‌شود خودرو سریع‌تر بچرخد.

int speed = 150;//0 to 255

منطق ساده است: اگر حساس(حس کننده) بخواندHIGH(خط سیاه) خودرو به سمت چپ می‌پیچد؛ وگرنه به سمت راست می‌پیچد. توابع سفارشیmoveLeft()وmoveRight()موتورها را کنترل کنید تا به این اهداف برسید. به عنوان مثال، برای چرخش به سمت چپ، موتور راست می‌چرخد در حالی که موتور چپ متوقف می‌شود و خودرو چرخش می‌کند. این رفتار به طور دقیق در ویدیو توضیح داده شده است (در ویدیو در ۱۰:۳۹).

درس30-حساس(حس کننده) ردیابی خط روی خط
قرار دادن ردیاب خط بر روی خط سیاه. همچنین تنظیم حساسیت.

نمایش پروژه زنده

ویدیو با یک نمایش زنده از یک خودرو دنبال‌خط (در ویدیو در ۱۳:۱۳) به پایان می‌رسد. خودرو بر روی یک مسیر سیاه قرار می‌گیرد و حساس(حس کننده) به‌طور مستقیم بر روی خط قرار می‌گیرد. با حرکت خودرو، حساس(حس کننده) خط سیاه و پس‌زمینه سفید را تشخیص می‌دهد و سیگنال‌هایی به موتورها ارسال می‌کند تا جهت آن را تنظیم کنند. این نمایش نشان می‌دهد که خودرو به‌طور موفقیت‌آمیز یک دایره کامل را تکمیل می‌کند و اثربخشی منطق ساده تصحیح چپ/راست را اثبات می‌کند.

فصل‌ها

  • مقدمه‌ای بر ردیابی خط
  • [01:09] نحوه عملکرد ماجیول ردیابی خط
  • مدار مدول ردیابی خط را سیم‌کشی کنید
  • [04:23] آزمایش حساس(حس کننده) با مانیتور سری
  • [07:27] درک منطق پیروی از خط
  • شِفر (کود) برای خودروی دنبال‌کننده خط :08
  • [11:37] نمایش خودرو پیرو خط
  • آزمایش زنده در یک پیست سیاه

تصاویر

lesson30-line-tracking-wiring
lesson30-line-tracking-wiring
lesson30-line-tracking-line-1
lesson30-line-tracking-line-1
lesson30-line-tracking-how-line
lesson30-line-tracking-how-line
lesson30-line-tracking-sensor-on-line
lesson30-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);
}

منابع و مراجع

هنوز هیچ منبعی موجود نیست.

فایل‌ها📁

هیچ فایلی موجود نیست.