چگونه یک نمایشگر هوشمند خودرو سازگار با آردوینو بسازیم ؟

0

در این پست آموزش ساخت یک نمایشگر هوشمند خودرو با سیستم عیب یابی (OBD-II) را یاد می گیرید که روی انواع خودرو قابل استفاده است. البته نمایشگر برای هوندا آکورد طراحی شده اما می توانید از همین آموزش برای ساخت نمایشگر هوشمند مخصوص ماشین خودتان استفاده کنید. قطعات اصلی نمایشگر هوشمند خودرو هم برد آردوینو، نمایشگر TFT 7 اینچی، برد توسعه Teensy، آداپتور OBD-II I2C و چند سنسور پشتیبانی ارزان قیمت هستند.


این نمایشگر هوشمند دو صفحه دارد که یکی برای حالت حرکت و دیگری برای دنده عقب است. وقتی ماشین در حال حرکت باشد RPM، MPH، درصد بار موتور، ولتاژ باتری، دمای کابین و دمای خنک کننده موتور در نمایشگر هوشمند نشان داده می شوند. وقتی ماشین روی دنده عقب باشد، برد Teensy سازگار با Arduino IDE تصویر بیت مپ متحرک ماشین و مقادیر سنسورهای پشتیبانی را در نمایشگر نشان می دهد. مقادیر چهار سنسور سیستم هوشمند به فوت نشان داده می شوند و تصویر متحرک پشت ماشین هم براساس میزان نزدیکی به ماشین تغییر رنگ می دهند (سبز کمتر از ۵ فوت، سبز و زرد کمتر از ۲ فوت، سبز و زرد و قرمز کمتر از یک فوت).

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

گام اول: وسایل مورد نیاز

  • آداپتور Freematics OBD-II
  • سنسورهای پشتیبانی یا بک آپ – یک نمونه از این پکیج سنسور را می توانید در این لینک ببینید.
  • نمایشگر LCD 7 اینچی TFT
  • درایور نمایشگر LCD مبتنی بر SPI
  • برد توسعه Teensy 3.6
  • پلول شیفتر
  • آی سی بافر تری استیت ۷۴HC125
  • کارت میکرو SD
  • سیم، خازن و مقاومت
  • سنسور دمای DS18B20 (اختیاری)
  • اسپلیتر OBD-II (اختیاری)

گام دوم: خواندن سنسورهای پشتیبانی

این مرحله از ساخت نمایشگر هوشمند خودرو کمی سخت است چون این سنسورهای پشتیبانی به یک فرستنده متصل هستند و اطلاعات آنها روی یک نمایشگر کوچک نمایش داده می شود. در حالیکه ما می خواهیم این اطلاعات را روی نمایشگر ۷ اینچی خودمان نمایش بدهیم. برای اینکار باید بتوانید پروتکل ارتباطی اختصاصی فرستنده با نمایشگر را بخوانید. فرستنده های این سنسورها معمولاً از پروتکل های رایج مثل I2C، UART، CAN، USB و … استفاده نمی کنند و نوع پروتکل می تواند به نسبت شرکت سازنده متفاوت باشد. اگر می خواهید از کدهای این آموزش ساخت استفاده کنید، بهتر است پکیج سنسوری که در این لینک مشاهده می کنید را بخرید.

در ساختنی بخوانید :  آموزش ساخت : یک گیره دیواری متفاوت بسازید

قبل از جدا کردن LCD سنسورهای پشتیبانی، سه سیم متصل به فرستنده و LCD را آزمایش کنید (سیم قرمز +۵V، یک سیم مشکی اتصال به زمین و یک سیم آبی). اسیلوسکوپ را به سیم آبی و سیم اتصال به زمین وصل کنید. حالا باید چیزی شبیه تصویر دوم را روی نمایشگر اسیلوسکوپ ببینید. نموداری که در بالا می بینید، بیت شروع با بازه زمانی HIGH دارد که با ۱۷ بیت کوتاه تر دنبال می شود. بیت های ۵-۰ بعد از بیت شروع حاوی اطلاعات مفید نیستند. بیت های ۸-۶ مربوط به سنسورهای A، B، C و D هستند. بیت های ۱۹-۱۶ هم طول برحسب متر را نشان می دهند. در مراحل بعد می توانید برنامه آردوینو برای خواندن سنسورها و ارسال داده ها به شکل خروجی از طریق سریال را دریافت کنید.

گام سوم: ساخت تصویر بیت مپ و ذخیره آن در کارت SD

تصویر بیت مپ مدل خودرو از نمای بالا را در اینترنت پیدا کنید و از نرم افزارهای وایریش تصویر برای تنظیم اندازه و کراپ کردن آن استفاده کنید. سپس تصویر را در قالب یک تصویر بیت مپ ۲۴ بیتی با نام car.bmp و ابعاد ۱۱۰ در ۲۵۰ پیکسل ذخیره کنید. در نهایت این فایل تصویری را روی کارت میکرو SD آپلود کنید و کارت را در میکروکنترلر Teensy قرار بدهید.

این نمایشگر هوشمند خودرو را می شود با برد آردوینو UNO هم ساخت اما برد Teensy 3.6 سرعت بیشتری دارد. با استفاده از برد Teensy 3.6 و درایور نمایشگر RA8875 می توانید اطلاعات کارت میکرو SD را با سرعت بیشتری بخوانید و به نمایشگر ارسال کنید. سرعت خواندن و نمایش اطلاعات با برد آردوینو ۸ ثانیه است اما Teensy اینکار را با سرعت ۱٫۸ ثانیه انجام می دهد.

گام چهارم: قطعات الکترونیکی را بهم وصل کنید


شماتیک مدار نمایشگر هوشمند خودرو

برای ساخت نمایشگر هوشمند خودرو از نمایشگر LCD 7 اینچی Adafruit و آی درایور مخصوص آن یعنی RA8875 استفاده می کنیم. انتخاب این نمایشگر و درایور دو دلیل دارد: کتابخانه های آردوینوی متعدد و متنوعی برای آنها نوشته شده و درایور می تواند از طریق پروتکل SPI به هر میکروکنترلری متصل بشود که یعنی تعداد سیم های اتصال میکروکنترلر به RA8875 زیاد نخواهند بود.

البته استفاده از این قطعات دو ایراد هم دارد. اول اینکه برد RA8875 یک باگ سخت افزاری دارد که اگر بخواهید از دستگاه های مبتنی بر SPI مثل کارت SD استفاده می کنید، باید از آی سی بافر تری استیت ۷۴HC125 هم استفاده کنید. دوم اینکه ارسال تصویر به LCD زمان زیادی می برد. زمانبر بودن ارسال تصویر به LCD هم بخاطر اتصال SPI است که با سرعت ساعت میکروکنترلر محدود می شود (و البته مقدار داده زیادی که باید از طریق چند سیم محدود به درایور نمایشگر ارسال بشوند).

با استفاده از شماتیک بالا می توانید براحتی قطعات الکترونیکی را بهم وصل کنید. در این شماتیک نحوه اتصال پین های برد Teensy هم مشخص شده است. در این شماتیک فقط دو قطعه برچسب ندارند که یک خازن الکترولیتی ۱F 16V و یک خازن سرامیکی ۱۰۰μF هستند. علت استفاده از این دو خازن ثابت کردن جریان ورودی به میکروکنترلر Teensy در +۵V DC و جلوگیری از پرش ولتاژ است.

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

  • لول شیفتر سیگنال ۵V را می گیرد و آن را به سیگنال ۳٫۳V که برای میکروکنترلر Teensy ایمن است، تبدیل می کند. استفاده از این قطعه برای آداپتور OBD I2C و فرستنده سنسورهای پشتیبانی ضروری است.
  • خطوط I2C میکروکنترلر Teensy به مقاومت های پول آپ ۴٫۷kΩ نیاز دارد.
  • چهار مقاومت متصل به night time wire و backup engage wire ضروری هستند و کار تقسیم کننده ولتاژ را می کنند. این مقاومت ها سیگنال های ۱۲V-13V را به سیگنال های ۲٫۵V-3V تبدیل می کنند.

گام پنجم: درایور نمایشگر RA8875 و طراحی گرافیکی

طراحی گرافیکی با درایور RA8875 طراحی گرافیکی با درایور RA8875

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

اگر قصد دارید برنامه را تغییر می دهید، می توانید از این وب سایت برای انتخاب رنگ های RGB565 در کتابخانه Adafruit_RA8875 استفاده کنید.

درباره فونت هم این کتابخانه فقط از یک فونت پشتیبانی می کند مگر اینکه قسمتی از کتابخانه را کامنت-اوت کنید تا بتوانید از فونت های کتابخانه Adafruit_GFX هم استفاده کنید. می توانید کتابخانه Adafruit_RA8875 ویرایش شده را از لینک زیر دانلود کنید. در ضمن برای استفاده از فونت سون سگمنت که در نمایشگر هوشمند خودرو بکار رفته باید مطمئن شوید فایل FreeSevenSegNumFont.h در پوشه فونت های کتابخانه Adafruit_GFX موجود است.

گام ششم: برنامه را آپلود کنید

برای آپلود برنامه یا اسکچ روی برد Teensy 3.6، باید Teensyduino را از اینجا دانلود و نصب کنید. سپس کتابخانه Adafruit_RA8875 و Adafruit_GFX را در محل کتابخانه Teensy جایگزین کنید. کتابخانه های Teensy معمولاً در مسیر teensy/avr/libraries قرار دارند. حالا باید محل اسکچ بوک در نرم افزار Arduino و از طریق preferences با توجه به محل ذخیره کتابخانه های Teensy ویرایش کنید.

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

گام هفتم: قاب LCD را پرینت کنید

برای محافظت از نمایشگر ۷ اینچی یک قاب LCD طراحی کرده ایم که با پرینتر سه بعدی ساخته می شود. فایل های STL این قاب و رینگ محافظ سنسورهای پشتیبانی را از لینک زیر دانلود کنید (رمز فایل saakhtani.ir است) و آنها را با پرینتر سه بعدی پرینت کنید.

نمایشگر هوشمند خودرو آماده است

بعد از آپلود برنامه می توانید نمایشگر هوشمند خودرو را روی ماشین نصب کنید. اگر لاین ۱۲V به کانکتور OBD-II همیشه به باتری وصل است. در این حالت حتی بعد از خاموش شدن ماشین هم نمایشگر روشن می ماند. برای حل این مشکل باید یک اسپلیتر OBD-II تهیه کنید، سیمی که به پین ۱۶ یکی از دو کانکتور اسپلیتر می رود را قطع کنید و آن سیم را به یک سیم مدار وصل کنید.
حالا با مولتی متر، باکس فیوز درایور را چک کنید و ببینید بعد از استارت زدن کدام فیوز جریان برق دریافت می کند. در نهایت هم به این فیوز یک سیم مدار وصل کنید. به این ترتیب نمایشگر هوشمند خودرو فقط بعد از استارت زدن روشن می شود.

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

ممکن است شما دوست داشته باشید
ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.