Dit is een project ik op voor mijn elektronica-klasse aan het Pomona College werkte. Dank aan Professor Dwight Whitaker en Tony Grigsby voor hun hulp en begeleiding tijdens dit project, en krediet aan Jonathan Wong voor het idee voor dit project!
Ook, hier is een lijst van Instructables ik keek voor ideeën/inspiratie tijdens het werken aan dit project:
Hoe het werkt
Het basisidee van deze spraak gestuurde Game Boy Advance is dat u kan zeggen van de naam van een knop (links, A, start, etc.) en de GBA reageren hebben alsof die knop had gedrukt. Hier is een snel overzicht van hoe ik heb ingesteld op werken:
1. u zeggen een woord in een kleine microfoon (Stel dat je zeggen "start" genoemd), en dit signaal wordt verzonden vanaf de microfoon op de computer via de Arduino.
2. de software voor spraakherkenning BitVoicer ziet dat "begin" een woord dat het heeft verondersteld om te reageren is op en stuurt de Arduino de tekenreeks "start".
3. de Arduino ontvangt de tekenreeks en de spanning van één digitale uitgang pin ingesteld op hoog en de rest op laag. De pin is ingesteld op hoog, is verbonden met een Relais die op zijn beurt is verbonden met twee metalen pads op de printplaat van de GBA, die met de startknop corresponderen.
4. aangezien de pin is ingesteld op hoog schakelt het Relais Staten, waardoor de twee metalen pads elektrisch aangesloten. Deze elektrische aansluiting is wat er gebeurt wanneer u meestal op GBA drukt, zodat de GBA reageert alsof de startknop werd ingedrukt.
Ik heb dit momenteel ingesteld voor alle knoppen behalve L, R, en selecteren. Ik koos niet te doen voor deze knoppen omdat ze zo vaak als de andere knoppen worden niet gebruikt en ik wilde eerste focus op het verkrijgen van de essentiële knoppen om te werken. De toetsen zijn ingesteld om te verblijven op HIGH tot u een nieuw commando (equivalent zeggen aan houd de knop ingedrukt) terwijl de A, B, en start knoppen zijn ingesteld om te verblijven op hoog voor 200 ms alvorens over te schakelen naar laag (equivalent aan de knop te drukken). Ik heb ook een 'stop' opdracht waarin alle pins op laag om te stoppen met alle lopende opdrachten geprogrammeerd.
Kwesties
Hoewel de toespraak controle redelijk goed werkt, zijn er een paar aandachtspunten voor. Voor een is er een vertraging van ongeveer één of twee seconden tussen wanneer u een gesproken opdracht en wanneer de GBA hierop reageert. Dus verwacht niet te spelen alle spellen waarbij de timing belangrijk, tenzij je toevallig echt goed vooruit denken en zeggen opdrachten vroeg! Een andere kwestie is dat BitVoicer soms niet te erkennen van een opdracht, maar dit niet te vaak gebeuren en wanneer zij u meestal doet alleen moet herhalen uzelf of twee keer. Ik heb vooral moeite met het denken ik zei "b" wanneer ik zei "a". Menunavigatie kan soms ook lastig met de huidige setup: soms u zal scrollen door menu's echt snel omdat de toetsen worden ingedrukt, terwijl op andere momenten u afwisselend een richting-knop en de opdracht stop (d.w.z. "down, stop, omlaag, stop,..." moet) als u wilt doorgaan in één richting in een menu. Of u deze problemen tegenkomen of niet, hangt af van hoe het spel dat je speelt menunavigatie behandelt. Dit laatste probleem op te lossen denk ik uiteindelijk toe te voegen wat code die zal toestaan voor twee opdrachten voor elke richting-knop, die zal vasthouden en degene die zal het indrukken.
Ondanks deze problemen, die ik dacht dit project bleek vrij dat goed en ik echt genoten van werken aan het bestand. Ik hoop dat jij ook!