Peliohjaimen rakennus
Hetken aikaa on itsellä ollut työn alla oman peliohjaimen rakentaminen aiemmin kokoamassani DigiSpark:issa olevan USB-joystick-emuloinnin testailun innoittamana. Digisparkin kehittäjät tarjoavat joystickin lisäksi kirjastot myös hiiren ja näppäimistön emulointiin.
Ideana oli siis rakentaa Digisparkin shieldinä toimiva levy, jossa oleviin terminaaleihin saa ruuvattua kiinni DealExtremestä jo jonkin aikaa sitten ostettuja isoja nappeja. Projekti oli todella kiinnostava, sillä en ole aikaisemmin tehny yhtään näin monimutkaista elektroniikkarakennusprojektia.
Projektin alussa testailin koekykentälevyllä paperilla piirretyn toteutuksen toimintaa, jonka jälkeen kolvasin Digisparkille sopivilla rimoilla varustetun levyn. Yritin aluksi suunnitella levyä ennen kolvaamista KiCAD-sovelluksella, mutta en saanut sillä mitään järkevää aikaan ja päädyin ratkaisemaan eteen tulleet ongelmat yksi kerrallaan ensin päässä pyörittelemällä ja sitten itse rakennuksen aikana.
Kolvausjälki oli vähän hirveää kokemuksen puutteen takia, mutta ylimääräisiä hyppyjä ei tullut.
Digisparkin ohjelmoinnissa ei ollut muutamaa ongelmakohtaa isompia hidasteita. Testasin nappien painelusta aiheutuvaa hiiren nappien painelua, näppäimistön eri nappien painelua sekä joystickin nappien painelua.
Tällä hetkellä esim. joystick- ja hiiri-emuloinnin välillä vaihtaminen vaatii koko Digisparkin ohjelmoimisen uudelleen ja ajattelin järjestelmää, jossa esimerkiksi napin 2 painaminen pohjaan laitteen käynnistysvaiheessa lataisi ja alustaisi ohjaimen toimimaan USB-näppäimistönä.
Kirjastoja ei voinut ladata samaan aikaan, sillä ne kaikki määrittelivät samoilla nimillä olevia USB:n käsittelykomentoja. Lisäksi DigiSparkissa on käyttäjän käytettävissä noin 6 kilotavua tallennustilaa omalle ohjelmalle ja yksittäiset kirjastot veivät siitä noin 3 kilotavua. Kehitysideana tulevaisuutta ajatellen olisikin rakentaa yhdistetty versio emulointikirjastosta moodivalinnan toteuttamiseen ilman uudelleenohjelmointia.
Elektroniikkapuolen valmistuttua kasailin löysin koteloksi Clas Ohlsonista parin euron eväsrasian, joka sopii värimaailmaltaankin kohtuullisen hyvin nappien kanssa. Projekti on nyt pääosin valmis USB-kaapelin läpivientiä lukuunottamatta ja ohjain on toiminut moitteetta parin testaamani pelin kanssa.
Alla on galleria projektista ottamistani kuvista.