این پروژه ای است که برای کلاس الکترونیکم در کالج پومونا روی آن کار کردم. با تشکر از پروفسور دوایت ویتاکر و تونی گریگزبی برای کمک و راهنمایی آنها در طول این پروژه، و تشکر از جاناتان ونگ برای ایده این پروژه!
همچنین، در اینجا لیستی از Instructable ها وجود دارد که برای ایده ها/الهام بخشی در حین کار روی این پروژه به آنها نگاه کردم:
http://www.instructables.com/id/Speech-Recognition…
http://www.instructables.com/id/Wireless-Audio-Str…
http://www.instructables.com/id/Speech-Recognition…
http://www.instructables.com/id/How-to-modify-your…
چگونه کار می کند
ایده اصلی این Game Boy Advance که با گفتار کنترل میشود این است که میتوانید نام یک دکمه (چپ، A، شروع و غیره) را بگویید و از GBA بخواهید طوری پاسخ دهد که گویی آن دکمه فشرده شده است. در اینجا خلاصه ای سریع از نحوه تنظیم آن برای کار آمده است:
1. شما کلمه ای را در یک میکروفون کوچک می گویید (فرض کنیم می گویید "شروع")، و این سیگنال از طریق آردوینو از میکروفون به کامپیوتر ارسال می شود.
2. نرم افزار تشخیص گفتار BitVoicer می بیند که "شروع" کلمه ای است که قرار است به آن پاسخ دهد و رشته "شروع" را برای آردوینو ارسال می کند.
3. آردوینو رشته را دریافت می کند و ولتاژ یک پایه خروجی دیجیتال را روی HIGH و بقیه را روی LOW قرار می دهد. پین تنظیم شده روی HIGH به یک رله متصل است که به نوبه خود به دو پد فلزی روی برد مدار GBA که مربوط به دکمه شروع است وصل می شود.
4. از آنجایی که پین روی HIGH تنظیم شده است، سوئیچ های رله حالت می گیرد و باعث می شود دو پد فلزی به صورت الکتریکی به هم متصل شوند. این اتصال الکتریکی زمانی اتفاق میافتد که معمولاً دکمههای GBA را فشار میدهید، بنابراین GBA طوری پاسخ میدهد که گویی دکمه شروع فشار داده شده است.
من این را در حال حاضر برای همه دکمه ها به جز L، R و انتخاب کرده ام. من ترجیح دادم این کار را برای این دکمهها انجام ندهم، زیرا آنها به اندازه دکمههای دیگر استفاده نمیشوند و میخواستم ابتدا روی کار کردن دکمههای ضروری تمرکز کنم. دکمههای جهت روی HIGH میمانند تا زمانی که دستور جدیدی را بگویید (معادل نگهداشتن دکمه) در حالی که دکمههای A، B و شروع به مدت 200 میلیثانیه قبل از تغییر به LOW (معادل فشار دادن دکمه) روی HIGH بمانند. یکبار دکمه). من همچنین یک دستور "توقف" را برنامه ریزی کرده ام که تمام پین ها را روی LOW تنظیم می کند تا تمام دستورات در حال انجام متوقف شود.