Il s’agit d’un projet, que j’ai travaillé sur pour mon cours d’électronique à Pomona College. Merci au professeur Dwight Whitaker et Tony Grigsby pour leur aide et leurs conseils tout au long de ce projet et un crédit à Jonathan Wong pour l’idée de ce projet !
Aussi, voici une liste de Instructables j’ai regardé pour idées/inspiration tout en travaillant sur ce projet :
Comment ça marche
L’idée fondamentale de ce discours-contrôlée Game Boy Advance est que vous pouvez prononcer le nom d’un bouton (à gauche, A, démarrage, etc.) et avoir la réponse de la GBA comme si cette touche a été enfoncée. Voici un rapide aperçu de comment je l’ai mis à travailler :
1. vous dire un mot dans un petit microphone (Supposons que vous dites « start ») et ce signal est envoyé du microphone à l’ordinateur par le biais de l’Arduino.
2. le logiciel de reconnaissance vocale BitVoicer voit que « start » est un mot il est censé pour répondre à et envoie l’Arduino la chaîne « démarrer ».
3. l’Arduino reçoit la chaîne et affecte à la tension d’une broche de sortie numérique haute et le reste à la basse. Le jeu de broche à haute est connecté à un relais qui est à son tour relié à deux plaquettes de métal sur le circuit GBA qui correspondent à la touche AutoScan.
4. Etant donné que le code pin est réglé sur haut le relais change d’État, rendant les deux électrodes métalliques reliés électriquement. Ce raccordement électrique est ce qui arrive quand vous habituellement des touches GBA, donc la GBA réagit comme si le bouton de démarrage a été enfoncé.
J’ai ce actuellement mis en place pour tous les boutons L, R, à l’exception, puis sélectionnez. J’ai choisi de ne pas le faire pour ces boutons car ils ne sont pas utilisés aussi souvent que les autres boutons et j’ai voulu première mise au point sur l’obtention des boutons essentiels au travail. Les boutons de direction sont définies pour rester en haut jusqu'à ce que vous dites une nouvelle commande (équivalent à maintenant le bouton enfoncé) tandis que le A, B, et boutons start sont définis pour rester en haut pendant 200 ms avant de passer à la basse (équivalent à la touche une fois). J’ai aussi programmé une commande « stop » qui affecte toutes les quilles à faible à arrêter toutes les commandes en cours.
Questions
Bien que la commande vocal fonctionne assez bien, il y a quelques points à connaître. D’une part, il y a un retard d’environ une ou deux secondes entre quand vous dites une commande et lorsque la GBA répond à elle. Donc ne vous attendez pas à jouer tous les jeux où le chronométrage d’important, sauf si vous vous avérez justement être vraiment bon à penser à l’avenir et de dire les commandes dès le début ! Une autre question est que BitVoicer parfois ne reconnaît pas un commandement, mais cela n’arrive pas trop souvent et quand il le fait habituellement vous ne devrez vous répétez une ou deux fois. J’ai notamment eu du mal avec pensant j’ai dit « b » lorsque je disais « a ». Aussi, navigation menu peut parfois être gênante avec la configuration actuelle : parfois vous allez défiler les menus très vite puisque les boutons de direction ont lieu vers le bas, alors qu’à d’autres moments, vous devrez alterner entre une touche de direction et la commande de stop (c'est-à-dire "vers le bas, arrêt, vers le bas, arrêt,..."), si vous voulez continuer à aller dans une direction sur un menu. Si vous rencontrez ces problèmes ou non dépend de la façon dont le jeu que vous jouez traite de navigation dans le menu. Pour résoudre ce dernier problème je pense finalement ajoutant du code qui va permettre de deux commandes pour chaque touche de direction, celui que vous maintenez la touche enfoncée et que vous appuyez dessus une fois.
Malgré ces problèmes, j’ai pensé que ce projet s’est avéré assez bien et j’ai vraiment apprécié de travailler là-dessus. J’espère que vous faire trop !