فهرست مطالب:

موانع را به صورت ناهمزمان با سونوگرافی تشخیص دهید: 4 مرحله
موانع را به صورت ناهمزمان با سونوگرافی تشخیص دهید: 4 مرحله

تصویری: موانع را به صورت ناهمزمان با سونوگرافی تشخیص دهید: 4 مرحله

تصویری: موانع را به صورت ناهمزمان با سونوگرافی تشخیص دهید: 4 مرحله
تصویری: دستگاه گوارش بدن ما چگونه غذا را به مدفوع تبدیل میکند|انیمیشنهای پزشکی را در کانال قاصدک ببینید 2024, جولای
Anonim
موانع را به صورت ناهمزمان با سونوگرافی تشخیص دهید
موانع را به صورت ناهمزمان با سونوگرافی تشخیص دهید

من برای سرگرمی یک ربات می سازم که می خواهم به صورت مستقل در داخل خانه حرکت کند.

این یک کار طولانی است و من مرحله به مرحله آن را انجام می دهم.

این تمرکز آموزنده بر روی تشخیص موانع با Arduino Mega است

استفاده از سنسورهای اولتراسونیک HC-SR04 در مقابل HY-SRF05 ارزان و ساده است اما ادغام آنها در حلقه میکروکنترلر در یک ربات پیچیده دشوار می شود. من می خواستم تشخیص موانع را به صورت ناهمزمان اجرا کنم.

_

من قبلاً 3 دستورالعمل در مورد ویژگی های این ربات منتشر کرده ام:

  • رمزگذار چرخ خود را بسازید
  • WIFI Gateway خود را بسازید
  • از واحد ماژول اینرسی استفاده کنید

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

مرحله 1: مشکل سنسورهای اولتراسونیک و میکروکنترلرها دقیقاً چیست؟

دقیقاً مشکل سنسورهای اولتراسونیک و میکروکنترلرها چیست؟
دقیقاً مشکل سنسورهای اولتراسونیک و میکروکنترلرها چیست؟
دقیقاً مشکل سنسورهای اولتراسونیک و میکروکنترلرها چیست؟
دقیقاً مشکل سنسورهای اولتراسونیک و میکروکنترلرها چیست؟

انتظار همزمان و محدودیت های آردوینو

کد میکروکنترلرها در یک حلقه اجرا می شود و از چند رشته پشتیبانی نمی کند. سنسورهای اولتراسونیک بر اساس مدت زمان سیگنال هستند. این مدت زمان تا 30 متر ثانیه طول می کشد که مدت زمان زیادی طول می کشد تا زمانی که میکروکنترلرها با موتورها و سنسورهای مختلف برخورد می کنند منتظر بمانید (برای مثال موتورهای سروو و DC با رمزگذار چرخ).

بنابراین من می خواستم یک شی را توسعه دهم که به صورت ناهمزمان اجرا می شود.

مرحله 2: چگونه کار می کند؟

چگونه کار می کند؟
چگونه کار می کند؟

این دستگاه برای Atmega برای تشخیص موانع طراحی شده است. از 4 سنسور اولتراسونیک پشتیبانی می کند.

به دلیل وقفه های دوره ای ، سیستم می تواند حداکثر 4 سنسور اولتراسونیک را کنترل کند. کد اصلی فقط باید تعیین کند که کدام سنسور با شرط و آستانه فعال شود. اصلی تنها در صورت ظاهر شدن (شرط ، آستانه) قطع می شود.

توابع اصلی عبارتند از:

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

مرحله 3: جزئیات فنی

از timer4 استفاده کنید بنابراین پین 6 7 8 نمی تواند به عنوان PWM استفاده شود.

برای هر سنسور ، شی نیاز به یک پین ماشه و یک پین وقفه دارد.

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

مرحله 4: چگونه پیاده سازی کنیم؟

چگونه پیاده سازی کنیم؟
چگونه پیاده سازی کنیم؟

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

از این مخزن GitHub بارگیری کنید

  • EchoObstacleDetection.cpp ،
  • EchoObstacleDetection.h
  • ExampleEchoObstacleDetection.ino

دایرکتوری EchoObstacleDetection را در داخل کتابخانه IDE خود ایجاد کرده و.cpp و.h را منتقل کنید

امتحانش کن

ExampleEchoObstacleDetection.ino را باز کنید.

این یک مثال ساده تشخیص موانع است که با 2 سنسور اولتراسونیک اجرا می شود.

خروجی بر روی مانیتور سریال هدایت می شود. ابتدا فواصل تشخیص داده شده توسط 2 سنسور را چاپ می کند و سپس بسته به فاصله زیر آستانه هشدارها را چاپ می کند.

توصیه شده: