Tal-kontrollerade Game Boy Advance
Detta är ett projekt jag arbetat med under min elektronik klass på Pomona College. Tack till Professor Dwight Whitaker och Tony Grigsby för deras hjälp och vägledning under hela projektet, och kredit till Jonathan Wong för idén till detta projekt!
Också, här är en lista över Instructables jag tittade på för idéer/inspiration samtidigt som arbetar med detta projekt:
Hur det fungerar
Grundtanken med detta tal-kontrollerade Game Boy Advance är att du kan säga namnet på en knapp (vänster, A, start, etc.) och har den GBA svara som om att knappen hade tryckts. Här är en snabb genomgång av hur jag har ställt den upp till arbete:
1. du säga ett ord till en liten mikrofon (Låt oss anta att du säger "starta"), och denna signal sänds från mikrofonen till datorn via Arduino.
2. tal erkännanden mjukvaran BitVoicer ser att "start" är ett ord som det är tänkt för att svara på och skickar Arduino strängen "start".
3. Arduino får strängen och spänningen i en digital utgång pin till hög och resten till låg. Den PIN-kod till hög är ansluten till ett relä som i sin tur är ansluten till två metall kuddar på GBA kretskortet som motsvarar startknappen.
4. eftersom den PIN-kod har angetts till hög växlar reläet påstår, att göra två metal pads elektriskt ansluten. Denna elektriska anslutning är vad som händer när du trycker oftast på GBA knappar, så GBA svarar som om startknappen trycktes.
Jag har detta för närvarande in för alla knappar utom L, R, och välj. Jag har valt att inte göra det för dessa knappar eftersom de inte används lika ofta som de andra knapparna och jag ville första fokus på att få den viktiga knappen att arbeta. Knapparna riktning anges bo på hög tills du säger ett nytt kommando (motsvarar håll knappen nedtryckt) samtidigt som A, B, och start knappar som kommer att bo på hög för 200 ms innan du byter till låg (motsvarar att trycka på knappen en gång). Jag har också programmerat ett "stop" kommando som anger alla stiften till låg att stoppa alla pågående kommandon.
Frågor
Även tal kontrollen fungerar ganska bra, finns det några problem att vara medveten om. För en finns det en fördröjning på cirka en eller två sekunder mellan när du säger ett kommando och när GBA svarar på den. Så förvänta dig inte att spela något spel där timing är viktigt, om du råkar vara riktigt bra på att tänka framåt och säga kommandon tidigt! En annan fråga är att BitVoicer ibland misslyckas att känna igen ett kommando, men detta inte händer alltför ofta och när den gör du oftast bara behöva upprepa dig själv en eller två gånger. Jag har särskilt haft problem med det tänker jag sa "b" när jag sa "en". Menynavigering kan ibland också besvärande med den nuvarande setup: ibland ska du bläddra igenom menyer riktigt snabb eftersom knapparna riktning hålls ned, medan vid andra tillfällen måste du växla mellan en riktning knappen och stoppkommandot (dvs "ned, stoppa ner, stopp,...") om du vill hålla igång i en riktning på en meny. Om du stöter på dessa problem eller inte beror på hur spelet du spelar behandlar menynavigering. Åtgärda problemet förra tänker jag så småningom att lägga till lite kod som kommer att tillåta för två kommandon för varje riktning knapp, en som ska hålla ner och som ska trycka på den en gång.
Trots dessa frågor jag tänkte detta projekt visade sig ganska gillade bra och jag verkligen arbeta på den. Jag hoppas att du också gör!