Langattoman Peliohjaimen Toteutus
Total Page:16
File Type:pdf, Size:1020Kb
LANGATTOMAN PELIOHJAIMEN TOTEUTUS Laurila Markus Opinnäytetyö Tieto- ja viestintätekniikka Insinööri (AMK) 2021 Opinnäytetyön tiivistelmä Tieto- ja viestintätekniikka Insinööri (AMK) Tekijä Markus Laurila Vuosi 2021 Ohjaaja Anssi Ylinampa Työn nimi Langattoman peliohjaimen toteutus Sivumäärä 33 Tämän työn tarkoituksena oli luoda langaton Guitar Hero -tyylinen kitarapeliohjain PC:llä olevaa Clone Hero -peliä varten. Tutkin langattoman Guitar Hero -tyylisen kitarapeliohjaimen valmistusta ja siinä käytettäviä komponentteja ja teknologioita. Lopputuloksena oli toimiva langaton kitarapeliohjain, jonka käyttömukavuus on alkuperäistä parempi. Rakensin kitaran alkuperäisen Guitar Hero -kitaran koteloon ja käytin siinä ESP32-kehitysalustaa, jossa on sisäänrakennettu Bluetooth. Kitarassa on ladat- tava akku, ja siihen on vaihdettu uudet kytkimet. Käsittelyosiossa esittelen erilaisia kytkinvaihtoehtoja, niiden puolia ja niiden asennusta. Näiden lisäksi esittelen myös kehitysalustoja ja tarvittavia ominai- suuksia. Käyn myös läpi luomani ESP32-ohjelman sekä siinä käytetyt kirjastot ja niiden ominaisuudet. Avainsanat Bluetooth, kehitysalustat, mikro-ohjaimet, ohjelmointi, soittopelit Abstract of Thesis Degree Programme in Information and Communication Technology Bachelor of Engineering Author Markus Laurila Year 2021 Supervisor Anssi Ylinampa Subject of thesis Creation of a wireless game controller Number of pages 33 The purpose of this study was to produce a wireless Guitar Hero game controller for Clone Hero. Components and technologies used for producing a wireless game controller were researched. The guitar was built in the shell of an original Guitar Hero guitar and the ESP32 development board, which supports Bluetooth, was used. The guitar has a rechargeable battery and new switches. The result of this thesis study was a wireless game controller that is more pleas- ant to use than the original guitar Hero guitar. Various switch options, their pros and cons and their installation process, development platforms and required fea- tures, the created program for the ESP32 and the libraries that were used and their features, are all presented in the theory part of this thesis. Key words Bluetooth, development platforms, microcontrollers, mu- sical instrument games, programming SISÄLLYS 1 JOHDANTO .................................................................................................... 6 2 GUITAR HERO -KITARAN OMINAISUUDET ................................................. 8 3 OHJAIMEN NÄPPÄIMET ............................................................................. 10 3.1 Kytkinvärähtely .................................................................................... 10 3.2 Ohjaimissa yleisesti käytetyt kytkintyypit.............................................. 10 3.2.1 Kumikupoli ..................................................................................... 10 3.2.2 Mekaaniset näppäimistökytkimet................................................... 11 3.2.3 Matalan profiilin kytkimet ............................................................... 13 3.2.4 Elektroniikkakytkimet ..................................................................... 13 3.3 Kytkimien asennus kitaraan ................................................................. 13 4 ESP32-KEHITYSALUSTA ............................................................................ 17 4.1 Pohjatietoa kehitysalustoista ................................................................ 17 4.2 Tietoa ESP32-alustoista ...................................................................... 17 4.3 Energiansyöttö ja virrankulutus ............................................................ 18 4.4 ESP32:n kytkeminen............................................................................ 20 5 ESP32-OHJELMA ........................................................................................ 23 5.1 Määritykset ja muuttujat ....................................................................... 23 5.2 setup()- ja loop()-funktiot ...................................................................... 25 5.3 setupBouncer()- ja getHatState()-funktiot ............................................ 27 6 POHDINTA ................................................................................................... 30 LÄHTEET .......................................................................................................... 32 5 KÄYTETYT LYHENTEET JA TERMIT ADC Analogue-to-Digital Converter, muuntaa analogisen sig- naalin digitaaliseksi DPAD Directional Pad, peliohjaimen nuolinäppäimet GH Guitar Hero, Activisionin tuottama kitarapohjainen rytmi- peli GPIO General Purpose Input/Output, mikro-ohjaimissa olevia yleiskäyttöisiä datapinnejä PS PlayStation Strummauspalikka kitaran keskiosassa oleva palikka, jonka avulla nuotteja soitetaan Whammy kitarassa oleva vipu, jolla säädetään nuottien korkeutta 6 1 JOHDANTO Tässä työssä tutkin omatekoisen langattoman Guitar Hero -tyylisen pelikitaran valmistusta, siihen liittyvien valintojen puolia ja analysoin niiden pohjalta tehtyjä kompromisseja. Työn lopputulos tulee omaan käyttööni, joten harkitsen laitteen ominaisuuksia toteutuksen helppouden, toimintavarmuuden, huollettavuuden ja käyttömukavuuden kannalta. Valmiin kitaran on tarkoitus olla parempi kuin alku- peräiset Guitar Hero -kitarat. Tämän työn käsitteet soveltuvat kaikenlaisiin pelioh- jaimiin, eivät vain kitaroihin. Guitar Hero on Activisionin omistama kitarapohjainen rytmipelisarja, jonka viimei- sin ”vanhantyylisellä” kitaralla pelattava peli nimeltä Guitar Hero: Warriors of Rock on julkaistu vuonna 2010 (Destructoid 2010). Vuonna 2015 Activision yritti tuoda pelisarjan takaisin pop-kulttuuriin julkaisemalla Guitar Hero Live -pelin, mutta se päätti muuttaa kitaran näppäinjärjestelyn, joten se ei sovellu vanhantyylisiin pe- leihin (Polygon 2015). Guitar Heron ja vastaavien kitarapelien fanit ovat uusien pelien puutteen vuoksi siirtyneet ilmaiseen Clone Hero -nimiseen peliin. Clone Hero on saatavilla vain PC:lle, ja sen kanssa toimivat kaikki ohjaimet, jotka toimivat PC:llä oikein. Luomani kitaran kohdealusta on PC ja peli on Clone Hero. Kitara ei siis välttä- mättä ole alkuperäisten pelien kanssa yhteensopiva. Guitar Hero -pelejä on to- della vaikea löytää PC:lle, enkä omista konsoleja, joten en pysty testaamaan yh- teensopivuutta. Kitaran pohjana on alkuperäinen Playstation 3:lle tehdyn Guitar Hero 3:n mukana tullut Les Paul. Alkuperäisissä Guitar Hero -kitaroissa on käytetty halpoja kumi- hattunäppäimiä. Lisäksi tässä GH3-kitarassa on käytetty langatonta tiedonsiirtoa, joka vaatii USB-vastaanottimen. Nämä ovat mielestäni ongelmia, joten vaihdan vanhat kumikupolinäppäimet uusiin mekaanisiin näppäimiin ja vaihdan ohjauspii- rin ESP32 -nimiseen Arduinon kaltaiseen mikro-ohjaimeen. Korvaan kitarasta siis lähes kaiken elektroniikan. Tämän työn luvussa 2 esittelen alkuperäisen Guitar Hero -kitaran ominaisuudet. Luvussa 3 esittelen yleisiä peliohjaimien näppäimien kytkintyyppejä. Luvussa 4 7 kerron kehitysalustoista ja virtalähteistä. Luvussa 5 käyn läpi kirjoittamani ohjel- man ja selostan sen kulkua. 8 2 GUITAR HERO -KITARAN OMINAISUUDET Alkuperäisessä Guitar Hero -kitarassa (Kuvio 1) on kahdeksan näppäintä, yksi dpad ja yksi strummauspalikka. Siinä on myös whammy-palkki sekä kallistuksen tunnistus. Kitara on langaton, ja sille on myös langaton vastaanotin. Kitara saa virran kahdesta AA-paristosta. Kitara toimii PC:llä melkein täysin, vain kallistuk- sen tunnistus ei toimi. Kuvio 1. Kitaran näppäimet 9 Windowsin ohjainominaisuusikkunassa (Kuvio 2) näkyy, että laitteessa on 13 nappia, 1 dpad, X/Y/Z-akselit ja Z-pyöritysakseli. Vain napit 1, 2, 3, 4, 5, 9, 10, 13 ja dpad löytyvät kitarasta. Muut napit eivät siis tee mitään ja ovat vain esillä ikku- nassa. Whammy käyttää Z-akselia, ja kitaran kallistus luultavasti käyttäisi Z-pyö- ritysakselia, jos se toimisi PC:llä. Kuvio 2. Ohjaimen ominaisuusikkuna 10 3 OHJAIMEN NÄPPÄIMET 3.1 Kytkinvärähtely Lähes jokainen kytkin värähtelee, eli kytkimen kontaktit pomppivat muutaman millisekunnin ajan, kun kytkin painetaan pohjaan tai vapautetaan. Tämä ei hait- taa, jos kytkintä käytetään esimerkiksi lampun kytkemiseen, mutta jos kytkimen paino pitää tunnistaa vain kerran painallusta kohden, kuten esimerkiksi näp- päimistössä, pitää kytkinvärähtelyt poistaa jotenkin. (Forum Automation 2019.) Kytkinvärähtelyt voidaan poistaa ohjelmassa tai laitteistossa. Ohjelmassa se voi- daan poistaa siten, että kun kytkimen tila muuttuu, keskeytetään kytkimen tilan kuuntelu, odotetaan muutama millisekunti ja vasta sitten rekisteröidään kytkimen painallus ja aletaan taas kuuntelemaan kytkimen tilaa. Laitteistossa se voidaan poistaa siten, että kytketään kytkimen rinnalle kondensaattori, joka hidastaa jän- nitteen vaihtumista sen koosta riippuen. Värähtelyt ovat jo ohi, ennen kuin mikro- piiri tunnistaa kytkimen tilan muutoksen, jos kondensaattorin jännitetason nousu tai lasku kestää kauemmin kuin värähtelyt. (Forum Automation 2019.) 3.2 Ohjaimissa yleisesti käytetyt kytkintyypit 3.2.1 Kumikupoli Kumikupolinäppäimet (Kuvio 3) ovat eräs kalvonäppäintyyppi (Gear Gaming Hub 2021), joka on yleisin näppäintyyppi halvoissa moderneissa näppäimistöissä (PC Gamer 2019a; Telcontar 2021), joten nämä näppäimet ovat kaikille tuttuja. Kumi- kupolinäppäin koostuu nimensä mukaisesti kumikupolista, jonka pohjalla on säh- köä johtavaa materiaalia, joka yhdistää kaksi johdinta yhteen, kun näppäin pai- netaan pohjaan. Joidenkin kumikupolien pohjassa ei ole johtavaa