ربات تعاملی ADA با واکنش های لمسی

ADA؛ ربات رومیزی تعاملی آردونیا با ESP8266

ADA یک ربات رومیزی تعاملی است که بر پایه برد Wemos D1 mini و میکروکنترلر ESP8266 طراحی شده است. این ربات با نمایشگر OLED برای نمایش حالت های چهره، چهار حسگر لمسی برای دریافت فرمان، سروو موتور برای حرکت سر و ماژول DFPlayer Mini برای پخش صداهای واکنشی، تجربه ای تعاملی ایجاد می کند.

سطح پیشرفته

# ADA؛ ربات رومیزی تعاملی آردونیا

معرفی پروژه

ADA یک ربات رومیزی تعاملی بر پایه برد Wemos D1 mini و میکروکنترلر ESP8266 است. این ربات با دریافت الگوهای لمسی، حالت های مختلف چهره را روی نمایشگر OLED نشان می دهد، با سروو موتور حرکت می کند و از طریق ماژول DFPlayer Mini صداهای متناسب با واکنش ها را پخش می کند.

این پروژه نمونه ای از ترکیب سیستم های نهفته، الکترونیک، طراحی نرم افزار و تعامل انسان و ماشین است.

قابلیت های اصلی

  • نمایش ۱۵ حالت چهره متحرک روی نمایشگر OLED با وضوح 128×64
  • تشخیص ۱۹ الگوی لمسی با چهار حسگر TTP223
  • استفاده از ماژول PCF8574 برای دریافت ورودی های لمسی
  • حرکت نرم سر با سروو موتور
  • پخش ۱۴ صدای واکنشی و یک صدای شروع با DFPlayer Mini
  • نمایش ساعت اینترنتی با استفاده از NTP
  • راه اندازی شبکه Wi-Fi برای تنظیم دستگاه
  • انتخاب شبکه بی سیم از طریق پنل تحت وب
  • نمایش ولتاژ و درصد تقریبی باتری
  • کاهش تدریجی فعالیت در زمان بی کاری
  • منوی تنظیمات روی نمایشگر OLED
  • ذخیره تنظیمات و اطلاعات شبکه در حافظه EEPROM
  • بررسی صحت داده های ذخیره شده با CRC
  • آزمون خودکار بخشی از منطق برنامه با شبیه ساز سخت افزار

نحوه عملکرد

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

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

نمایش چهره بر عهده نمایشگر OLED است، حرکت مکانیکی با سروو موتور انجام می شود و فایل های صوتی از کارت microSD توسط DFPlayer Mini پخش می شوند.

قطعات و تجهیزات

قطعهتعدادکاربرد
Wemos D1 mini یا برد سازگار با ESP8266۱کنترل اصلی و Wi-Fi
نمایشگر OLED SSD1306 با رابط I2C و وضوح 128×64۱نمایش چهره و منوها
ماژول PCF8574۱توسعه ورودی های دیجیتال
حسگر لمسی خازنی TTP223۴دریافت فرمان های لمسی
ماژول DFPlayer Mini۱پخش فایل های صوتی
کارت microSD۱ذخیره فایل های صوتی
بلندگوی سازگار با DFPlayer۱پخش صدا
سروو موتور مانند SG90۱حرکت سر ربات
مقاومت سری حدود ۱ کیلو اهم۱اتصال ورودی RX ماژول DFPlayer
مدار تقسیم ولتاژ۱اندازه گیری ولتاژ باتری
خازن سرامیکی 100nFچند عددکاهش نویز تغذیه
خازن الکترولیتی 470 تا 1000µF۱کمک به پایداری تغذیه سروو و صوت
منبع تغذیه رگوله شده۱تامین انرژی مدار

اتصالات سخت افزاری

نمایشگر OLED و ماژول PCF8574

هر دو ماژول از گذرگاه I2C مشترک استفاده می کنند.

پایه دستگاهپایه Wemos D1 mini
SDA نمایشگر OLEDD2 / GPIO4
SCL نمایشگر OLEDD1 / GPIO5
SDA ماژول PCF8574D2 / GPIO4
SCL ماژول PCF8574D1 / GPIO5
VCC ماژول ها3.3V، با رعایت مشخصات ماژول
GND ماژول هاGND مشترک

آدرس مورد انتظار PCF8574 برابر 0x20 و آدرس متداول نمایشگر SSD1306 برابر 0x3C است.

حسگرهای لمسی

خروجی چهار حسگر TTP223 به ورودی های ماژول PCF8574 متصل می شوند.

حسگرورودی PCF8574
S1P0
S2P1
S3P2
S4P3

حسگرها باید با ولتاژ مناسب مدار 3.3 ولتی راه اندازی شوند تا از اعمال ولتاژ نامناسب به ورودی های ESP8266 و گذرگاه I2C جلوگیری شود.

سروو موتور و ماژول صوتی

اتصالپایه
سیگنال سروو موتورD0 / GPIO16
خروجی TX ماژول DFPlayerD7 / GPIO13
ورودی RX ماژول DFPlayerD8 / GPIO15، از طریق مقاومت سری حدود 1kΩ

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

اندازه گیری باتری

خروجی مدار تقسیم ولتاژ به پایه A0 متصل می شود. نسبت مقاومت ها باید با محدوده مجاز ورودی آنالوگ برد واقعی سازگار باشد. باتری لیتیومی را مستقیما به A0 وصل نکنید.

نصب نرم افزار

  1. مخزن پروژه را از GitHub دریافت کنید.
  1. هسته برد ESP8266 را از بخش Boards Manager در Arduino IDE نصب کنید.
  1. کتابخانه های مورد نیاز را نصب کنید:
  • U8g2
  • DFRobotDFPlayerMini
  • NTPClient
  • TimeLib
  1. فایل firmware/Ada/Ada.ino را باز کنید.
  1. برد LOLIN(WEMOS) D1 R2 & mini و پورت مناسب را انتخاب کنید.
  1. کارت microSD را با فایل سیستم FAT32 فرمت کنید.
  1. پوشه assets/audio/MP3 را در ریشه کارت حافظه کپی کنید.
  1. برنامه را کامپایل و روی برد بارگذاری کنید.

این پروژه همچنین دارای فایل پیکربندی PlatformIO است و می توان آن را با این محیط توسعه نیز ساخت.

راه اندازی Wi-Fi

اگر اطلاعات شبکه ای در حافظه دستگاه ذخیره نشده باشد، ربات شبکه تنظیمات زیر را ایجاد می کند:

  • نام شبکه: ADA-Config
  • رمز پیش فرض: 12345678
  • نشانی پنل تنظیمات: http://192.168.4.1

پس از اتصال تلفن همراه یا رایانه به این شبکه، نشانی پنل را در مرورگر باز کنید و شبکه Wi-Fi مورد نظر را انتخاب کنید.

رمز پیش فرض برای نمونه سازی در نظر گرفته شده است. پیش از استفاده عمومی، آن را تغییر دهید.

حالت های کاهش فعالیت

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

زمان پیش فرض بی کاریرفتار
۳۰ ثانیهکاهش روشنایی به ۵۰ درصد
۶۰ ثانیهنمایش چشم های نیمه بسته
۵ دقیقهورود به حالت خواب و روشنایی ۲۵ درصد

با لمس مجدد حسگرها، دستگاه به حالت فعال باز می گردد. زمان های مربوط به این حالت ها از منوی تنظیمات قابل تغییر هستند.

آزمون و بررسی عملکرد

مخزن پروژه شامل آزمون های خودکار برای بررسی بخشی از منطق برنامه و شبیه سازی سخت افزار است. طبق مستندات مخزن، آزمون های میزبان ۸۳ بررسی را اجرا می کنند و الگوهای لمسی و وجود فایل های صوتی مورد نیاز را کنترل می کنند.

این آزمون ها به تنهایی جایگزین آزمایش دستگاه واقعی نیستند. عملکرد نمایشگر، سروو موتور، کارت حافظه، حسگرها و تغذیه باید پس از مونتاژ نیز بررسی شود.

نکات مهم سخت افزاری

  • جریان لحظه ای سروو موتور و ماژول صوتی می تواند باعث ریست شدن ESP8266 شود.
  • از منبع تغذیه مناسب، سیم کشی کوتاه و خازن های صافی نزدیک بارها استفاده کنید.
  • پایه GPIO15 یا D8 در هنگام راه اندازی ESP8266 وضعیت ویژه ای دارد؛ اتصال ماژول DFPlayer نباید مانع بوت صحیح برد شود.
  • ورودی های ESP8266 تحمل مستقیم ولتاژ ۵ ولت را ندارند.
  • نسبت تقسیم ولتاژ باتری و ضریب محاسبه نرم افزاری باید برای برد واقعی کالیبره شوند.

ساختار مخزن

  • firmware/Ada/ — برنامه اصلی و ماژول های نرم افزاری
  • assets/audio/MP3/ — فایل های صوتی آماده استفاده
  • docs/ — مستندات سخت افزار و نرم افزار
  • tests/host/ — آزمون ها و شبیه سازی منطق برنامه
  • platformio.ini — تنظیمات محیط PlatformIO

پیوندهای پروژه

مجوز استفاده

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

جمع بندی

ADA یک ربات رومیزی تعاملی است که حسگرهای لمسی، نمایشگر گرافیکی، حرکت مکانیکی، پخش صدا و ارتباط Wi-Fi را در یک پروژه مبتنی بر ESP8266 ترکیب می کند. ساختار ماژولار کد و مستندات پروژه، آن را به نمونه ای مناسب برای یادگیری و توسعه سامانه های تعاملی تبدیل کرده است.

→ بازگشت به پروژه ها