فهرست مطالب:

ربات حضور مجازی: 15 مرحله
ربات حضور مجازی: 15 مرحله

تصویری: ربات حضور مجازی: 15 مرحله

تصویری: ربات حضور مجازی: 15 مرحله
تصویری: 😉 وقتی شوهرش سرکاره، ربات مرد تمام خواسته های زن را برآورده می کند 2024, نوامبر
Anonim
Image
Image
ماشین روبات متحرک
ماشین روبات متحرک

این ربات متحرک با نمایندگی از "حضور مجازی" شخصی که از راه دور آن را کنترل می کند ، با محیط فیزیکی خود در تعامل است. هر کسی در هر کجای دنیا می تواند به آن دسترسی داشته باشد تا غذای خود را پخش کند و با شما بازی کند.

کار در اینجا توسط دو نفر (یکی در آلمان و دیگری در ایالات متحده) به عنوان تلاشی برای فراتر رفتن از وسایل سنتی ارتباطات مبتنی بر اینترنت با ایجاد یک رابط فیزیکی برای تعامل از راه دور توسعه یافته است. از آنجا که COVID-19 همچنان بر جهان تأثیر می گذارد و همه مسئول محدود کردن تماس فیزیکی ما با مردم هستند ، ما سعی می کنیم ارتباط ملموسی را که بخشی از تعامل فیزیکی است ، بازگردانیم.

این دستگاه بر اساس ESP32-Camera-Robot-FPV-Teacher-Entry Instructable و اصلاح شده است که شامل حسگر فاصله ، توزیع کننده درمان و قابلیت "کنترل از هر نقطه در جهان" است ، به شرطی که اتصال به اینترنت تا حدودی پایدار باشد.

تدارکات

این پروژه دارای 4 قسمت اصلی است - یک موبایل روبات موبایل ، یک تراشه تراشه ، یک جوی استیک و راه اندازی ارتباطات شبکه.

ماشین روبات متحرک

  • تخته نان
  • موتور 2 چرخ محرک و کیس روبات شاسی (شامل چرخ ها ، موتورهای DC ، تخته نصب و پیچ ها)
  • آردوینو مگا 2560 (اگر بدون سنسور فاصله یا تراشه تراشه بسازید ، Uno پین کافی دارد)
  • (3) باتری های 9 ولت (چند عدد دیگر در اطراف داشته باشید زیرا اشکال زدایی آنها را خالی می کنید)
  • LM2596 منبع تغذیه ماژول DC/DC Buck 3A تنظیم کننده (یا مشابه)
  • ماژول WIFI ESP32-CAM
  • مبدل سریال FT232RL FTDI USB به TTL (برای برنامه نویسی ESP32-CAM)
  • سنسور فاصله فراصوت HC-SR04
  • درایور موتور L298N
  • (3) LEDS (هر رنگ)
  • (3) مقاومت 220 اهم

تراشه تراشه

  • (2) SG90 Servos
  • مقوا / مقوا

جوی استیک

  • آردوینو اونو
  • ماژول جوی استیک
  • مینی بردبورد ، (1) LED ، (1) مقاومت 220 اهم (اختیاری)

دیگر

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

صبر =)

مرحله 1: ماشین روبات متحرک

شاسی Robot Car به عنوان یک پلت فرم تلفن همراه عمل می کند و Arduino MEGA به عنوان میکروکنترلر اصلی موتورها را حرکت می دهد ، مقادیر سنسور را می خواند و سرویس ها را فعال می کند. اکثر اقدامات با دریافت دستورات Arduino MEGA از طریق ارتباط سریال ، ارسال شده از ESP32-CAM انجام می شود. در حالی که ESP32 جریان مستقیم دوربین را برای کنترل ربات فراهم می کند ، عملکرد دیگر آن مدیریت اتصال بی سیم بین ربات و سرور است ، بنابراین به کاربران امکان می دهد آن را از هر نقطه در جهان کنترل کنند. ESP32 دستوراتی را از طریق صفحه کلید از طریق فشردن کلید دریافت می کند و به عنوان مقادیر کاراکتر به Arduino MEGA ارسال می کند. بر اساس مقدار دریافتی ، خودرو به جلو ، عقب و غیره حرکت می کند. از آنجا که کنترل از راه دور از طریق اینترنت به عوامل خارجی زیادی از جمله تاخیر زیاد ، کیفیت ضعیف جریان و حتی قطع اتصال بستگی دارد ، سنسور فاصله برای جلوگیری از تصادف ربات در نظر گرفته شده است. *با توجه به نیازهای زیاد و نوسانات تراشه ESP32 ، تنظیم کننده منبع تغذیه برای استفاده با باتری توصیه می شود (نمودار سیم کشی را ببینید).

مرحله 2: ماشین روبات متحرک - نمودار مدار

ماشین ربات موبایل - نمودار مدار
ماشین ربات موبایل - نمودار مدار

ما مونتاژ این گام به گام را به شما آموزش می دهیم.

مرحله 3: ماشین روبات متحرک - مونتاژ (موتورها)

Mobile Robot Car - Assembly (Motors)
Mobile Robot Car - Assembly (Motors)

پس از مونتاژ شاسی 2WD ، موتورها و باتری را از طریق درایور L298N به Arduino MEGA وصل می کنیم.

مرحله 4: ماشین ربات متحرک - مونتاژ (سنسور فاصله)

ماشین روبات متحرک - مونتاژ (سنسور فاصله)
ماشین روبات متحرک - مونتاژ (سنسور فاصله)

با توجه به اینکه چند جزء برای اتصال وجود دارد ، بیایید یک تخته نان اضافه کنیم ، بنابراین می توانیم برق و زمین مشترک را به راحتی متصل کنیم. بعد از اینکه سیم ها را دوباره سازماندهی کردیم ، سنسور فاصله را متصل کرده و آن را در جلوی ربات ثابت کنید.

مرحله 5: ماشین روبات متحرک - مونتاژ (ESP32 CAM)

ماشین روبات متحرک - مونتاژ (ESP32 CAM)
ماشین روبات متحرک - مونتاژ (ESP32 CAM)

در مرحله بعد ، ماژول ESP32-CAM را وصل کرده و آن را در کنار سنسور فاصله نزدیک جلوی ربات ثابت کنید. به یاد داشته باشید که این قطعه نسبتاً تشنه قدرت نیاز به باتری مخصوص خود و تنظیم کننده DC دارد.

مرحله 6: ماشین روبات متحرک - مونتاژ (تراشه تراشه)

ماشین روبات متحرک - مونتاژ (پخش کننده تراشه)
ماشین روبات متحرک - مونتاژ (پخش کننده تراشه)

اکنون ، اجازه دهید تراشه تراشه را اضافه کنید (اطلاعات بیشتر در این مورد در بخش "تراشه تراشه"). مطابق نمودار Fritzing دو سروو را سیم کشی کنید و دستگاه پخش کننده را در دم ربات ثابت کنید.

مرحله 7: ماشین ربات موبایل - مونتاژ (کوکی ها!)

ماشین روبات متحرک - مونتاژ (کوکی ها!)
ماشین روبات متحرک - مونتاژ (کوکی ها!)

در نهایت ، ما خوراکی ها را به تلگراف اضافه می کنیم!

مرحله 8: ماشین ربات موبایل - کد آردوینو

RobotCar_Code کدی است که باید در Arduino Mega بارگیری کنید.

در اینجا نحوه کار این است: آردوینو به بایت هایی که از ESP32 از طریق ارتباط سریال در باند 115200 ارسال می شود گوش می دهد. بر اساس بایت دریافتی ، خودرو با ارسال یک ولتاژ بالا یا پایین به موتورها برای کنترل جهت ، و همچنین یک متغیر PWM بین 0-255 برای کنترل سرعت ، به جلو ، عقب ، چپ ، راست و غیره حرکت می کند. این کد برای جلوگیری از برخورد مقادیر دریافتی از سنسور فاصله را نیز می خواند و اگر فاصله کمتر از آستانه تعیین شده باشد ، ربات به جلو حرکت نمی کند. در نهایت ، اگر آردوینو دستور توزیع غذا را دریافت کند ، سرویس های موجود در تراشه تراشه را فعال می کند.

مرحله 9: ماشین ربات موبایل - کد ESP32

ESP32 امکان ارتباط بین سرور و Arduino از طریق Wifi را فراهم می کند. این برنامه جداگانه از آردوینو برنامه نویسی شده است و کد مخصوص خود را دارد:

  • ESP32_Code.ino کد ESP32 برای ارسال اطلاعات به آردوینو است
  • app_httpd.cpp کد مورد نیاز برای وب سرور پیش فرض ESP32 است و عملکرد را برای گوش دادن به فشارهای کلید تنظیم می کند. برای اشکال زدایی و آزمایش روی وای فای محلی مناسب است. برای ارتباطات خارج از شبکه محلی استفاده نمی شود.
  • camera_index.h کد html برنامه وب پیش فرض است
  • camera_pins.h بسته به مدل ESP32 پین ها را تعریف می کند

کد ESP32 از کتابخانه Wifi و همچنین افزونه ESP32 استفاده می کند که می توانید با انجام این مراحل در Arduino IDE نصب کنید:

  1. در Arduino IDE به File> Preferences بروید
  2. سپس در برگه تنظیمات در آدرس Additional Boards Manager URL عبارت "https://dl.espressif.com/dl/package_esp32_index.json" را وارد کنید
  3. اکنون Boards Manager را باز کرده و به Tools> Board> Boards Manager بروید و ESP32 را با تایپ کردن "ESP32" جستجو کنید.
  4. شما باید "esp32 by Espressif Systems" را مشاهده کنید. روی نصب کلیک کنید.
  5. اکنون افزونه ESP32 باید نصب شود. برای بررسی دوباره به Arduino IDE بروید و به Tools> Board بروید و "ESP32 Wrover Module" را انتخاب کنید.
  6. دوباره به ابزارها> سرعت بارگذاری بروید و آن را روی "115200" تنظیم کنید.
  7. در نهایت ، به Tools> Partition Scheme بروید و آن را روی "برنامه بزرگ (3 مگابایت بدون OTA/1 مگابایت SPIFFS) تنظیم کنید
  8. پس از اتمام این کار ، توصیه می کنم این آموزش RandomNerdTutorials را دنبال کنید که در آن نحوه نهایی شدن راه اندازی ESP32 و بارگذاری کد با برنامه نویس FTDI توضیح داده شده است برنامه ریزی ESP32

مرحله 10: تراشه تراشه

تراشه تراشه
تراشه تراشه

دیسپنسر چیپ یک افزودنی ارزان قیمت به ربات متحرک است که به آن اجازه می دهد با ترک یک غذای خوشمزه ، محیط محلی را تحت تأثیر قرار دهد و با مردم / حیوانات ارتباط برقرار کند. این شامل یک جعبه بیرونی مقوایی با 2 سرو در داخل آن می باشد و همچنین یک کارتریج مقوایی داخلی که اقلامی (مانند آب نبات یا غذای سگ) را در اختیار شما قرار می دهد. یکی از سرووها به عنوان یک دروازه عمل می کند در حالی که دیگری آن را به بیرون هل می دهد.

*همه ابعاد بر حسب میلی متر است

مرحله 11: جوی استیک

جوی استیک
جوی استیک

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

برای این ما فقط یک Arduino Uno داشتیم که توانایی استفاده از کتابخانه را نداشت ، بنابراین ما آن را مستقیماً با استفاده از پروتکل USB معروف به Device Firmware Update (DFU) برنامه ریزی کردیم که به آردوینو اجازه می دهد با یک سیستم عامل صفحه کلید USB HID عمومی فلش شود. به به عبارت دیگر ، هنگامی که arduino به usb وصل می شود ، دیگر به عنوان arduino شناخته نمی شود ، بلکه به عنوان صفحه کلید شناخته می شود!

مرحله 12: جوی استیک - نمودار مدار

جوی استیک - نمودار مدار
جوی استیک - نمودار مدار

در اینجا نحوه اتصال جوی استیک به شرح زیر است.

مرحله 13: جوی استیک - شبیه ساز صفحه کلید

برای اینکه Arduino Uno شما از یک صفحه کلید تقلید کند ، باید مستقیماً تراشه Atmega16u2 را در Arduino از طریق به روز رسانی سیستم عامل دستی (DFU) برنامه ریزی کنید. مراحل زیر فرآیند یک دستگاه ویندوز را شرح می دهد و امیدوارم به شما کمک کند از برخی از مشکلاتی که با آن روبرو شده ایم جلوگیری کنید.

اولین قدم این است که به صورت دستی درایور usm usb را روی آردوینو بنویسید تا به عنوان یک USB شناخته شود و نه یک آردوینو که بتواند با برنامه نویس FLIP فلش شود.

  1. برنامه نویس FLM Atmel را از اینجا بارگیری کنید
  2. آردوینو Uno خود را وصل کنید
  3. به Device Manager بروید و Arduino را پیدا کنید. تحت COM یا Unknown Device خواهد بود. آن را وصل و وصل کنید تا مطمئن شوید این دستگاه درست است.
  4. هنگامی که Arduino Uno را در Device Manager پیدا کردید ، روی آن راست کلیک کرده و Properties> Driver> Update Driver> Browse My Computer For Driver Software> به من اجازه دهید از لیست درایورهای موجود در رایانه من> Disk> Browse به فایل "atmel_usb_dfu.inf" را انتخاب کرده و آن را انتخاب کنید. این باید در پوشه ای باشد که Atmel FLIP Programmer شما در آن نصب شده است. در رایانه من اینجا است: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
  5. درایور را نصب کنید
  6. اکنون به مدیر دستگاه برگردید و باید یک "دستگاه USB Atmel" با Arduino Uno که اکنون با عنوان ATmega16u2 برچسب گذاری شده است مشاهده کنید!

اکنون که رایانه Arduino Uno را به عنوان دستگاه USB تشخیص داده است ، می توانیم از برنامه نویس FLIP برای فلش کردن آن با 3 فایل جداگانه و تبدیل آن به صفحه کلید استفاده کنیم.

اگر Arduino Uno خود را بعد از قسمت اول از برق جدا کردید ، آن را دوباره وصل کنید.

  1. FLIP را باز کنید
  2. با اتصال کوتاه برق به زمین ، Arduino Uno را بازنشانی کنید.
  3. روی Device Selection (نماد مانند ریزتراشه) کلیک کنید و ATmega16U2 را انتخاب کنید
  4. روی Select a Communication Medium (نماد مانند سیم USB) کلیک کرده و USB را انتخاب کنید. اگر قسمت اول را به درستی انجام داده اید ، سایر دکمه های خاکستری باید قابل استفاده شوند.
  5. به File> Load Hex File> بروید و فایل Arduino-usbserial-uno.hex را بارگذاری کنید
  6. در پنجره FLIP شما باید سه قسمت را ببینید: Operations Flow ، FLASH Buffer Information و ATmega16U2. در Operations Flow کادرهای Erase، Program، and Verify را علامت بزنید و سپس روی Run کلیک کنید.
  7. پس از اتمام این فرآیند ، در قسمت ATmega16U2 روی Start Application کلیک کنید.
  8. با جدا کردن آردوینو از رایانه و اتصال مجدد به آن ، دوچرخه سواری کنید.
  9. با اتصال کوتاه برق به زمین ، Arduino Uno را بازنشانی کنید.
  10. Arduino IDE را باز کرده و فایل JoyStickControl_Code.ino را روی برد بارگذاری کنید.
  11. با جدا کردن آردوینو از رایانه و اتصال مجدد به آن ، دوچرخه سواری کنید.
  12. با اتصال کوتاه قدرت به زمین ، آردوینو را بازنشانی کنید.
  13. به FLIP بازگردید ، مطمئن شوید که Device Selection نوشته Atmega16U2
  14. روی Select a Communication Medium کلیک کرده و USB را انتخاب کنید.
  15. به File> Load Hex File> بروید و فایل Arduino-keyboard-0.3.hex را بارگذاری کنید
  16. در پنجره FLIP شما باید سه قسمت را ببینید: Operations Flow ، FLASH Buffer Information و ATmega16U2. در Operations Flow کادرهای Erase، Program، and Verify را علامت بزنید و سپس روی Run کلیک کنید.
  17. پس از اتمام این فرآیند ، در قسمت ATmega16U2 روی Start Application کلیک کنید.
  18. با جدا کردن آردوینو از رایانه و اتصال مجدد به آن ، دوچرخه سواری کنید.
  19. حالا وقتی به Device Manager می روید ، باید یک HID Keyboard Device در زیر Keyboard ها وجود داشته باشد.
  20. دفترچه یادداشت یا هر ویرایشگر متن را باز کرده و حرکت جوی استیک را شروع کنید. شما باید اعداد را تایپ کنید!

اگر می خواهید کد موجود در طرح آردوینو را تغییر دهید ، به عنوان مثال دستورات جدیدی را روی جوی استیک بنویسید ، باید هر بار آن را با هر 3 فایل فلش کنید.

برخی از پیوندهای مفید: Arduino DFUAtLibUsbDfu.dll یافت نشد

این شبیه ساز صفحه کلید بر اساس این آموزش توسط مایکل در 24 ژوئن 2012 ساخته شده است.

مرحله 14: ارتباطات شبکه ای

ارتباطات شبکه ای
ارتباطات شبکه ای

برای دریافت جریان ویدئو و ارسال دستورات به روبات از هر نقطه در جهان ، ما به راهی برای انتقال داده ها به و از ESP32-CAM نیاز داریم. این کار در دو قسمت انجام می شود ، یک کنترل کننده اتصال در شبکه محلی شما و یک سرور عمومی. برای دستیابی به این هدف ، سه فایل را بارگیری کنید:

  • Handlers.py: اطلاعات را از ESP32-CAM و سرور عمومی رله می کند (تست شده بر روی پایتون 3.8)
  • Flask_app.py: نحوه پاسخگویی برنامه شما به درخواست های ورودی را مشخص می کند.
  • Robot_stream.html: ویدیو را در مرورگر شما ارائه می دهد و دستورات را از طریق صفحه کلید / جوی استیک (در Chrome آزمایش شده است) گوش می دهد.

شما می توانید این را مستقیماً در app_httpd.cpp کدگذاری کنید ، اما برای اشکال زدایی آسانتر ، ما از یک اسکریپت پایتون در رایانه متصل به همان شبکه استفاده می کنیم. handlers.py را باز کرده و آدرس IP و نام کاربری را به نام خود به روز کنید و آماده رفتن هستید. با اجرای این فایل ، جریان شروع می شود.

سرور عمومی برای دسترسی به همه چیز در اینترنت ، می توانید یک سرور با PaaS دلخواه خود راه اندازی کنید. در pythonanywhere (PA) تنظیم این کمتر از 5 دقیقه طول می کشد:

  1. برای یک حساب کاربری ثبت نام کنید و وارد شوید
  2. به برگه "وب" بروید و "افزودن یک برنامه وب جدید" را فشار دهید ، Flask و Python 3.6 را انتخاب کنید
  3. flask_app.py را در فهرست /mysite کپی کنید
  4. robot_stream.html را در فهرست /mysite /templates کپی کنید
  5. روی "بارگیری مجدد" کلیک کنید

و … همه چیز آماده است!

سلب مسئولیت: این جریان کار شبکه سریع و ساده است اما بسیار ایده آل نیست. RTMP یا سوکت ها برای پخش مناسب تر هستند ، اما در PA پشتیبانی نمی شوند و به تجربه در زمینه شبکه و راه اندازی سرور نیاز دارند. همچنین توصیه می شود مکانیسم امنیتی را برای کنترل دسترسی اضافه کنید.

مرحله 15: همه چیز را با هم ترکیب کنید

اکنون ، روبات خود را روشن کنید ، handlers.py را در رایانه (متصل به شبکه مشابه روبات) اجرا کنید ، و می توانید ربات را از طریق مرورگر بر اساس آدرس اینترنتی که از هر کجا که می خواهید تنظیم کنید. (به عنوان مثال

توصیه شده: