فهرست مطالب:

سیستم راداری ساده از Magicbit: 6 مرحله
سیستم راداری ساده از Magicbit: 6 مرحله

تصویری: سیستم راداری ساده از Magicbit: 6 مرحله

تصویری: سیستم راداری ساده از Magicbit: 6 مرحله
تصویری: پراناو میستری: قابلیت‌های هیجان انگیز فن‌آوری سیکس سنس 2024, جولای
Anonim

این آموزش نحوه ساخت یک سیستم راداری ساده با استفاده از حسگر HC-SR04 و برد Microbit dev با پردازش و Arduino IDE را نشان می دهد.

تدارکات:

  • موتور میکرو سروو SG90
  • سیم های جامپر (عمومی)
  • تخته نان (عمومی)
  • Magicbit
  • کابل USB-A به Micro-USB
  • سنسور اولتراسونیک - HC -SR04 (عمومی)

مرحله 1: داستان

در این آموزش ما با نحوه ساخت یک سیستم راداری ساده با استفاده از برد اصلی Magicbit آشنا می شویم. برای این منظور ما از سنسور اولتراسونیک HC-SR04 استفاده می کنیم و برای نمایش داده ها ، از محیط پردازش استفاده می کنیم. بیایید شروع کنیم

مرحله 2: نظریه و روش شناسی

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

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

راه اندازی سخت افزار
راه اندازی سخت افزار
راه اندازی سخت افزار
راه اندازی سخت افزار

برای این پروژه ما عمدتا از سه جزء سخت افزاری استفاده کردیم. آنها Magicbit ، سروو موتور و سنسور اولتراسونیک هستند. ارتباط بین تمام این قسمتها در شکل بالا نشان داده شده است.

سنسور اولتراسونیک برای افزایش قدرت از 3.3 ولت استفاده کرد. بنابراین ما از پورت پایین راست برد Magicbit برای اتصال سنسور اولتراسونیک به Magicbit استفاده کردیم. اما از سرو موتور برای عملکرد مناسب 5 ولت استفاده می شود ، بنابراین ما از پورت پایینی سمت چپ برای اتصال سرو موتور با Magicbit استفاده کردیم. در این مورد ، ما از ماژول اتصال دهنده Magic bit servo connector استفاده می کنیم. اما اگر آن ماژول را ندارید ، می توانید از سه سیم جامپر برای اتصال 5V به 5V ، Gnd به Gnd و پین سیگنال به 26 پین در magicbit استفاده کنید.

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

مرحله 4: راه اندازی نرم افزار

راه اندازی نرم افزار
راه اندازی نرم افزار
راه اندازی نرم افزار
راه اندازی نرم افزار

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

magicbit-arduino.readthedocs.io/fa/latest/

hello.processing.org/editor/

اجازه دهید کد Arduino IDE و نحوه عملکرد آن کد را بررسی کنیم.

برای هدایت سروو از کتابخانه سرو سرو ESP32 استفاده می کنیم. این کتابخانه تقریباً شامل مدیر هیئت مدیره جادویی در Arduino IDE است. برای مقابله با سنسور اولتراسونیک از کتابخانه newPing استفاده می کنیم. این را می توان از لینک زیر بارگیری کرد.

bitbucket.org/teckel12/arduino-new-ping/do…

فایل فشرده را بارگیری کرده و به ابزار بروید> شامل کتابخانه> کتابخانه Zip را در آردوینو اضافه کنید. اکنون فایل زیپ بارگیری شده کتابخانه جدید پین خود را انتخاب کنید. برای برقراری ارتباط با پردازش از ارتباط سریال با سرعت 115200 baud استفاده کردیم. این مناسب ترین فرکانس برای ESP32 است. در هر زاویه ای ما داده های خود را با استفاده از این پروتکل به رایانه ارسال می کنیم. فاصله تا نزدیکترین جسم جلو از حسگر ، جهت چرخش و زاویه چرخش در این داده ها گنجانده شده است. با استفاده از دو حلقه ، سروو را در دو جهت می چرخانیم. در حالی که یک درجه چرخش ما داده های سریال را در 4 زمان ارسال کردیم. دلیل آن را می توانید در پردازش توضیحات قسمت درک کنید.

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

در طرح پردازش ابتدا رابط نمایش داده های خود را با استفاده از توابع گرافیکی ساده طراحی می کنیم. در ابتدای کد ، ما ارتباط سریال خود را با استفاده از کتابخانه های سریال برقرار می کنیم. در عملکرد راه اندازی ، باید برخی از درگاه های USB را که برای اتصال Magicbit به رایانه استفاده می کنید تغییر دهید. هنگام تنظیم IDE Arduino برای بارگذاری کد ، می توانید پورت خود را با استفاده از Arduino IDE بررسی کنید. سپس نام پورت com را در قسمت setup در پردازش طرح تغییر دهید. هنگامی که داده های سریال در دسترس است ، عملکرد Serialevent به طور خودکار فعال می شود. بنابراین منطق اصلی کد در رویداد سریال برای جلوگیری از از دست رفتن زاویه ها و داده ها گنجانده شده است. هنگامی که داده های جدید در دسترس است ، ما بر اساس زاویه خود یک خط در صفحه ترسیم می کنیم. در آن زمان اگر هیچ شیئی تشخیص داده نشود ، خط کامل سبز رنگ است. در غیر این صورت ، قسمتی از خط با توجه به فاصله حسگر تا شیء قرمز می شود. همچنین با توجه به جهت چرخش ، 200 خط دیگر را نزدیک به آن خط با کاهش سطح رنگ سبز ترسیم می کنیم. بین هر Main 0.25 درجه اختلاف داریم. بنابراین ، ما هر بار 4 قرائت از Magicbit در هر چرخش درجه دریافت می کنیم. به همین دلیل ما می توانیم جستجوی زیبایی را روی صفحه ایجاد کنیم.

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

شما می توانید کدها را به دلخواه آنچه می خواهید نمایش داده شود سفارشی کنید.

مرحله 5: عیب یابی

طرح پردازش اجرا نمی شود.

  • کمی صبر کن به دلیل زمان راه اندازی بستگی به رایانه و عملکرد GPU شما دارد.
  • در پردازش طرح ، شماره پورت سریال را بررسی کنید.
  • بررسی کنید اتصال USB به درستی ثابت شده است.
  • ارتباط بین سنسور اولتراسونیک و Magicbit را بررسی کنید.
  • مانیتور سریال را باز کنید و بررسی کنید که داده ها از آردوینو می آیند. در غیر این صورت ، مشکل کد Arduino یا اتصال USB شما است.

سروو کار نمی کند.

  • بررسی کنید اتصال USB به درستی ثابت شده است.
  • سیم کشی را بررسی کنید.
  • بررسی کنید سروو سالم است یا خیر.

مرحله 6: کد آردوینو

#عبارتند از

#تعریف TRIGGER_PIN 21 #تعریف ECHO_PIN 22 #حداکثر MAX_DISTANCE 200 سونار NewPing (TRIGGER_PIN ، ECHO_PIN ، MAX_DISTANCE) ؛ #include // include servo library int distance؛ سرو رادار سروو ؛ void setup () {Serial.begin (115200)؛ RadarServo.attach (26) ؛ // سروو موتور تأخیر متصل شده (3000) را تعیین می کند. } void loop () {// موتور سروو را از 15 تا 165 درجه برای (int i = 0؛ i <= 180؛ i ++) {RadarServo.write (i)؛ تأخیر (50) ؛ distance = sonar.ping_cm ()؛ // یک تابع برای محاسبه فاصله اندازه گیری شده توسط سنسور اولتراسونیک برای هر درجه برای (int j = 0؛ j0) {break؛ } Serial.print (i)؛ // درجه فعلی را به پورت سریال Serial.print ("،") ارسال می کند. // کاراکتر اضافی را درست در کنار مقدار قبلی مورد نیاز بعدا در پردازش IDE برای نمایه سازی Serial.print (j) ارسال می کند. // درجه فعلی را به پورت سریال Serial.print ("*") ارسال می کند. Serial.print (1) ؛ // مقدار فاصله را به پورت سریال Serial.print ("/") ارسال می کند. // کاراکتر اضافی را درست در کنار مقدار قبلی مورد نیاز بعداً در پردازش IDE برای نمایه سازی Serial.print (فاصله) ارسال می کند. // مقدار فاصله را به Port Port Serial.print (".") ارسال می کند؛ // نویسه اضافی را درست در کنار مقدار قبلی مورد نیاز بعداً در پردازش IDE برای نمایه سازی ارسال می کند}} // خطوط قبلی را از 165 تا 15 درجه برای (int i = 180؛ i> = 0؛ i-) {RadarServo. بنویسید (i) ؛ تأخیر (50) ؛ فاصله = sonar.ping_cm ()؛ برای (int j = 75؛ j> = 0؛ j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {ادامه } Serial.print (i)؛ // درجه فعلی را به پورت سریال Serial.print ("،") ارسال می کند. // کاراکتر اضافی را درست در کنار مقدار قبلی مورد نیاز بعدا در پردازش IDE برای نمایه سازی Serial.print (j) ارسال می کند. // درجه فعلی را به پورت سریال Serial.print ("*") ارسال می کند. Serial.print (-1) ؛ // مقدار فاصله را به پورت سریال Serial.print ("/") ارسال می کند. // کاراکتر اضافی را درست در کنار مقدار قبلی مورد نیاز بعداً در پردازش IDE برای نمایه سازی Serial.print (فاصله) ارسال می کند. // مقدار فاصله را به Port Port Serial.print (".") ارسال می کند؛ // نویسه اضافه را درست در کنار مقدار قبلی مورد نیاز بعداً در پردازش IDE برای نمایه سازی ارسال می کند}}

}

توصیه شده: