فهرست مطالب:

PID Line Follower Atmega328P: 4 مرحله
PID Line Follower Atmega328P: 4 مرحله

تصویری: PID Line Follower Atmega328P: 4 مرحله

تصویری: PID Line Follower Atmega328P: 4 مرحله
تصویری: Arduino Uno | Arduino Line Follower Robot with 8 Line Sensors using Multiplexer and PID Controller 2024, نوامبر
Anonim
Image
Image

معرفی

این دستورالعمل در مورد ایجاد یک دنبال کننده خط کارآمد و قابل اطمینان با کنترل PID (متناسب-انتگرال-مشتق) (ریاضی) در داخل مغز آن (Atmega328P) است.

دنبال کننده خط یک ربات مستقل است که از خط سیاه در سفید سفید یا خط سفید در منطقه سیاه پیروی می کند. ربات باید بتواند خط خاصی را تشخیص دهد و آن را دنبال کند.

بنابراین چند قسمت/مرحله برای ایجاد یک LINE FOLLOWER وجود خواهد داشت که من همه آنها را گام به گام مورد بحث قرار خواهم داد.

  1. سنسور (چشم برای دیدن خط)
  2. میکروکنترلر (مغز برای انجام برخی محاسبات)
  3. موتورها (قدرت عضلات)
  4. راننده موتور
  5. شاسی
  6. باتری (منبع انرژی)
  7. چرخ
  8. متفرقه

در اینجا ویدئوی دنبال کننده خط است

در مراحل بعدی من در مورد هر جزء در مورد جزئیات بحث خواهم کرد

مرحله 1: سنسور (چشم) QTR 8RC

سنسور (چشم) QTR 8RC
سنسور (چشم) QTR 8RC
سنسور (چشم) QTR 8RC
سنسور (چشم) QTR 8RC
سنسور (چشم) QTR 8RC
سنسور (چشم) QTR 8RC

با تشکر از Pololufor که این سنسور عالی را تولید می کند.

این ماژول یک حامل مناسب برای هشت جفت ساطع کننده و گیرنده IR (فوتوترانزیستور) به طور مساوی در فواصل 0.375 اینچ (9.525 میلی متر) است. برای استفاده از سنسور ، ابتدا باید با اعمال ولتاژ به گره خروجی (شارژ خازن) را شارژ کنید. پین OUT آن. سپس می توانید بازتابش را با برداشتن ولتاژ منبع خارجی و زمان سوز شدن ولتاژ خروجی به دلیل تجزیه نوری ترانزیستور یکپارچه ، بخوانید. زمان پوسیدگی کوتاه تر نشان دهنده بازتاب بیشتر است. این روش اندازه گیری چندین مزیت دارد ، به ویژه هنگامی که با قابلیت ماژول QTR-8RC برای خاموش کردن قدرت LED همراه است:

  • هیچ مبدل آنالوگ به دیجیتال (ADC) مورد نیاز نیست.
  • بهبود حساسیت نسبت به خروجی آنالوگ تقسیم ولتاژ
  • خواندن موازی چندین سنسور با اکثر میکروکنترلرها امکان پذیر است.
  • خواندن موازی امکان استفاده بهینه از گزینه LED power power را فراهم می کند

مشخصات فنی

  • ابعاد: 2.95 "x 0.5" x 0.125 "(بدون نصب پین هدر)
  • ولتاژ کار: 3.3-5.0 ولت
  • جریان تغذیه: 100 میلی آمپر
  • فرمت خروجی: 8 سیگنال دیجیتال سازگار با ورودی/خروجی که می توانند به عنوان یک پالس زمان دار بالا خوانده شوند
  • فاصله سنجش مطلوب: 0.125 اینچ (3 میلی متر) حداکثر فاصله سنجش توصیه شده: 0.375 اینچ (9.5 میلی متر)
  • وزن بدون پین هدر: 0.11 اونس (3.09 گرم)

رابط خروجی های QTR-8RC با خطوط ورودی/خروجی دیجیتال

ماژول QTR-8RC دارای هشت خروجی سنسور یکسان است که مانند QTI Parallax به یک خط ورودی/خروجی دیجیتالی نیاز دارد که بتواند خط خروجی را بالا ببرد و سپس زمان پوسیدگی ولتاژ خروجی را اندازه گیری کند. دنباله معمولی برای خواندن سنسور به شرح زیر است:

  1. LED های IR را روشن کنید (اختیاری).
  2. خط ورودی/خروجی را روی خروجی تنظیم کنید و آن را بالا ببرید.
  3. حداقل 10 میکرومتر اجازه دهید خروجی سنسور افزایش یابد.
  4. خط ورودی/خروجی را ورودی کنید (امپدانس بالا).
  5. زمان پايين آمدن ولتاژ را با كاهش پايين بودن خط ورود/خروج اندازه گيري كنيد.
  6. LED های IR را خاموش کنید (اختیاری).

این مراحل معمولاً می توانند به صورت موازی روی چندین خط ورودی/خروجی اجرا شوند.

با انعکاس قوی ، زمان پوسیدگی می تواند به چند ده میکرو ثانیه برسد. بدون انعکاس ، زمان پوسیدگی می تواند تا چند میلی ثانیه باشد. زمان دقیق پوسیدگی به ویژگی های خط ورودی/خروجی میکروکنترلر شما بستگی دارد. در موارد معمول (به عنوان مثال هنگامی که سعی در اندازه گیری تفاوتهای ظریف در سناریوهای با انعکاس کم ندارید) ، نتایج معنی دار می توانند در عرض 1 میلی ثانیه در دسترس باشند ، که از هر 8 سنسور نمونه برداری تا 1 کیلوهرتز را امکان پذیر می سازد. اگر نمونه برداری با فرکانس پایین کافی باشد ، می توان با خاموش کردن LED ها صرفه جویی قابل ملاحظه ای در مصرف برق انجام داد. به عنوان مثال ، اگر میزان نمونه برداری 100 هرتز قابل قبول باشد ، LED ها می توانند 90 the مواقع خاموش شده و متوسط مصرف فعلی را از 100 میلی آمپر به 10 میلی آمپر کاهش دهند.

مرحله 2: میکروکنترلر (مغز) Atmega328P

میکروکنترلر (مغز) Atmega328P
میکروکنترلر (مغز) Atmega328P
میکروکنترلر (مغز) Atmega328P
میکروکنترلر (مغز) Atmega328P

با تشکر از Atmel Corporation برای ساخت این میکروکنترلر عالی AKA Atmega328.

پارامترهای کلیدی برای ATmega328P

مقدار پارامتر

  • فلش (کیلوبایت): 32 کیلوبایت
  • تعداد پین ها: 32
  • حداکثر فرکانس عملکرد (مگاهرتز): 20 مگاهرتز
  • پردازنده: AVR 8 بیتی
  • حداکثر پین های ورودی/خروجی: 23
  • وقفه های اضافی: 24
  • SPI: 2
  • TWI (I2C): 1
  • UART: 1
  • کانال های ADC: 8
  • وضوح ADC (بیت): 10
  • SRAM (کیلوبایت): 2
  • EEPROM (بایت): 1024
  • کلاس تامین I/O: 1.8 تا 5.5
  • ولتاژ کار (Vcc): 1.8 تا 5.5
  • زمان سنج: 3

برای کسب اطلاعات بیشتر از طریق برگه اطلاعات Atmega328P بروید.

در این پروژه من از Atmega328P برای چند دلیل استفاده می کنم

  1. ارزان
  2. دارای RAM کافی برای محاسبه
  3. پین های ورودی/خروجی کافی برای این پروژه
  4. Atmega328P در آردوینو استفاده می شود…. ممکن است در تصویر و ویدیو به Arduino Uno توجه کنید اما شب هنگام من از Arduino IDE یا هر Arduino استفاده می کنم. من فقط از سخت افزار به عنوان یک صفحه واسط استفاده کرده ام. بوت لودر را پاک کرده و از USB ASP برای برنامه نویسی تراشه استفاده کرده ام.

برای برنامه نویسی تراشه از Atmel Studio 6 استفاده کرده ام

همه کد منبع در GitHub بارگیری شده و فایل test.c را بررسی کنید.

برای کامپایل این بسته شما باید The POLOLU AVR LIBRARY SETUP را بارگیری و نصب کنید پیوست ها را بررسی کنید…

من همچنین یک برنامه شماتیک و فایل هیئت مدیره توسعه Atmega328P را آپلود می کنم … شما می توانید آن را خودتان تهیه کنید…

مرحله 3: موتور و موتور راننده

موتور و راننده موتور
موتور و راننده موتور
موتور و راننده موتور
موتور و راننده موتور
موتور و راننده موتور
موتور و راننده موتور

من از موتور 350RPM 12V BO Type Geared DC به عنوان محرک استفاده کرده ام. برای کسب اطلاعات بیشتر… MOTOR LINK

من به عنوان راننده موتور از IC L293D H-bridge استفاده کرده ام.

فایل Schematic و Board را برای همین ضمیمه می کنم.

مرحله 4: شاسی و متفرقه

شاسی و متفرقه
شاسی و متفرقه
شاسی و متفرقه
شاسی و متفرقه
شاسی و متفرقه
شاسی و متفرقه

این ربات از چوب چوبی با ضخامت 6 میلی متر ساخته شده است.

توصیه شده: