ساخت یک رادار در خانه
سلام! در این فرسته بنا داریم با استفاده از آردوینو یک رادار ساده بسازیم. البته راداری که خواهیم ساخت، خیلی با رادار داخل عکس متفاوت خواهد بود!
قطعات مورد نیاز
- یک آردوینو (من از UNO استفاده میکنم) به عنوان مغز متفکر پروژه
- یک پودمان (ماژول) اولتراسونیک HC-SR04 (HC-SR05 هم کارکرد مشابهی دارد) برای سنجیدن فاصله
- یک موتور سروو (من از SG92R استفاده میکنم) برای چرخاندن اولتراسونیک
- یک پودمان نمایشگر TM1637 برای نمایش فاصله
و البته مقداری سیم!
راهنمای گامبهگام
شمای کلی
به کار انداختن اولتراسونیک
- پایانهٔ چکانه (Trigger): به پایانهٔ ۷ آردوینو
- پایانهٔ پژواک (Echo): به پایانهٔ ۸ آردوینو
- پایانههای VCC و GND هم که مشخص است
اولتراسونیک اینطور کار میکند که در ابتدا یک نشانک (سیگنال) صوتی میفرستد و پس از بازگشت نشانک، باید بر اساس زمان طی شده، مسافت را محاسبه کنیم (با توجه به سرعت صوت).
برای این کار، ابتدا به مدت مشخص به پایانهٔ چکانه ولتاژ میدهیم تا نشانک فرستاده شود. هر وقت نشانک برگردد، پایانهٔ پژواک به ما ولتاژ میدهد. زمان طی شده را نصف میکنیم (به خاطر رفت و برگشت) و سپس در ۰٫۰۳۴ ضرب میکنیم. مقدار حاصل، فاصله با یکای سانتیمتر است.
همچنین پایانهٔ پژواک را هر دفعه صفر میکنیم تا بازنشانی شود.
کدهای اولتراسونیک را داخل یک تابع نوشتم؛ چون بعداً لازم میشود.
اگر این کد را روی آردوینو بارگذاری کنید، هر لحظه فاصله را میسنجد و در نمایشگر سریال چاپ میکند.
توجه: حواستان به حداکثر برد فاصلهسنجی اولتراسونیک باشد. همچنین زاویهٔ مانع نیز بسیار مؤثر است.
چرخاندن اولتراسونیک با سروو
- سیم زرد: به پایانهٔ ۹ آردوینو
- سیم قرمز/نارنجی: به 5V
- سیم سیاه/قهوهای: به زمین
اولتراسونیک را روی یک سروو میگذاریم. سروو را میتوان به طور [تقریباً] دقیق روی یک زاویهٔ مشخص تنظیم کرد. هر چند لحظه، زاویهٔ سروو را عوض میکنیم و صبر میکنیم تا اولتراسونیک فاصله را بسنجد. بعد زاویه را عوض میکنیم و…
برای راهاندازی سروو از کتابخانهٔ Servo ساختهٔ خود آردوینو استفاده میکنیم. میتوانید از داخل نرمافزار آردوینو نصب کنید:
یک سروو تعریف میکنیم و نامش را baseServo میگذاریم. یک متغیر زاویه هم تعریف میکنیم و با استفاده از حلقهٔ for، ۱۰ تا ۱۰ تا زیادش میکنیم تا به ۱۸۰ برسد. بعد در یک حلقهٔ دیگر، برعکس همین کار را انجام میدهیم.
هر بار که زاویهٔ سروو عوض شد، فاصله را میسنجیم و چاپ میکنیم. البته قبل از سنجیدن یک تأخیر هم ایجاد میکنیم تا سروو آرام بگیرد و الکی دقت فاصلهسنجی پایین نیاید!
استفاده از نمایشگر
- پایانهٔ CLK: به پایانهٔ ۲ آردوینو
- پایانهٔ DIO: به پایانهٔ ۳ آردوینو
- پایانههای VCC و GND هم که مشخص است
برای نمایشگر از کتابخانهٔ TM1637 ساختهٔ Avishay Orpaz استفاده میکنیم:
نام نمایشگر را monitor میگذاریم. یک تابع جدید برای نمایش فاصله تعریف میکنیم و هم چاپ کردن در سریال و هم نمایش روی نمایشگر را داخل آن قرار میدهیم.
توجه: به خطهای اول دقت کنید: درونریزی کتابخانهها، تنظیم شمارهٔ هم پایانه، تعریف اشیا، تعریف متغیرها
و همچنین تابع setup
بر اساس علایق شما
این "منجلاب" دقیقا چطور کار میکنه؟
بر اساس علایق شما
گیرافتاده در فاصلههای تکراری...
بر اساس علایق شما
زندگی پرایدی حق ما نیست! این هم، این پراید!