ورکشاپ آموزشی - آیسی مدار
رفتن به محتوا

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

ابزار و گجت
۰ نظر
۹۱ نفر
کد ۳۰۵۳

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

مغز متفکر این پروژه یه برد وای‌فای مینی (مثل Wemos D1 Mini) هست که دیتای پروازها رو دریافت می‌کنه. ماکت هواپیما رو هم قراره با چوب بالسا، کاغذ و یه موتور ویبره کوچیک گوشی بسازیم تا هم ظاهر کلاسیک و نوستالژیکی داشته باشه و هم موقع چرخیدن ملخ، یه صدای نرم و واقعی از لرزش موتور به گوش برسه.

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

قطعات موردنیاز

  • برد Wemos D1 mini (یا هر میکروکنترلر وای‌فای‌دار دیگه)
  • میکرو موتور DC (من از موتور ویبره گوشی استفاده کردم)
  • ترانزیستور NPN مثل BC547
  • دیود 1N4007 یا 1N4148
  • سیم‌های جامپر و اتصالی
  • منبع تغذیه 5 ولت
  • کابل میکرو USB
  • سیم لاکی نازک (سیم مسی روکش‌دار)
  • تکه‌های چوب نازک (مثل سیخ چوبی یا چوب بالسا، تو اندازه‌های مختلف)
  • چوب بالسا یا مقوای فشرده 300 گرمی
  • چسب چوب یا چسب قطره‌ای
  • نخ خیاطی مشکی رنگ
  • رنگ اکریلیک و قلم‌مو
  • هویه و وسایل لحیم‌کاری
  • انبردست یا دم‌باریک
  • پنس (اختیاری اما کاربردی)
  • قیچی و کاتر
مرحله ۱

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

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

وسایل لازم برای این بخش

  1. سه عدد چوب اصلی به طول 120 میلی‌متر (چوب بالسا یا سیخ چوبی نازک عالیه)
  2. چوب‌های رابط تو اندازه‌های مختلف برای محکم کردن اسکلت
  3. نخ خیاطی مشکی
  4. چسب چوب (برای محکم کردن گره‌ها)

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

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

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

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

مرحله ۲

نصب پایه‌های نگه‌دارنده بال

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

  1. دو تا چوب رو برای پایه‌های عمودی بال برش بزن. حواست باشه ارتفاعشون اون‌قدری باشه که موتور و ملخ موقع چرخیدن به جایی گیر نکنن.
  2. این دو تا پایه رو به صورت عمودی تو قسمت جلویی بدنه (جایی که اسکلت پهن‌تره) قرار بده.
  3. دقیقا با همون تکنیک مرحله قبل، با نخ خیاطی مشکی و روش ضربدری، پایین این پایه‌ها رو به چوب‌های اصلی بدنه محکم گره بزن.
  4. در نهایت با یه قطره کوچیک چسب، گره‌ها رو سر جای خودشون فیکس کن.
مرحله ۳

ساخت چرخ‌های کلاسیک پره‌دار

تا وقتی که چسب‌های اسکلت بدنه در حال خشک شدن هستن، می‌تونیم بریم سراغ ساختن چرخ‌های فرود هواپیما.

وسایل لازم برای چرخ‌ها

  1. مقوای فشرده یا کارت‌های ضخیم 300 گرمی
  2. سیم برق روکش‌دار ضخیم با رنگ مشکی
  3. ماژیک مشکی نوک‌نازک ثابت
  4. یه سوزن یا پین تیز
  1. ساخت توپی چرخ: دو تا دایره کوچیک و کاملا هم‌اندازه با قطر حدود 15 میلی‌متر از مقوات ببر.
  2. طراحی پره‌ها: با ماژیک نازک، یه نقطه دقیقا وسط هر دایره بکش. حالا خط‌های صافی رو از این مرکز به سمت لبه‌ها رسم کن تا شبیه پره‌های سیمی چرخ‌های هواپیماهای قدیمی بشه.
  3. ساخت لاستیک‌ها: یه تیکه سیم برق ضخیم مشکی بردار. ما از روکش پلاستیکی سیم به عنوان لاستیک استفاده می‌کنیم. سیم رو خم کن و به شکل یه حلقه گرد دربیار؛ اندازه‌اش باید طوری باشه که اون دایره‌های کاغذی 15 میلی‌متری دقیقا کیپ بشن داخلش.
  4. سوراخ مرکز: با یه سوزن، دقیقا وسط هر چرخ یه سوراخ خیلی ریز ایجاد کن.
مرحله ۴

تراشیدن ملخ با چوب بالسا

از اونجایی که ملخ قراره خیلی سریع بچرخه و نباید بار اضافی و سنگینی روی موتور دی‌سی کوچیکمون بندازه، چوب بالسا بهترین و سبک‌ترین انتخاب ممکنه.

ابزار مورد نیاز

  1. یه تیکه کوچیک چوب بالسای نازک و بدون استفاده
  2. کاتر یا چاقوی تیز کاردستی
  3. سنباده نرم (شماره 220 یا بالاتر)
  4. رنگ اکریلیک قرمز و قلم‌مو
  5. یه سوزن یا پین صاف

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

مرحله ۵

آماده‌سازی بال اصلی و دم هواپیما

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

ابزار مورد نیاز

  1. مقوای 300 گرمی (یا ورق نازک چوب بالسا اگه خودت ترجیح می‌دی)
  2. قیچی یا کاتر تیز
  3. خط‌کش
  4. رنگ اکریلیک قهوه‌ای روشن و قلم‌مو
  5. چسب چوب
  1. برش بال اصلی: یه مستطیل از مقوات ببر. طولش باید تقریبا با طول بدنه (حدود 120 میلی‌متر) برابر باشه و عرضش هم حدود 50 میلی‌متر در بیاد.
  2. چون موتور دقیقا روی بال سوار می‌شه، ممکنه ملخ موقع چرخیدن به لبه مقوا گیر کنه. برای حل این مشکل، یه شیار مستطیلی کوچیک از لبه وسط بال دربیار تا فضای کافی برای چرخش ملخ باز بشه.
  3. برای اینکه ظاهر هواپیما آیرودینامیک‌تر و کلاسیک‌تر بشه، چهار تا گوشه بیرونی بال رو با قیچی کمی گرد کن.
  4. مجموعه دم هواپیما: جای اینکه دم رو از سه تیکه جدا بسازیم، کلش رو یکپارچه درست می‌کنیم. یه مستطیل کوچیک ببر و اون رو شبیه حرف M انگلیسی تا بزن.
  5. قسمت وسط حرف M رو به هم بچسبون و محکم فشار بده. این قسمت می‌شه باله عمودی دم، و اون دو تا لبه‌ای که صاف بیرون زده می‌شن تثبیت‌کننده‌های افقی دم.
  6. لبه‌های بیرونی تثبیت‌کننده‌های افقی و قسمت بالای باله عمودی رو هم کمی قیچی کن تا گرد بشن.
  7. برای اینکه حس یه هواپیمای واقعی رو بده، با کاتر یه خط عمودی کم‌عمق پشت باله دم بنداز تا شبیه سکان هدایت (Rudder) به نظر برسه.
  8. رنگ‌آمیزی با ظاهر پارچه/چوب: هواپیماهای قدیمی معمولا اسکلت چوبی داشتن که روش رو با کتان یا برزنت می‌پوشوندن. برای تداعی کردن این حس، بال اصلی و مجموعه دم رو با رنگ اکریلیک قهوه‌ای روشن رنگ‌آمیزی کن.

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

مرحله ۶

سوار کردن موتور و ملخ

مواد لازم

  1. یه موتور ویبره کوچیک گوشی (یا یه میکرو موتور DC)
  2. سیم لاکی نازک مسی (می‌تونی از ترانس‌های قدیمی یا موتورهای خراب بازش کنی)
  3. چسب قطره‌ای

انتخاب موتور: موتورهای دی‌سی کوچیک برای چرخوندن ملخ عالین. اما من برای اینکه کارم تا جای ممکن ظریف و جمع‌وجور بشه، از یه موتور ویبره موبایل استفاده کردم که خیلی ریزه.

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

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

  1. نصب ملخ: چون وزنه موتور ویبره رو برنداشتیم، خیلی راحت یه قطره چسب روی سطح صاف وزنه بزن و ملخ چوبی قرمزت رو مستقیم بچسبون بهش. (اگه از موتور دی‌سی معمولی استفاده کردی، فقط کافیه یه سوراخ ریز پشت ملخ چوبی ایجاد کنی و اون رو با کمی فشار روی شفت فلزی موتور جا بزنی).
  2. نصب موتور روی بال: حالا کل مجموعه موتور و ملخ رو بردار و بدنه موتور رو دقیقا روی مرکز بال اصلی بچسبون؛ همون‌جایی که تو مرحله قبلی یه شیار مستطیلی برای چرخش ملخ خالی کرده بودیم.
  3. سیم‌کشی: از همون سیم‌های لاکی مسی خیلی نازک استفاده کن (راحت می‌تونی این سیم‌ها رو از داخل آرمیچرهای سوخته یا ترانس‌های قدیمی پیدا کنی).
  4. دو رشته بلند از این سیم رو به پایه‌های موتور لحیم کن و مسیرشون رو خیلی تمیز از روی بدنه به سمت دم هواپیما بکش تا از پشت خارج بشن.

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

مرحله ۷

اتصال دم هواپیما به بدنه

نحوه نصب دم هواپیما:

  1. یه مقدار چسب مایع یا چسب چوب روی خط تای پایینی همون دمی که شبیه حرف M ساخته بودی بزن.
  2. اون رو با دقت روی انتهایی‌ترین قسمت چوب بالایی بدنه (انتهای اسکلت مثلثی) قرار بده و ملایم فشار بده.
  3. قبل از اینکه چسب خشک بشه، از روبه‌رو و از پشت به ماکت نگاه کن تا مطمئن بشی باله‌های افقی دم کاملا تراز و صاف هستن.
مرحله ۸

سوار کردن بال اصلی

نصب بال اصلی هواپیما:

  1. مقداری چسب به مرکز سطح پایینی بال بزن.
  2. بال رو دقیقا روی قسمت جلویی چوب بالایی اسکلت بدنه قرار بده.
  3. قبل از اینکه چسب خودشو بگیره، ملخ قرمز رو با دستت بچرخون. مطمئن شو بال رو طوری جلو یا عقب تنظیم کردی که پره‌های ملخ موقع چرخیدن فضای کافی دارن و به پایه‌های عمودی (که تو مرحله دوم نصب کردیم) گیر نمی‌کنن.

بررسی تراز نهایی:

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

نصب چرخ‌ها و کابل‌های کششی بال

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

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

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

مرحله ۱۰

اسکنر آسمان و منطق نرم‌افزاری

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

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

چالش دوم همون محدودیت‌های سخت‌افزاریه. تراشه ESP8266 روی برد، حافظه RAM خیلی کمی داره. پردازش حجم عظیمی از دیتاهای زنده پروازها از سرور OpenSky باید خیلی هوشمندانه مدیریت بشه تا برد کم نیاره و کرش نکنه.

1. راه‌اندازی وای‌فای بدون کدنویسی

جای اینکه پسورد شبکه رو تو کدها بنویسیم، از قابلیت کتابخونه WiFiManager استفاده می‌کنیم. وقتی برد برای اولین بار روشن می‌شه، خودش یه نقطه اتصال وای‌فای (Access Point) می‌سازه. کاربر با گوشیش بهش وصل می‌شه، شبکه خونه رو انتخاب می‌کنه و رمز رو وارد می‌کنه.

2. داشبورد وب

  1. با یک دکمه مختصات دقیق GPS گوشی (عرض و طول جغرافیایی) را بگیرد.
  2. با یک اسلایدر شعاع تشخیص دلخواه (تا چه فاصله‌ای هواپیماها را ردیابی کند) را تنظیم کند.
  3. فید زندهٔ هواپیماهای در حال پرواز بالای سر (شامل شماره پرواز و کشور مبدأ) را ببیند.

3. حصار جغرافیایی و حافظهٔ دائمی

وقتی لوکیشنت رو تو داشبورد سینک می‌کنی، برد این نقطه رو مرکز قرار میده و یه کادر مستطیلی دورش می‌کشه تا محدوده جستجو رو بسازه. بعدش این مختصات رو روی حافظه فلش دائمی خودش (EEPROM) ذخیره می‌کنه.

4. دور زدن کلید API و محدودیت نرخ درخواست

برای اینکه مجبور نباشی حساب توسعه‌دهنده بسازی، کدهای ما به صورت کاملا ناشناس به سرور OpenSky وصل می‌شن. اما اگه پشت سر هم و بی‌وقفه ریکوئست بفرستیم، سرور آی‌پی ما رو موقتا مسدود می‌کنه. برای همین، برنامه جوری تنظیم شده که هر 2 دقیقه یک‌بار آسمون رو چک کنه تا مسدود نشیم.

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

مرحله ۱۱

بررسی کدهای برنامه‌نویسی

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

1. موتور محاسباتی محدوده رادار

سرور OpenSky به ما اجازه نمی‌ده دنبال شعاع دایره‌ای بگردیم؛ بلکه باید یه کادر مستطیلی با چهار تا مختصات جغرافیایی بهش بدیم. چون زمین کرویه، هر یک درجه عرض جغرافیایی همیشه حدودا معادل 111 کیلومتره. ما از این عدد ثابت استفاده می‌کنیم تا شعاع دلخواهت (به کیلومتر) رو به مختصات دقیق تبدیل کنیم:

TXT
void calculateBounding Box(float lat, float lon, float radiusKm) {
// 1 degree of latitude is approx 111 km
float deltaLat = radiusKm / 111.0;
// Longitude shrinks as you move away from the equator
float deltaLon = radiusKm / (111.0 * cos(lat * DEG_TO_RAD));
minLat = lat - deltaLat;
maxLat = lat + deltaLat;
minLon = lon - deltaLon;
maxLon = lon + deltaLon;
}

2. نگه‌داری موقعیت پس از خاموش/روشن شدن (EEPROM)

Arduino
void saveConfigToEEPROM() {
EEPROM.put(EEPROM_START_ADDR, userSettings);
EEPROM.commit(); // Permanently write to flash memory
Serial.println("GPS Boundaries secured in flash storage.");
}

3. پردازش JSON با مصرف حافظهٔ ایمن

Arduino
// Allocate a large chunk of RAM specifically for the heavy flight data array
DynamicJsonDocument doc(65536);
DeserializationError error = deserializeJson(doc, http.getStream());
if (!error) {
JsonArray states = doc["states"];
int planeCount = states.size();
if (planeCount > 0) {
Serial.printf("Traffic Alert! %d aircraft detected overhead.\n", planeCount);
digitalWrite(MOTOR_PIN, HIGH); // Spin the propeller!
} else {
digitalWrite(MOTOR_PIN, LOW); // Sky is clear
}
}

4. حالت خواب (همگام‌سازی NTP)

Arduino
timeClient.update();
int currentHour = timeClient.getHours();
// Only scan the sky between 9:00 AM (9) and 9:00 PM (21)
if (currentHour >= 9 && currentHour < 21) {
checkOverheadAirspace();
} else {
Serial.println("System in curfew mode. Motor locked off for the night.");
digitalWrite(MOTOR_PIN, LOW);
}
مرحله ۱۲

آپلود کردن کدها روی برد

1. نصب هسته برد ESP8266: نرم‌افزار Arduino IDE به صورت پیش‌فرض فقط بردهای استاندارد آردوینو رو می‌شناسه و ما باید برد وای‌فای رو بهش بشناسونیم.

  1. نرم‌افزار Arduino IDE رو باز کن و از منوی File گزینه Preferences رو انتخاب کن.
  2. تو کادر Additional Boards Manager URLs، دقیقا این لینک رو کپی کن:
  3. روی دکمه OK کلیک کن.
  4. از منوی Tools به مسیر Board > Boards Manager برو.
  5. کلمه esp8266 رو جستجو کن و روی دکمه Install کلیک کن تا نصب بشه.

2. نصب کتابخونه‌های ضروری: کدهای ما برای کارهای مهمی مثل وصل شدن به وای‌فای، پردازش دیتای سرور و گرفتن زمان محلی به این کتابخونه‌ها وابسته‌اند.

  1. از منوی Sketch به مسیر Include Library > Manage Libraries برو.
  2. این سه تا کتابخونه رو سرچ کن و نصبشون کن:
  3. کتابخونه WiFiManager (ساخته tzapu)
  4. کتابخونه ArduinoJson (ساخته Benoit Blanchon - یادت باشه حتما نسخه سری 6.x رو نصب کنی، نه نسخه قدیمی‌تر)
  5. کتابخونه NTPClient (ساخته Fabrice Weinberg)

فلش کردن برنامه

  1. اتصال برد: برد D1 Mini رو با یه کابل میکرو USB سالم به کامپیوترت وصل کن.
  2. انتخاب برد: از منوی Tools به قسمت Board > ESP8266 Boards برو.
  3. گزینه LOLIN(WEMOS) D1 R2 & mini رو انتخاب کن.
  4. انتخاب پورت:
  5. از منوی Tools > Port، همون پورتی که با وصل کردن کابل اضافه شده رو انتخاب کن.
  6. آپلود فایل:
  7. فایل با فرمت ino رو تو نرم‌افزار آردوینو باز کن.
  8. روی دکمه آپلود (Upload) کلیک کن و منتظر باش تا پروسه تموم بشه.
مرحله ۱۳

ساخت مدار راه‌انداز موتور

الان که برنامه‌ریزی برد تموم شد، وقتشه اتصالات سخت‌افزاری رو انجام بدیم. پین‌های دیتای برد D1 Mini با ولتاژ 3.3 ولت کار می‌کنن و نهایتا 12 میلی‌آمپر جریان می‌دن. حتی موتور ویبره کوچیک ما هم خیلی بیشتر از این حرفا جریان می‌کشه و مستقیم وصل کردنش ممکنه به برد آسیب بزنه. پس باید با یه ترانزیستور، یه مدار راه‌انداز (درایور موتور) کوچیک بسازیم.

قطعات لازم برای مدار

  1. 1 عدد ترانزیستور BC547 (از نوع NPN)
  2. 1 عدد مقاومت 330 اهم (اختیاری برای محافظت بیشتر)
  3. 1 عدد دیود 1N4148 (برای محافظت برد در برابر ولتاژ برگشتی موتور)
  4. برد D1 Mini که برنامه‌ریزیش کردیم

ما ترانزیستور رو به صورت سری تو مسیر پایه منفی (گراند) موتور قرار می‌دیم تا مثل یه کلید الکترونیکی عمل کنه. نحوه سیم‌کشی این‌طوریه: 1. تامین برق (5 ولت):

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

اتصال ترانزیستور:

  1. پایه کلکتور (Collector) ترانزیستور رو به سیم منفی موتور وصل کن.
  2. پایه امیتر (Emitter) ترانزیستور رو مستقیم به پایه GND برد متصل کن. یه سر مقاومت 330 اهمی رو به پایه بیس (Base، پایه وسط ترانزیستور) و سر دیگه‌اش رو به پین D7 روی برد وصل کن.
  3. چطور کار می‌کنه: وقتی کدهای ما یه هواپیما می‌بینن، پین D7 رو فعال (HIGH) می‌کنن. یه سیگنال 3.3 ولتی از مقاومت رد می‌شه، به پایه بیس می‌رسه و ترانزیستور رو روشن می‌کنه. این‌طوری جریان از موتور رد می‌شه و ملخ‌ها می‌چرخن.

4. دیود محافظ: وقتی سیستم دستور خاموشی میده، میدان مغناطیسی داخل موتور یک‌دفعه می‌ریزه و یه جریان ناگهانی رو به مدار برمی‌گردونه. برای اینکه این اتفاق ترانزیستور رو نسوزونه، دیود 1N4148 رو به صورت موازی با موتور نصب کن.

  1. پایه کاتد دیود (سمتی که نوار مشکی داره) رو به سیم مثبت موتور (5 ولت) وصل کن.
  2. پایه آند دیود رو به سیم منفی موتور (یا همون کلکتور ترانزیستور) متصل کن.
مرحله ۱۴

راه‌اندازی و کالیبره کردن رادار

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

تنظیمات شبکه وای‌فای

  1. گوشی، تبلت یا لپ‌تاپت رو بردار و برو تو بخش تنظیمات وای‌فای.
  2. لیست شبکه‌ها رو بگرد. یه شبکه جدید بدون رمز به اسم AircraftMapTracker می‌بینی؛ بهش وصل شو.
  3. بعد از وصل شدن، احتمالا یه صفحه وب خودبه‌خود برات باز می‌شه. اگه باز نشد، مرورگرت رو باز کن و آدرس 192.168.4.1 رو وارد کن.
  4. روی دکمه Configure WiFi بزن. از لیست، اسم مودم خونه‌ت رو انتخاب کن، رمزش رو وارد کن و Save رو بزن.

حالا برد D1 Mini این اطلاعات رو ذخیره می‌کنه و از این به بعد مستقیم به مودمت وصل می‌شه.

کالیبره کردن موقعیت و رادار

حالا که هواپیمات به اینترنت خونه وصل شده، تو مرورگرت آدرس رو وارد کن تا داشبورد کنترلی بالا بیاد.

روش اول: همگام‌سازی خودکار

روی دکمه Sync GPS کلیک کن. داشبورد با استفاده از سنسور جی‌پی‌اس گوشیت، مختصات دقیقت رو می‌گیره و خودش فیلدهای طول و عرض جغرافیایی رو پر می‌کنه.

روش دوم: استفاده از گوگل مپس

اگه مرورگر گوشیت به خاطر مسائل امنیتی اجازه نداد لوکیشن خونده بشه، اصلا نگران نباش؛ از این ترفند استفاده کن:

  1. اپلیکیشن Google Maps رو تو گوشیت باز کن.
  2. مکان دقیق خونه‌ت رو پیدا کن و انگشتت رو روی اون نقطه نگه دار تا یه پین قرمز روی نقشه قرار بگیره.
  3. تو اطلاعات بالای صفحه، گوگل مپ مختصات عددی دقیق اون نقطه (مثلا 40.7128, -74.0060) رو بهت نشون میده.
  4. این اعداد رو کپی کن و دستی تو کادرهای طول و عرض جغرافیایی در صفحه داشبورد وارد کن.

تعریف شعاع رادار

با کشیدن اسلایدر، محدوده ردیابی رو (مثلا روی 25 کیلومتر) تنظیم کن. این عدد یعنی هواپیمای رومیزی تو تا شعاع چند کیلومتریش رو بگرده. بعد از اینکه مختصات و شعاع رو چک کردی، روی Set Manual Location کلیک کن. به محض زدن این دکمه، برد یه کادر مجازی رو نقشه دور موقعیتت می‌کشه و اطلاعاتش رو تو حافظه همیشگیش ثبت می‌کنه.

داشبورد رفرش می‌شه و بخش گزارش‌های زنده (Live log) رو نشون میده. حالا اگه یه هواپیمای واقعی وارد محدوده آسمون تو بشه، شماره پرواز و کشور مبدأش رو همون لحظه رو صفحه می‌بینی؛ و البته در کنارش، صدای جذاب موتور ماکتت هم بلند می‌شه!

مرحله ۱۵

نتیجه‌گیری و کلام آخر

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

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

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

امیدوارم از این آموزش که تو تیم آیسی‌مدار براتون آماده کردیم حسابی لذت برده باشی. اگر این هواپیمای رومیزی جذاب رو ساختی، حتما تجربه و نظرت رو تو بخش کامنت‌ها برامون بنویس. خیلی خوشحال می‌شیم پروژه‌های خفنی که می‌سازید رو ببینیم!

فایل‌های پیوست

INO aircraft_locator.ino

تو میتونی اولین سازنده باشی!

اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر

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

آموزش‌های مشابه

گفتگو‌های کاربران

هنوز نظری ثبت نشده؛ تو شروع کن!