فهرست مطالب:

UCL Embedded - B0B the Linefollower: 9 مرحله
UCL Embedded - B0B the Linefollower: 9 مرحله

تصویری: UCL Embedded - B0B the Linefollower: 9 مرحله

تصویری: UCL Embedded - B0B the Linefollower: 9 مرحله
تصویری: DCDC21 | Speed presentations: Engaging audiences during the pandemic 2024, جولای
Anonim
UCL Embedded - B0B the Linefollower
UCL Embedded - B0B the Linefollower

این B0B است.*

B0B یک ماشین عمومی با کنترل رادیویی است که به طور موقت اساس یک ربات را دنبال می کند.

او مانند بسیاری از ربات های خط قبل از خود ، تمام تلاش خود را می کند تا در خطی که در اثر انتقال بین کف و مواد متضاد ایجاد می شود ، در نوار چسب ما ، روی خط بماند.

برخلاف بسیاری از روبات های دیگر Line-follow ، B0B همچنین داده ها را جمع آوری کرده و از طریق WiFi ارسال می کند.

به طور کامل برای یک پروژه سرگرمی بیش از حد ، این شامل تعدادی از موضوعات است که ممکن است برای شما جالب باشد. این راهنما تولد او ، عملکردهای او و چگونگی درست کردن او را مانند او شرح می دهد.

این همچنین شامل عصبانیت از لوازم الکترونیکی مختلف است زیرا کار نمی کنند همانطور که ما می خواستیم ، و مراحلی که برای غلبه بر این مشکلات انجام دادیم (من به شما ESP 8266-01 نگاه می کنم).

برای اجرای پروژه 2 کد وجود دارد. کد اول مربوط به ماژول ESP8266 است که ما از آردوینو به عنوان برنامه نویس استفاده می کنیم و کد دوم بر روی آردوینو اجرا می شود.

مرحله 1: اجزاء

برای این پروژه به موارد زیر نیاز دارید:

سخت افزار:

• 1X ماشین کنترل رادیو ، (باید ESC و سروو فرمان داشته باشد).

ما بیشتر از Traxxas 1/16 E-Revo VXL استفاده می کردیم ، بیشتر به این دلیل که ما آن را داشتیم و کاملاً مطمئن بودیم که می توانیم آن را با آردوینو کنترل کنیم. همچنین از آنجا که در نهایت مقدار کمی سخت افزار اضافی را حمل می کند ، ما مطمئن بودیم که این مسئله برای 1/16 E-Revo مشکلی ایجاد نمی کند.

با این حال ، بیشتر خودروهای کنترل رادیویی (که به راحتی قابل جدا شدن هستند) احتمالاً می توانند به جای آنها مورد استفاده قرار گیرند و روند بسیار مشابه خواهد بود.

• یک تن نوار چسب.

رنگ باید تا حد امکان با زمین تضاد داشته باشد. در محیط آزمایش ما از نوار سفید روی کف تیره استفاده کردیم.

• 1 برابر آردوینو مگا 2560.

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

• 1 برابر تخته نان بزرگ.

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

• 1 برابر سنسور آنالوگ TCRT5000 IR (برای جلوگیری از برخورد استفاده می شود).

مارک/مدل دقیق مهم نیست که سازگار با آردوینو باشد و فاصله را اندازه گیری می کند. کلمات کلیدی مانند "فاصله" ، "مانع" را جستجو کنید. از نظر فنی یک سنسور دیجیتال با تغییرات جزئی کد نیز کار می کند ، اما ما از سنسور آنالوگ استفاده می کنیم.

• 1x یا 2x Gravity: Analog Grayscale Sensor v2

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

• 1 عدد ESP 8266-01.

نسخه های زیادی از ESP 8266 موجود است. ما فقط با 8266-01 تجربه داریم و نمی توانیم تضمین کنیم که کد ESP با نسخه دیگری کار می کند.

• 1 x سپر Wi-Fi ESP8266-01.

از نظر فنی اختیاری است ، اما اگر از این استفاده نکنید ، همه چیز شامل ماژول Wi-Fi بسیار پیچیده تر می شود. با این حال ، راهنما فرض می کند که شما این را دارید (در غیر این صورت ، راهنماهای آنلاین را برای اتصال صحیح ESP-01 به آردوینو به صورت آنلاین پیدا کنید) ، زیرا انجام نادرست این کار می تواند و احتمالاً به ماژول آسیب برساند.

• باتری های خود خودرو و باتری های لازم برای تغذیه لوازم الکترونیکی اضافی.

ما از یک جفت ظرفیت 2.2 AH ، 7.4 ولت Lipo به طور موازی برای تغذیه همه چیز استفاده کردیم. شما باید بتوانید از هر نوع باتری معمولی با وسیله نقلیه دلخواه خود استفاده کنید. اگر بیش از 5 ولت هستید اما زیر 20 ولت ، ظرفیت مهمتر از ولتاژ اسمی است.

• تعداد زیادی کابل جامپر.

من از شمارش تعداد دقیق این موارد صرف نظر کرده ام. اگر فکر می کنید به اندازه کافی دارید ، احتمالاً ندارید.

• سرانجام ، برای اتصال همه چیز ، باید آردوینو ، سنسورها ، تخته نان و ماژول Wi-Fi را به وسیله دلخواه خود نصب کنید. نتیجه شما بسته به اینکه از چه چیزی به عنوان پایه استفاده می کنید و مواد موجود در آن متفاوت است.

ما با استفاده از:

• کراوات زیپی.

• مقداری چسب فوق العاده.

• قطعات کوچک کاغذ قراضه/لوله رزین با قطر مناسب داشتیم.

• یک صفحه پشتی قدیمی ماسونی از قاب عکس ، به اندازه برش خورده.

• کمی بیشتر نوار چسب.

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

ما بیشتر از یک دستگاه پیچ گوشتی کوچک با چند بیت استفاده می کردیم ، اما گاهی اوقات مجبور می شدیم مجموعه ابزار موجود با ماشین را بیرون بیاوریم.

نرم افزار:

• گره قرمز

بخش مهمی از جمع آوری داده ها

• سرور MQTT.

مرد وسط بین وسیله نقلیه ما و Node-red. در ابتدا ، برای آزمایش ، از test.mosquitto.org استفاده کردیم

بعداً استفاده کردیم:

• CloudMQTT.com

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

• WampServer.

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

مرحله 2: نمودار برق

نمودار الکتریکی
نمودار الکتریکی

مرحله 3: ساخت فیزیکی

ساخت و ساز فیزیکی
ساخت و ساز فیزیکی
ساخت و ساز فیزیکی
ساخت و ساز فیزیکی
ساخت و ساز فیزیکی
ساخت و ساز فیزیکی

راه حل ما یک رویکرد مستقیم برای مونتاژ فیزیکی دارد.

گیرنده اصلی و محفظه ضد آب آن از ماشین RC حذف شد ، زیرا نیازی به آن نیست.

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

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

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

اقدامات خاصی برای ایمن سازی ماژول WiFi انجام نشده است. این مال ما نیست ، بنابراین چسباندن آن یا چسباندن آن غیر ضروری تلقی می شود زیرا آنقدر سبک است که زیاد حرکت نمی کند و سیم ها برای نگه داشتن آن کافی است.

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

مرحله 4: ماژول ESP8266

ماژول ESP8266
ماژول ESP8266
ماژول ESP8266
ماژول ESP8266

ماژول WiFi ، ESP8266 ، به دو پین متفاوت نیاز دارد. هنگام چشمک زدن ماژول با یک برنامه جدید و استفاده از Arduino Mega 2560 به عنوان برنامه نویس ، از یک تنظیم استفاده می شود. تنظیمات دیگر مربوط به ماژول در هنگام استفاده و ارسال اطلاعات به کارگزار MQTT است.

با استفاده از Arduino IDE برای بارگذاری کد در ماژول ESP8266 ، باید یک مدیر برد و یک مدیر بردهای اضافی نصب کنید.

Under board manager ، مدیر برد esp8266 را نصب کنید. با جستجوی "esp" به راحتی پیدا می شود. بسیار مهم است که نسخه 2.5.0 را نصب کنید ، نه قدیمی تر ، نه جدیدتر.

در قسمت تنظیمات در نشانی اینترنتی آدرس مدیران تابلوها ، در این خط کپی کنید:

arduino.esp8266.com/stable/package_esp8266c…

برای اینکه بتوانید چیزی را در ماژول ESP8266 بارگذاری کنید ، باید از تنظیمات پین خاصی استفاده کنید تا بتوانید ماژول را فلش کنید. این کار باید هر زمان که می خواهید کد فعلی را روی ماژول تغییر دهید ، انجام دهید. فراموش نکنید که قبل از چشمک زدن ماژول ، ماژول ESP8266 صحیح را از مدیر برد انتخاب کنید. در این پروژه ما تخته عمومی ESP8266 را انتخاب کردیم. تنظیم پین برای چشمک زدن ماژول در اولین تصویر در این بخش یافت می شود.

پس از فلش کردن ماژول ESP8266 ، باید تنظیمات پین را تغییر دهید. همچنین می توانید از آداپتور برای سهولت راه اندازی برای خود استفاده کنید. در این پروژه ما انتخاب کردیم که هر زمان که ماژول کار می کرد یک آداپتور داشته باشیم. تنظیم پین با آداپتور در تصویر دوم در این بخش یافت می شود.

کدی که باید روی ماژول ESP8266 فاش شود ، اتصال به WiFi و یک بروکر MQTT را تنظیم می کند ، در این مورد با نام کاربری و رمز عبور ، اما اگر تغییرات لازم را که در توضیحات کد توضیح داده شده است انجام دهید ، می تواند بدون آن انجام شود. برای این پروژه ، کارگزار ما برای کار نیاز به نام کاربری و رمز عبور دارد. ماژول پیامهای ورودی را از پورت سریال که به آن متصل است می خواند. هر خط جدیدی که توسط کد آردوینو ایجاد شده است را می خواند ، پیام را رمزگشایی می کند و پیام را دوباره ایجاد می کند. سپس پیام را به بروکر MQTT ارسال می کند که در کد مشخص شده است. کد ماژول ESP8266:

مرحله 5: آردوینو

پس از پیکربندی ماژول WiFi ، برنامه ای را که برای کنترل موتور و سروو روی ماشین RC استفاده می شود ، بررسی می کنیم. این خودرو طبق اطلاعات مقیاس خاکستری از سنسور مرکزی ، که در این پروژه به عنوان "آشکارساز خط" نیز شناخته می شود ، واکنش نشان می دهد. هدف آن این است که اطلاعات خط آشکارساز را در یک مقدار از پیش تعیین شده نگه دارد که برابر است با اطلاعات ثبت شده در تغییر بین روشنایی و تاریکی یا در این پروژه ، سفید و سیاه. بنابراین اگر مقدار بیش از حد متفاوت باشد ، خروجی مربوط به سروو ماشین را به مقدار از پیش تعیین شده خط هدایت می کند.

این برنامه دارای دو دکمه است که به عنوان دکمه شروع و توقف برای ماشین RC عمل می کند. از نظر فنی دکمه "توقف" یک دکمه "مسلح کردن" است که از نظر معادل مقدار PWM ارسال شده به موتور است که باعث توقف ماشین RC می شود. دکمه استارت مقدار PWM را ارسال می کند که برابر است با ماشین RC که به سختی به جلو حرکت می کند ، زیرا اگر شتاب زیادی بگیرد ، سریع حرکت می کند.

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

یک سنسور مقیاس خاکستری ثانویه ، "Room Detector" ، برای تشخیص اینکه ماشین RC وارد کدام اتاق شده است ، استفاده می شود. این دستگاه بر اساس یک اصل مشابه آشکارساز خط عمل می کند ، اما به دنبال تغییر بین نور و تاریکی نیست ، بلکه به دنبال مقادیر در محدوده خاصی است که بسته به مقدار دیده شده از آشکارساز اتاق ، مربوط به اتاق های مختلف است.

در نهایت برنامه خطی از سنسورها را برای ماژول WiFi برای خواندن و سپس ارسال آن به کارگزار MQTT ایجاد می کند. خط اطلاعات به صورت یک رشته ایجاد شده و در سریال مربوطه که ماژول WiFi به آن متصل است نوشته می شود. مهم است که نوشتن در سریال فقط به همان دفعاتی انجام شود که ماژول WiFi می تواند پیام دریافتی را بخواند ، اما به یاد داشته باشید که از هیچ گونه تأخیری در این کد استفاده نکنید زیرا این امر در توانایی ماشین RC برای پیروی از خط اختلال ایجاد می کند. در عوض از "millis" استفاده کنید زیرا به برنامه اجازه می دهد بدون تاخیر اجرا شود ، اما پس از گذشت مقدار مشخصی از میلی ثانیه از زمان روشن شدن آردوینو ، پیامی را بدون مسدود کردن کد به همان شیوه تأخیر به سریال می نویسد.

کد Arduino Mega 2560:

مرحله 6: پایگاه داده MySQL

WampServer یک محیط توسعه وب برای ویندوز است که به ما امکان می دهد برنامه هایی با PHP و پایگاه داده MySQL ایجاد کنیم. PhpMyAdmin به ما اجازه می دهد تا پایگاه داده های خود را به روشی آسان مدیریت کنیم.

برای شروع به این آدرس بروید:

در این پروژه از نسخه 3.17 x64 بیت برای ویندوز استفاده می کنیم. پس از نصب ، مطمئن شوید که همه سرویس ها در حال اجرا هستند ، از این نظر که نماد کوچک به جای قرمز یا نارنجی سبز می شود. اگر نماد سبز است ، می توانید برای مدیریت پایگاه داده MySQL خود به PhpMyAdmin دسترسی پیدا کنید.

با استفاده از PhpMyAdmin به MySQL دسترسی پیدا کرده و پایگاه داده جدیدی ایجاد کنید. آن را به عنوان چیزی مناسب که می توانید به خاطر بسپارید ، نامگذاری کنید ، در این پروژه "line_follow_log" نامیده می شد. پس از ایجاد پایگاه داده ، باید یک جدول در پایگاه داده ایجاد کنید. مطمئن شوید که تعداد ستون ها متناسب است. در پروژه ما از 4 ستون استفاده می کنیم. یک ستون برای نشان زمان و سه ستون آخر برای ذخیره داده های وسیله نقلیه استفاده می شود. برای هر ستون از نوع داده مناسب استفاده کنید. ما از "longtext" برای ستون timestamp و "texttext" برای بقیه استفاده کردیم.

این تنها کاری است که باید در PhpMyAdmin و MySQL انجام دهید. پایگاه داده و جدول قسمت مربوط به Node-Red را به خاطر بسپارید.

مرحله 7: Node-Red

برای رسیدگی به جمع آوری داده ها ، ما از یک جریان نسبتاً ساده با رنگ Node-red استفاده می کنیم. به سرور MQTT ما متصل می شود و به پایگاه داده MYSQL ما می نویسد.

برای انجام این کار ، به چند پالت برای عملکرد توابع مختلف نیاز داریم و برای اجرای آن به کد واقعی نیاز داریم.

اول کار های مهم. ما به پالت های زیر نیاز داریم.

کارگزار Node-red-contrib-mqtt: این اتصال به کارگزار MQTT ما است.

Node-red-dashboard: داشبورد ما ، برای نمایش بصری داده های جمع آوری شده مورد نیاز است.

Node-red-node-mysql: اتصال ما به پایگاه داده SQL.

این به معنای راهنمای کامل Node-red نیست ، اما من توضیح خواهم داد که جریان Node-red چه کار می کند.

در اوایل ، ما با سرور MQTT انتخابی خود در حال مرگ/قطع ارتباط بودیم ، ظاهراً به طور تصادفی ، که انجام هرگونه تغییری را به یک تلاش ناامیدکننده تبدیل می کرد ، زیرا مشخص نبود که آیا تغییرات مفید بوده اند یا زمانی که ما نتیجه را نمی بینیم. بنابراین دکمه "آیا سرور مرده است؟" تزریق "نه" بلوک زیر آن را به سرور MQTT تزریق می کند. اگر مرده نباشد ، "نه" در پنجره Debug ظاهر می شود. این کار نه تنها برای آزمایش ، بلکه برای مجبور کردن Node-red به تلاش مجدد برای اتصال به سرور MQTT انجام می شود.

'Test string' یک رشته لباس برای کارگزار MQTT ارسال می کند. ما این رشته را فرمت کردیم تا شبیه چیزی باشد که از آردوینو دریافت می کنیم. این امر به آسانی می توانست پیکربندی شبکه ای که پیام ها را رمزگشایی می کند ، بدون نیاز به اجرای پروژه ، جمع آوری داده ها ، انجام شود.

آخرین جریان در فضای کار را می توان به دو قسمت تقسیم کرد. شاخه پایینی به سادگی پیامهای دریافتی را می خواند ، آنها را در پنجره اشکال زدایی ارسال می کند و آنها را در سرور SQL ذخیره می کند.

اگر جادوی واقعی اتفاق بیفتد ، شبکه بزرگ سوئیچ های متصل به دنبال یک گره تابع.

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

به عنوان مثال ، "مانع" ، مانند سایر موارد یک انتخاب دوتایی است ، یا رانندگی مشخص است ، یا اینطور نیست. بنابراین یک 0 یا 1 دریافت می کند. A 0 به شاخه "روشن" ، یک 1 به شاخه "مسدود شده" ارسال می شود. سوئیچ های "پاک کردن" ، "مسدود شده" ، اگر فعال شوند ، به ترتیب چیزی مشخص ، پاک یا مسدود می شوند. بلوک های سبز رنگ در پنجره اشکال زدایی ارسال می شوند ، آبی در داشبورد ما می نویسد.

شاخه های "status" و "location" دقیقاً یکسان عمل می کنند.

مرحله 8: کارگزار MQTT

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

برای این پروژه ما یک کارگزار MQTT با استفاده از سرویس CloudMQTT با اشتراک رایگان نسخه "گربه ناز" ایجاد کردیم. این محدودیت دارد ، اما ما از موارد موجود در این پروژه فراتر نمی رویم. ماژول WiFi می تواند به کارگزار متصل شود و کارگزار سپس پیام ها را به یک مشتری مقصد مناسب هدایت می کند. در این مورد مشتری Node-Red ما است. سرویس CloudMQTT نام کاربری و رمز عبور را برای سرور خود تنظیم می کند ، بنابراین امنیت بالاتری برای ما تضمین می شود. اساساً بدان معنی است که فقط کسانی که دارای نام کاربری و رمز عبور هستند می توانند به این سرویس خاص CloudMQTT دسترسی داشته باشند. هنگام تنظیم اتصال روی کد ESP8266 و Node-Red ، نام کاربری و رمز عبور بسیار مهم است.

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

یک ویژگی خوب امکان ارسال پیام از بروکر به ماژول WiFi است اما ما در این پروژه از آن ها استفاده نکردیم.

مرحله 9: Hobby Electronics

قبل از شروع پروژه قبلی می دانستیم که سرو فرمان فرمان را می توان از طریق آردوینو با سیگنال PWM کنترل کرد ، سیم کشی مشابهی داشت و در یک گیرنده رادیویی یکسان به کانال های مختلف متصل شد ، فرض کردیم کنترل سرعت الکترونیکی ، (ESC از در حال حاضر) ، که موتور را کنترل می کند ، به طور مشابه می تواند از طریق PWM از آردوینو کنترل شود.

برای آزمایش این نظریه ، ما یک طرح کوچک آردوینو را طراحی می کنیم. این طرح یک ورودی آنالوگ از یک پتانسیومتر را می خواند ، مقدار را از 0 ، 1024 تا 0 ، 255 تغییر می دهد و مقدار حاصل را با استفاده از analogWrite () در حالی که ماشین R/C در یک جعبه کوچک داشت ، به یک پین PWM منتقل می کند و دارای چرخ ها برداشته شده است

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

به نظر می رسید ESC مقادیر زیر یک آستانه مشخص را دوست ندارد ، در این مورد 128. سیگنال 191 را به عنوان دریچه گاز خنثی و 255 را به عنوان حداکثر گاز می دید.

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

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

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

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

تفاوت با راه اندازی با پتانسیومتر یا فرستنده و گیرنده سهام و نسخه ای که مقادیر ثابتی را ارائه می داد چه تفاوتی داشت؟

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

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

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

محدوده پایین تر ، با این حال هنوز هم به نظر می رسد ESC را ناراضی می کند. به نظر می رسد این محصول چرخه های وظیفه PWM است.

سروو فرمان و ESC چه به صورت طراحی و چه به دلایل فنی انجام شده است ، سیگنال های زیر 50 درصد چرخه کار را نادیده می گیرند. این می تواند در صورتی باشد که گیرنده/فرستنده کار خود را متوقف کند یا برق آن تمام شود ، مدل به حالت خنثی برمی گردد و با یک گاز کامل معکوس از فاصله دور نمی شود. به طور مشابه ، سروو فقط 180 درجه می چرخد و نیازی به محدوده کامل ندارد.

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

در حین آزمایش ، سهام Traxxas ESC با Mtroniks G2 Micro جایگزین شد ، اما آنها باید یکسان عمل کنند ، اگرچه مقادیر دقیق ممکن است کمی متفاوت باشد.

این کتابخانه با ESC به عنوان سروو رفتار می کند ، ظاهراً خوب است. تابع نوشتن () از کتابخانه Servo.h از 0 تا 180 است ، سیگنال مورد انتظار برای مسلح شدن در وسط است.

G2 Micro در نوشتن () در محدوده مقادیر نزدیک به 90 باز می کند ، اما تعیین دقیق آن دشوار است زیرا به نظر می رسد "مسلح" بودن مسلح بودن را به یاد داشته باشید.

انتظار می رود Traxxas VXL-s3 با مقدار نوشتن () 91 مسلح شود.

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

صحبت از توابع ؛ از استاندارد analogWrite () ، و همچنین () و writeMicroseconds () از کتابخانه Servo.h می توان به جای یکدیگر استفاده کرد ، فقط به خاطر داشته باشید که چه کاری انجام می دهد و در نهایت هیچ چیز به جز چرخه وظیفه اهمیت ندارد. WriteMicroseconds () در صورت نیاز به دانه بندی بیشتر مورد استفاده قرار می گیرد ، فقط به خاطر داشته باشید که محدوده در اینجا از 1000 تا 2000 است ، با مسلح شدن یا "خنثی" در 1500. با analogWrite استاندارد () محدوده قابل استفاده انتظار می رود بین 128 تا 255 باشد و حدود 191 خنثی باشد.

توصیه شده: