ساخت یک رادار در خانه

عکسی از رادار قدس سپاه پاسداران جمهوری اسلامی ایران
عکسی از رادار قدس سپاه پاسداران جمهوری اسلامی ایران

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

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

  • یک آردوینو (من از UNO استفاده می‌کنم) به عنوان مغز متفکر پروژه
  • یک پودمان (ماژول) اولتراسونیک HC-SR04 (HC-SR05 هم کارکرد مشابهی دارد) برای سنجیدن فاصله
  • یک موتور سروو (من از SG92R استفاده می‌کنم) برای چرخاندن اولتراسونیک
  • یک پودمان نمایشگر TM1637 برای نمایش فاصله

و البته مقداری سیم!

راهنمای گام‌به‌گام

شمای کلی

شمای کلی
شمای کلی

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

  • پایانهٔ چکانه (Trigger): به پایانهٔ ۷ آردوینو
  • پایانهٔ پژواک (Echo): به پایانهٔ ۸ آردوینو
  • پایانه‌های VCC و GND هم که مشخص است

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

برای این کار، ابتدا به مدت مشخص به پایانهٔ چکانه ولتاژ می‌دهیم تا نشانک فرستاده شود. هر وقت نشانک برگردد، پایانهٔ پژواک به ما ولتاژ می‌دهد. زمان طی شده را نصف می‌کنیم (به خاطر رفت و برگشت) و سپس در ۰٫۰۳۴ ضرب می‌کنیم. مقدار حاصل، فاصله با یکای سانتی‌متر است.

همچنین پایانهٔ پژواک را هر دفعه صفر می‌کنیم تا بازنشانی شود.

https://gist.github.com/mskf1383/b4b1bf8401b73fb035f61b46f33b5388

کدهای اولتراسونیک را داخل یک تابع نوشتم؛ چون بعداً لازم می‌شود.

اگر این کد را روی آردوینو بارگذاری کنید، هر لحظه فاصله را می‌سنجد و در نمایشگر سریال چاپ می‌کند.

توجه: حواستان به حداکثر برد فاصله‌سنجی اولتراسونیک باشد. همچنین زاویهٔ مانع نیز بسیار مؤثر است.

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

  • سیم زرد: به پایانهٔ ۹ آردوینو
  • سیم قرمز/نارنجی: به 5V
  • سیم سیاه/قهوه‌ای: به زمین

اولتراسونیک را روی یک سروو می‌گذاریم. سروو را می‌توان به طور [تقریباً] دقیق روی یک زاویهٔ مشخص تنظیم کرد. هر چند لحظه، زاویهٔ سروو را عوض می‌کنیم و صبر می‌کنیم تا اولتراسونیک فاصله را بسنجد. بعد زاویه را عوض می‌کنیم و…

برای راه‌اندازی سروو از کتابخانهٔ Servo ساختهٔ خود آردوینو استفاده می‌کنیم. می‌توانید از داخل نرم‌افزار آردوینو نصب کنید:

نماگرفتی از نرم‌افزار آردوینو - نصب کتابخانهٔ Servo
نماگرفتی از نرم‌افزار آردوینو - نصب کتابخانهٔ Servo

یک سروو تعریف می‌کنیم و نامش را baseServo می‌گذاریم. یک متغیر زاویه هم تعریف می‌کنیم و با استفاده از حلقهٔ for،‏ ۱۰ تا ۱۰ تا زیادش می‌کنیم تا به ۱۸۰ برسد. بعد در یک حلقهٔ دیگر، برعکس همین کار را انجام می‌دهیم.

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

https://gist.github.com/mskf1383/ffb5739b317f7018ab89d9481fa798e0

استفاده از نمایشگر

  • پایانهٔ CLK: به پایانهٔ ۲ آردوینو
  • پایانهٔ DIO: به پایانهٔ ۳ آردوینو
  • پایانه‌های VCC و GND هم که مشخص است

برای نمایشگر از کتابخانهٔ TM1637 ساختهٔ Avishay Orpaz استفاده می‌کنیم:

نماگرفتی از نرم‌افزار آردوینو - نصب کتابخانهٔ TM1637
نماگرفتی از نرم‌افزار آردوینو - نصب کتابخانهٔ TM1637

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

https://gist.github.com/mskf1383/0417d781540105a8a72cbf80c2df1d74
توجه: به خط‌های اول دقت کنید: درون‌ریزی کتابخانه‌ها، تنظیم شمارهٔ هم پایانه، تعریف اشیا، تعریف متغیرها
و همچنین تابع setup

نتیجه

https://wokwi.com/projects/405108047753524225
https://www.aparat.com/video/video/embed/videohash/dfy2ivp/vt/frame
https://www.aparat.com/video/video/embed/videohash/rxq0ky8/vt/frame



تقدیم به مجاهد شهید، اسماعیل هنیه
تقدیم به مجاهد شهید، اسماعیل هنیه