فهرست مطالب:

ربات خط پیشرفته: 22 مرحله (همراه با تصاویر)
ربات خط پیشرفته: 22 مرحله (همراه با تصاویر)

تصویری: ربات خط پیشرفته: 22 مرحله (همراه با تصاویر)

تصویری: ربات خط پیشرفته: 22 مرحله (همراه با تصاویر)
تصویری: 😉 وقتی شوهرش سرکاره، ربات مرد تمام خواسته های زن را برآورده می کند 2024, نوامبر
Anonim
Image
Image
نمونه سازی - تخته چوبی
نمونه سازی - تخته چوبی

این یک ربات پیشرفته است که بر اساس Teensy 3.6 و سنسور خط QTRX ساخته شده است و من مدتهاست روی آن کار می کنم. برخی از پیشرفتهای عمده در طراحی و عملکرد ربات قبلی من در پی ربات وجود دارد. سرعت و پاسخ ربات بهبود یافته است. ساختار کلی جمع و جور و سبک است. اجزاء نزدیک محور چرخ قرار گرفته اند تا حرکت زاویه ای را به حداقل برسانند. موتورهای دنده ای میکرو فلزی با قدرت بالا گشتاور کافی را فراهم می کند و چرخ های سیلیکونی توپی آلومینیومی کشش بسیار مورد نیاز را در سرعت های بالا ارائه می دهند. محافظ محافظ و رمزگذار چرخ ، روبات را قادر می سازد موقعیت و جهت خود را تعیین کند. با نصب Teensyview روی صفحه ، همه اطلاعات مربوطه را می توان تجسم کرد و پارامترهای مهم برنامه را می توان با استفاده از دکمه های فشار به روز کرد.

برای شروع ساخت این ربات ، به لوازم زیر نیاز دارید (و زمان و حوصله زیادی در اختیار شماست).

تدارکات

الکترونیک

  • هیئت توسعه Teensy 3.6
  • Prop Shield با سنسورهای حرکت
  • Sparkfun TeensyView
  • آرایه حسگر بازتاب Pololu QTRX-MD-16A
  • نمونه اولیه PCB دو طرفه 15x20 سانتی متر
  • Pololu Step-Up/Step-Down Voltage Regulator S9V11F3S5
  • Pololu تنظیم کننده 4-5-20V تنظیم کننده ولتاژ افزایش U3V70A
  • MP12 6V 1580 دور در دقیقه موتور میکرو دنده با رمزگذار (x2)
  • DRV8833 دو موتور حامل راننده (x2)
  • باتری 3.7 ولت ، 750 میلی آمپر ساعت Li-Po
  • کلید روشن/خاموش
  • خازن الکترولیتی 470uF
  • خازن الکترولیتی 1000uF (x2)
  • خازن سرامیکی 0.1uF (x5)
  • دکمه های فشار (x3)
  • LED سبز 10 میلی متری (x2)

سخت افزار

  • چرخ سیلیکون اتم 37x34mm (x2)
  • کاستور توپ Pololu با توپ فلزی 3/8 اینچی
  • سوار موتور N20 (x2)
  • پیچ و مهره

کابل ها و اتصالات

  • سیم های انعطاف پذیر 24AWG
  • خروجی 24 پین FFC به DIP و کابل FFC (نوع A ، طول 150 میلی متر)
  • سربرگ پین زنانه گرد
  • سربرگ پین زنانه ترمینال بلند
  • سرصفحه زن دو ردیف راست گوشه
  • سرصفحه مرد دو ردیف راست گوشه
  • هدر پین مردانه
  • سربرگ سوزن مردانه

ابزارها

  • مولتی متر
  • آهن لحیم کاری
  • سیم لحیم کاری
  • استریپر سیمی
  • سیم چین

مرحله 1: مرور سیستم ها

همانطور که در طراحی قبلی من برای یک ربات خود متعادل ، این ربات مجموعه ای از تخته های شکست است که بر روی یک تخته چوبی نصب شده است و همچنین به منظور یک سازه عمل می کند.

سیستم های اصلی این ربات در زیر شرح داده شده است.

میکروکنترلر: برد توسعه Teensy 3.6 با پردازنده 32 بیتی 180 مگاهرتز ARM Cortex-M4.

سنسور خط: آرایه سنسور خط خروجی آنالوگ QTRX-MD-16A Pololu با چگالی متوسط (گام حسگر 8 میلی متری).

درایو: 6 ولت ، 1580 دور در دقیقه ، موتورهای دنده فلزی میکرو با قدرت بالا با رمزگذار چرخ مغناطیسی و چرخ های سیلیکونی نصب شده روی هاب های آلومینیومی.

کیلومتر سنجی: زوج رمزگذار چرخ مغناطیسی برای تخمین مختصات و مسافت طی شده.

سنسور جهت گیری: سپر محافظ با سنسورهای حرکت برای برآورد موقعیت و هدایت ربات.

منبع تغذیه: 3.7V ، باتری لیپو 750mAh به عنوان منبع تغذیه. تنظیم کننده 3.3 ولت بالا/پایین میکروکنترلر ، سنسورها و دستگاه نمایشگر را فعال می کند. تنظیم کننده گام به گام قابل تنظیم دو موتور را تغذیه می کند.

رابط کاربری: Teensyview برای نمایش اطلاعات. شکست سه دکمه ای برای پذیرش ورودی های کاربر. دو عدد LED سبز با قطر 10 میلی متر برای نشان دادن وضعیت هنگام کار.

مرحله 2: بیایید نمونه سازی را شروع کنیم

Image
Image

ما مدار فوق را روی تخته چوبی اجرا می کنیم. ما باید ابتدا صفحات شکست خود را با لحیم سرصفحه روی آنها آماده نگه داریم. این ویدئو ایده ای را در مورد اینکه کدام سرصفحه ها باید روی کدام تخته های شکست بچسبانند ارائه می دهد.

بعد از لحیم کاری سرصفحه ها روی تخته های شکست ، Teensyview و Breakout را فشار دهید و روی Teensy قرار دهید.

مرحله 3: نمونه سازی اولیه - Perfboard

نمونه سازی - تخته چوبی
نمونه سازی - تخته چوبی

نمونه اولیه پرفورپد دو طرفه 15x20 سانتی متر را بردارید و همانطور که در تصویر نشان داده شده ، مرز را با نشانگر دائمی مشخص کنید. سوراخ هایی با اندازه M2 برای نصب آرایه سنسور ، چرخ دنده و چرخ دنده های فلزی میکرو در مکان هایی که با دایره سفید مشخص شده اند ، ایجاد کنید. بعداً بعد از لحیم کاری و آزمایش همه اجزا ، تخته چوبی را در امتداد مرز برش می دهیم.

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

مرحله 4: نمونه سازی - Prop Shield

نمونه سازی - Prop Shield
نمونه سازی - Prop Shield
نمونه سازی - Prop Shield
نمونه سازی - Prop Shield
نمونه سازی - Prop Shield
نمونه سازی - Prop Shield
نمونه سازی - Prop Shield
نمونه سازی - Prop Shield

ابتدا اتصالات را به محافظ محافظ لحیم می کنیم. از آنجا که ما فقط از سنسورهای حرکتی سپر محافظ استفاده می کنیم ، باید فقط پین های SCL ، SDA و IRQ را جدا از پین های 3 ولت و پایه محافظ متصل کنیم.

پس از اتمام اتصال ، Teensy and prop shield را وارد کرده و با دنبال کردن مراحل ذکر شده در اینجا ، سنسورهای حرکت را کالیبره کنید.

مرحله 5: نمونه سازی - قدرت و زمین

نمونه سازی - قدرت و زمین
نمونه سازی - قدرت و زمین

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

  • ولتاژ خروجی Li-po (معمولاً بین 3 ولت و 4.2 ولت)
  • ولتاژ خروجی تنظیم کننده بالا/پایین (3.3V)
  • ولتاژ خروجی تنظیم کننده قابل تنظیم (روی 6 ولت تنظیم شده است)

مرحله 6: نمونه سازی اولیه - حامل درایور موتور

نمونه سازی - حامل راننده موتور
نمونه سازی - حامل راننده موتور
نمونه سازی - حامل راننده موتور
نمونه سازی - حامل راننده موتور
نمونه سازی - حامل راننده موتور
نمونه سازی - حامل راننده موتور

برد حمل کننده راننده دو موتوره DRV8833 می تواند جریان پیک 1.2A و 2A را در هر کانال ارائه دهد. ما دو کانال را به طور موازی به هم متصل می کنیم تا یک موتور را هدایت کنیم. با انجام مراحل زیر اتصالات را لحیم کنید.

  • موازی دو ورودی و دو خروجی حامل راننده موتور را در تصویر نشان دهید.
  • سیمهای کنترل ورودی را به درایور موتور وصل کنید.
  • یک خازن الکترولیتی 1000uF و یک خازن سرامیکی 0.1uF را در پایانه های Vin و Gnd دو تخته حامل وصل کنید.
  • یک خازن سرامیکی 0.1uF را در پایانه های خروجی درایور موتور وصل کنید.

مرحله 7: نمونه سازی - سرآیند آرایه سنسور خط

نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط
نمونه سازی - سرصفحه آرایه سنسور خط

Teensy 3.6 دارای دو ADC است - ADC0 و ADC1 که در 25 پین قابل دسترسی چند برابر شده اند. ما می توانیم به دو پین از دو ADC به طور همزمان دسترسی داشته باشیم. ما هشت سنسور خط را به ADC0 و ADC1 متصل می کنیم. سنسورهای عدد زوج به ADC1 و سنسورهای عدد فرد به ADC0 متصل می شوند. با انجام مراحل زیر اتصالات را لحیم کنید. بعداً سنسور خط را با استفاده از FFC به آداپتور و کابل DIP وصل می کنیم.

  • تمام پین های حسگر (16 ، 14 ، 12 ، 10 ، 8 ، 6 ، 4 ، 2) را مطابق تصویر متصل کنید. سیم را برای اتصال سنسور سنسور 12 از طریق قسمت پشتی تخته ورودی مسیریابی کنید.
  • پین کنترل کننده امیتر (EVEN) را به پین Teensy 30 وصل کنید.
  • همه پین های سنسور فرد (15 ، 13 ، 11 ، 9 ، 7 ، 5 ، 3 ، 1) را مطابق تصویر متصل کنید.
  • یک خازن الکترولیتی 470uF را در Vcc و Gnd وصل کنید.

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

مرحله 8: نمونه سازی اولیه - Micro Gear Motor and Encoder

نمونه سازی - Micro Gear Motor and Encoder
نمونه سازی - Micro Gear Motor and Encoder
  • با استفاده از پایه های موتور N20 ، موتور چرخ دنده فلزی را با رمزگذار ثابت کنید.
  • همانطور که در تصویر نشان داده شده است موتور و سیم های رمزگذار را وصل کنید.
  • رمزگذار چپ - پین های نوجوان 4 و 0
  • رمزگذار راست - پین های نوجوانان 9 و 27

مرحله 9: نمونه سازی - LED ها

نمونه سازی - LED ها
نمونه سازی - LED ها
نمونه سازی - LED ها
نمونه سازی - LED ها

دو LED نشان می دهد که آیا روبات چرخشی را تشخیص داده است یا خیر. من برای اتصال LED ها به Teensy از مقاومت سری 470 اهم استفاده کرده ام.

  • آند LED سمت چپ به Teensy pin 6
  • آند LED سمت راست به Teensy pin 8

مرحله 10: نمونه سازی اولیه - شکست

Image
Image
نمونه سازی - برک آوت
نمونه سازی - برک آوت

اکنون که تمام لحیم کاری خود را بر روی تخته چوبی انجام داده ایم ، می توانیم در امتداد مرز مشخص شده روی تخته چوبی با دقت برش داده و تکه های اضافی تخته چوبی را حذف کنیم. همچنین دو چرخ و چرخ دنده را وصل کنید.

همه تخته های شکست را در سوکت های مربوطه وارد کنید. برای قرار دادن شکست FFC-DIP و تعمیر سنسور خط QTRX-MD-16A ، به فیلم مراجعه کنید.

مرحله 11: مرور کتابخانه های نرم افزاری

مروری بر کتابخانه های نرم افزاری
مروری بر کتابخانه های نرم افزاری

ما Teensy را در Arduino IDE برنامه ریزی می کنیم. قبل از شروع به برخی کتابخانه ها نیاز داریم. کتابخانه های مورد استفاده ما عبارتند از:

  • رمزگذار
  • Teensyview
  • EEPROM
  • ADC
  • NXPMotionSense

و برخی که به طور خاص برای این ربات نوشته شده است ،

  • دکمه فشاری
  • سنسور خط
  • منوی Teensyview
  • موتورها

کتابخانه های خاص این ربات به تفصیل مورد بحث قرار گرفته و در مراحل بعدی برای بارگیری در دسترس هستند.

مرحله 12: کتابخانه ها توضیح داده می شوند - دکمه PushButton

این کتابخانه برای ارتباط با صفحه شکست دکمه فشاری با Teensy است. توابع مورد استفاده عبارتند از

PushButton (int leftButtonPin ، int centreButtonPin ، int rightButtonPin) ؛

فراخوانی این سازنده با ایجاد یک شی ، پین های دکمه را در حالت INPUT_PULLUP پیکربندی می کند.

int8_t waitForButtonPress (باطل) ؛

این عملکرد منتظر می ماند تا دکمه ای فشار داده شده و رها شود و کد کلید را باز می گرداند.

int8_t getSingleButtonPress (باطل) ؛

این عملکرد بررسی می کند که آیا دکمه ای فشار داده شده یا آزاد شده است یا خیر. اگر بله ، کد اصلی را برمی گرداند در غیر این صورت صفر برمی گردد.

مرحله 13: توضیح کتابخانه ها - سنسور خط

LineSensor کتابخانه ای برای ارتباط آرایه سنسور خط با Teensy است. در زیر توابع مورد استفاده است.

سنسور خط (خالی) ؛

فراخوانی این سازنده با ایجاد یک شی ، ADC0 و ADC1 را اولیه می کند ، آستانه ، حداقل و حداکثر مقادیر را از EEPROM می خواند و پایه های سنسور را در حالت ورودی و پین کنترل emitter را در حالت خروجی پیکربندی می کند.

void calibrate (uint8_t calibrationMode) ؛

این عملکرد سنسورهای خط را کالیبره می کند. حالت کالیبراسیون می تواند MIN_MAX یا MEDIAN_FILTER باشد. این تابع در مرحله بعد به تفصیل توضیح داده شده است.

void getSensorsAnalog (uint16_t *sensorValue ، حالت uint8_t) ؛

آرایه حسگر را در هر یک از سه حالت خوانده شده به عنوان آرگومان می خواند. حالت حالت ساطع کننده ها است و می تواند ON ، OFF یا TOGGLE باشد. حالت TOGGLE بازخورد سنسور ناشی از نور محیط را جبران می کند. سنسورهای متصل به ADC0 و ADC1 همزمان خوانده می شوند.

int getLinePosition (uint16_t *sensorValue) ؛

موقعیت آرایه حسگر روی خط را با روش میانگین وزنی محاسبه می کند.

uint16_t getSensorsBinary (uint16_t *sensorValue) ؛

یک نمایش 16 بیتی از وضعیت سنسورها را برمی گرداند. یک دودویی نشان می دهد که سنسور بیش از خط است و صفر دودویی نشان می دهد که سنسور از خط خارج شده است.

uint8_t countBinary (uint16_t binaryValue) ؛

با ارسال نمایش 16 بیتی مقادیر سنسور به این تابع ، تعداد سنسورهایی که از خط خارج هستند برمی گردد.

void getSensorsNormalized (uint16_t *sensorValue ، حالت uint8_t) ؛

مقادیر سنسور را می خواند و هر مقدار سنسور را به مقادیر حداقل و حداکثر مربوطه محدود می کند. سپس مقادیر سنسور از محدوده حداقل تا حداکثر محدوده 0 تا 1000 ترسیم می شود.

مرحله 14: توضیح کتابخانه ها - TeensyviewMenu

TeensyviewMenu کتابخانه ای است که در آن می توان به توابع منوی صفحه دسترسی داشت. در زیر توابع مورد استفاده است.

TeensyViewMenu (باطل) ؛

فراخوانی این سازنده یک شیء از کلاس LineSensor ، PushButton و TeensyView ایجاد می کند.

void intro (باطل)؛

این برای حرکت در منو است.

آزمون خلاء (باطل) ؛

هنگامی که مقادیر سنسور خط قرار است در Teensyview برای آزمایش نمایش داده شود ، در داخل منو نامیده می شود.

مرحله 15: توضیح کتابخانه ها - موتورها

موتورز کتابخانه ای است که برای رانندگی دو موتور مورد استفاده قرار می گیرد. در زیر توابع مورد استفاده است.

موتورها (خالی) ؛

فراخوانی این سازنده با ایجاد یک شی ، کنترل جهت موتور و پین های کنترل PWM را به حالت خروجی پیکربندی می کند.

void setSpeed (int leftMotorSpeed ، int rightMotorSpeed) ؛

فراخوانی این تابع دو موتور را با سرعتی که به عنوان آرگومان منتقل می شود ، هدایت می کند. مقدار سرعت می تواند از -255 تا +255 متغیر باشد و یک علامت منفی نشان می دهد که جهت چرخش معکوس است.

مرحله 16: آزمایش - راه سنجی رمزگذار

ما رمزگذارهای چرخ مغناطیسی را آزمایش کرده و موقعیت و مسافت طی شده توسط ربات را نمایش می دهیم.

DualEncoderTeensyview.ino را بارگذاری کنید. این برنامه تیک های رمزگذار را در Teensyview نمایش می دهد. اگر روبات را به جلو حرکت دهید ، رمزگذار تیک می زند و اگر آن را به عقب حرکت دهید ، کاهش می یابد.

حالا EncoderOdometry.ino را بارگذاری کنید. این برنامه موقعیت ربات را بر حسب مختصات x-y نمایش می دهد ، کل مسافت طی شده در سانتیمتر و زاویه را به درجه نشان می دهد.

من پیاده سازی حساب مرده توسط قدمت سنجی بر روی یک ربات با R/C Servo Differential Drive توسط انجمن روباتیک سیاتل برای تعیین موقعیت از کنه های رمزگذار ارجاع داده ام.

مرحله 17: آزمایش - حسگرهای حرکتی سپر محافظ

با انجام مراحل ذکر شده در اینجا ، مطمئن شوید که سنسورهای حرکت را کالیبره کرده اید.

اکنون PropShieldTeensyView.ino را بارگذاری کنید. شما باید بتوانید مقادیر شتاب سنج ، ژیروسکوپ و مغناطیس سنج هر سه محور را در Teensyview مشاهده کنید.

مرحله 18: مرور کلی برنامه

برنامه دنبال کننده خط پیشرفته با Arduino IDE نوشته شده است. این برنامه به ترتیب زیر در زیر توضیح داده شده است.

  • مقادیر ذخیره شده در EEPROM خوانده می شوند و منو نمایش داده می شود.
  • با فشار دادن LAUNCH ، برنامه وارد حلقه می شود.
  • مقادیر سنسور خط عادی خوانده می شود.
  • مقدار باینری موقعیت خط با استفاده از مقادیر نرمال سنسور بدست می آید.
  • شمارش تعداد سنسورهایی که روی خط هستند از مقدار باینری موقعیت خط محاسبه می شود.
  • تیک های رمزگذار به روز می شوند و کل مسافت طی شده ، مختصات x-y و زاویه به روز می شوند.
  • برای مقادیر مختلف شمارش دودویی از 0 تا 16 ، مجموعه ای از دستورالعمل ها اجرا می شوند. اگر تعداد دودویی در محدوده 1 تا 5 باشد و اگر سنسورهایی که روی خط هستند در مجاورت یکدیگر باشند ، روال PID نامیده می شود. چرخش در ترکیب های دیگر از ارزش دودویی و تعداد دودویی انجام می شود.
  • در روال PID (که بر اساس روال PD است) ، موتورها با سرعت محاسبه شده بر اساس خطا ، تغییر خطا ، مقادیر Kp و Kd حرکت می کنند.

این برنامه در حال حاضر مقادیر جهت گیری را از محافظ محافظ اندازه گیری نمی کند. این کار در حال انجام است و در حال به روز رسانی است.

آپلود TestRun20.ino. در مراحل بعدی که روبات خود را آزمایش می کنیم ، نحوه حرکت در منو ، تنظیم تنظیمات و نحوه کالیبراسیون سنسورهای خط را خواهیم دید.

مرحله 19: حرکت در منو و تنظیمات

منو دارای تنظیمات زیر است که می توانید با استفاده از دکمه های چپ و راست حرکت دهید و با استفاده از دکمه مرکزی انتخاب کنید. تنظیمات و عملکرد آنها در زیر توضیح داده شده است.

  1. CALIBRATE: برای کالیبراسیون سنسورهای خط.
  2. TEST: برای نمایش مقادیر سنسور خط.
  3. راه اندازی: برای شروع خط زیر.
  4. MAX SPEED: برای تعیین حد بالای سرعت ربات.
  5. ROTATE SPEED: برای تعیین حد بالای سرعت ربات هنگام چرخش ، یعنی هنگامی که هر دو چرخ با سرعت مساوی در جهت مخالف می چرخند.
  6. KP: ثابت متناسب.
  7. KD: ثابت مشتق.
  8. RUN MODE: برای انتخاب بین دو حالت عملکرد - NORMAL و ACCL. در حالت عادی ، ربات با سرعتهای از پیش تعیین شده مطابق با مقادیر موقعیت خط کار می کند. در حالت ACCL ، MAX SPEED روبات با ACCL SPEED در مراحل از پیش تعیین شده مسیر جایگزین می شود. از این می توان برای سرعت بخشیدن به ربات در قسمتهای مستقیم مسیر استفاده کرد. تنظیمات زیر تنها در صورتی قابل دسترسی است که RUN MODE به عنوان ACCL تنظیم شده باشد.
  9. LAP DISTANCE: برای تعیین طول کل مسیر مسابقه.
  10. ACCL SPEED: برای تنظیم سرعت شتاب ربات. این سرعت جایگزین MAX SPEED در مراحل مختلف مسیر می شود که در زیر مشخص شده است.
  11. نه OF STAGES: برای تنظیم تعداد مراحل استفاده از ACCL SPEED.
  12. مرحله 1: برای تعیین فاصله شروع و پایان مرحله ای که MAX SPEED با ACCL SPEED جایگزین می شود. برای هر مرحله ، فاصله شروع و پایان را می توان جداگانه تنظیم کرد.

مرحله 20: کالیبراسیون سنسور خط

Image
Image

کالیبراسیون سنسور خط فرایندی است که طی آن مقدار آستانه هر یک از 16 سنسور تعیین می شود. این مقدار آستانه برای تصمیم گیری در مورد اینکه آیا یک سنسور خاص از خط خارج است یا خیر استفاده می شود. برای تعیین مقادیر آستانه 16 سنسور ، از هر دو روش استفاده می کنیم.

فیلتر MEDIAN: در این روش ، سنسورهای خط در بالای سطح سفید قرار می گیرند و تعداد تعیین شده سنسورهای خوانده شده برای هر 16 سنسور گرفته می شود. مقادیر متوسط هر 16 سنسور تعیین می شود. همین روند پس از قرار دادن سنسورهای خط بر روی سطح سیاه تکرار می شود. مقدار آستانه میانگین مقادیر متوسط سطوح سیاه و سفید است.

MIN MAX: در این روش ، مقدار سنسور به طور مکرر خوانده می شود تا زمانی که کاربر درخواست توقف کند. حداکثر و حداقل مقادیر مواجه شده توسط هر سنسور ذخیره می شود. مقدار آستانه میانگین حداقل و حداکثر مقادیر است.

مقادیر آستانه بدست آمده در محدوده 0 تا 1000 ترسیم می شود.

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

  • یک نمایش باینری 16 بیتی از موقعیت خط با یک باینری 1 نشان می دهد که سنسور خط مربوطه بیش از خط است و 0 دودویی نشان می دهد که سنسور خط خارج از خط است.
  • شمارش تعداد کل سنسورهایی که روی خط هستند.
  • حداقل ، حداکثر و مقادیر سنسور (خام و نرمال) از 16 سنسور ، یک سنسور در یک زمان.
  • موقعیت خط در محدوده 7500 تا +7500.

حداقل و حداکثر مقادیر سنسور خط سپس در EEPROM ذخیره می شود.

مرحله 21: اجرای آزمایشی

Image
Image

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

مرحله 22: افکار نهایی و پیشرفت ها

مسابقه روبات ها
مسابقه روبات ها

سخت افزاری که برای ساخت این ربات کنار هم قرار می گیرد ، توسط برنامه ای که آن را اجرا می کند به طور کامل استفاده نمی شود. بهبودهای زیادی می تواند در بخش برنامه ایجاد شود. در حال حاضر از سنسورهای حرکتی سپر محافظ برای تعیین موقعیت و جهت استفاده نمی شود. داده های کیلومتر شمار از رمزگذارها را می توان با داده های جهت گیری از prop shield ترکیب کرد تا موقعیت و سرفصل ربات را به طور دقیق تعیین کند. این داده ها ممکن است برای برنامه ریزی روبات برای یادگیری مسیر در چند دور استفاده شود. به شما توصیه می کنم در این قسمت آزمایش کنید و نتایج خود را به اشتراک بگذارید.

موفق باشید.

مسابقه روبات ها
مسابقه روبات ها

جایزه دوم در مسابقه روبات ها

توصیه شده: