در این پروژه می خواهیم با استفاده از آردوینو ، سروو موتور و سنسور IR یک ربات سخنگو انسان نما طراحی کنیم که بتواند صحبت کند و با شما ارتباط برقرار کند.
برای ساخت این ربات به یک ماژول آردوینو پرو مینی یا آردوینو نانو، ماژول Micro sd TF و کارت حافظه micro SD (2GB یا کمتر)، سه عدد سروو موتور، سه عدد سنسور IR، دو آی سی رگولاتور ولتاژ 7805، اسپیکر کوچک، دو باتری لیپو 3.7 ولت، مقداری هدر نری و مادگی و سیم جامپر نیاز است.
ربات سخنگو انسان نما چگونه عمل می کند؟
برای ساخت ربات سخنگو انسان نما دو مساله را باید بررسی کنیم: 1) تولید گفتار و 2) صدای از پیش ضبط شده. به دلیل استفاده از میکروکنترلر آردوینو، نمی توان به خوبی تولید گفتار را ارائه کرد. بنابراین ما از روش دوم برای تولید صدا در ربات استفاده می کنیم. بنابراین تعدادی صدای ضبط شده با فرمت .wav آماده کنید و آن را در یک کارت حافظه SD ذخیره کنید. این ربات دارای اتصالاتی برای حرکت کردن است که این کار را با استفاده از سروو موتورها انجام می دهد. همچنین چند سنسور برای تعامل با محیط بیرون دارد. اگر سنسورها چیزی را تشخیص دهند، فایل های صوتی اجرا می شوند، فرضاً اگر به چشمان ربات دست بزنید، عکس العمل نشان می دهد و سر خود را تکان می دهد.
ربات سخنگو چگونه صحبت می کند؟
برای تولید فایل های صوتی برای ربات سخنگو انسان نما با استفاده از اپلیکیشن اندروید “Text to Speech” این کار را انجام دهید. این نرم افزار به شما این امکان را می دهد تا متن مورد نظرتان رو بنویسید و به عنوان فایل .wav آن را ذخیره کنید. همچنین می توانید زبان، سرعت و دانگ صدای آن را نیز تغییر دهید.
پس از ذخیره فایل های صوتی، آنها را وارد کامپیوتر کنید. سپس برای پردازش فایل های صوتی به آدرس audio.online-convert.com بروید. سپس فایل ها را بر روی آردوینو آپلود کنید و تنظیمات را به صورت زیر قرار دهید:
- Bit resolution > 8 bit
2. Sampling rate > 16000Hz
3. Audio channel > mono
بر روی کلید .4 “Advanced Options” کلیک کنید و ماژول پالس-کد بدون علامت pcm را به صورت 8 بیتی قرار دهید.
سپس فایل های صوتی را بر روی یک کارت میکرو sd کپی کنید. آنها را در پوشه قرار ندهید و به همان شکلی که هستند در کارت sd قرار دهید. آردوینو را می توان بر روی هر نوع کارت حافظه ای نوشت، اما تنها می توان آنها را از روی حافظه هایی با حجم 2 گیگا بایت یا کمتر خواند. بنابراین از کارت sd استفاده کنید که ظرفیت حافظه آن کمتر از 2 گیگ باشد.
با توجه به تصویر مدار دیاگرام، سروو موتورها را به پین های دیجیتال آردوینو وصل کنید. ماژول TF، 6 پین و 4 پین دیجیتال نیاز دارد. سنسورها یک رگولاتور ولتاژ برای تغذیه 5 ولت ثابت دارند. کل سیستم با استفاده از دو باتری لیتیومی 3.7 ولت تغذیه می شود. بنابراین بورد و سروو موتورها 7.4 ولت دریافت می کنند.
ساخت بدنه ربات سخنگو انسان نما
برای ساخت بدنه ربات از جعبه مقوایی و ورق های pvc استفاده کنید، سپس آن را رنگ کنید. جایگاه موتور و مدار را طبق تصویر آماده کنید. دو سنسور را در قسمت سر ربات و یک سنسور را در جلوی بدنه ربات قرار دهید. از یک کابل نواری در پشت بدنه ربات برای اتصال سر سنسورها و یک ال ای دی بر روی بورد اصلی استفاده کنید.
کد نویسی ربات سخنگو
زمانیکه از کتابخانه tmrpcm برای اجرای صدای ربات در آردوینو استفاده می کنید، سروو موتورها حرکت نمی کنند و دلیل آن این است که سروو موتور و کتابخانه tmrpcm هر دو بر روی timer1 میکروکنترلر آردوینو عمل می کنند. برای حل این مسأله، از کتابخانه servoTimer2 استفاده کنید. ابتدا کتابخانه های مورد نیاز را دانلود و سپس در پوشه “arduini library” قرار دهید.
در صورتیکه خروجی صدا ضعیف باشد، از یک آمپلی فایر برای تقویت صدا استفاده کنید.
قطعات مورد نیاز
- Arduino Nano R3 1x
- SG90 Micro-servo motor 1x
- Digilent IR Range Sensor 1x
- SD card TF module 1x