Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
DFRobot otti yhteyttä minuun äskettäin ja halusi minun käyttävän heidän erityistä Arduino Nano -levyään ja OLEDia. Aluksi halusin luoda älykkään pyörän ja rakensin sen kokonaisuudessaan. Mutta valitettavasti Nano oli liian heikko ajamaan ja tallentamaan tarvittavaa massiivista luonnosta. Joten päätin palata yhteen aiemmista projekteistani, Neopixel -matriisista, joka suoritti Pong -pelin. Halusin tehdä sen sen sijaan kannettavaksi, ja 1,7 tuuman OLED tekisi täydellisen näytön.
Osaluettelo:
- Arduino nano
- OLED
- Kaiutin
Vaihe 1: Video
Vaihe 2: Pelin suunnittelu
Tässä Pong -pelissä halusin pitää sen suhteellisen yksinkertaisena, mikä tarkoitti tietokoneen ohjaamatonta meloa tai hienoja pallon heijastusalgoritmeja. Pohjimmiltaan on olemassa yksi mela, jota käyttäjä voi siirtää ylös tai alas, ja pallon törmääminen melaan aiheuttaisi sen x -akselin vektorin kääntymisen. Aina kun pallo osuu, kuuluu ääni. Kun pelilaite käynnistetään, näyttöön tulee pelin nimi ja ohjeet. Lisäksi äitini loi pienen tunnuslaulun, joka kiertää taustalla, kunnes yläpainiketta painetaan.
Vaihe 3: Pelilaitteen suunnittelu
Minun CAD-ohjelmani on Fusion 360, joten päätin käyttää sitä pong-pelilaitteeni suunnitteluun. Aloitin suunnittelemalla jokaisen käytetyn komponentin: OLEDin, Arduino Nanon ja kaiuttimen. Laitoin sitten nanon ja piirilevyn kotelon takaosaan ja OLEDin sen päälle. Seuraavaksi oli kysymys siitä, mihin kaiutin ja painikkeet sijoitetaan. Päätin, että 3 W: n kaiutin voisi mennä juuri näytön alapuolelle (katsottaessa sitä ylhäältä), ja se vaati myös "grillin" asettamisen kaiuttimen päälle, jotta ääni ei vaimenisi. Lopuksi lisäsin kaksi painiketta vasemmalle puolelle säätimien lisäämiseksi.
Vaihe 4: Laitteen rakentaminen
Aloitin 3D -tulostuksella jokaisen osan, joka koostui alaosasta, yläosasta ja 2 painikkeesta. Seuraavaksi juotin naaraspuolisen otsikon 4x6 cm: iin ja johdotin sen nanoon. Tämä ei ainoastaan salli OLEDin irrottamista helposti, vaan myös nostaa sen Arduino Nanon yläpuolelle. Tarkista kytkentäohjeet kaaviosta. Sitten kytkin kaksi painiketta ja yksinkertaisen mikro -USB -katkaisukortin virran saamiseksi. Kaiutin kiinnitettiin ja asetettiin oikeaan paikkaan. Fusion 360 -mallini mahdollistaa 3 mm: n koneruuvien pitämisen OLED -kaiuttimessa ja laitteen kahden puoliskon yhdistämisessä. Mutta minun piti tehdä ne täsmällisiksi, joten porasin puristimella 8 reikää: 2 kaiuttimelle, 2 kuvaruudulle ja 4 alla. Voit vierailla tiedostojen Thingiverse -linkissä.
Vaihe 5: Pelin ohjelmointi
Yksinkertaisen käyttöliittymän käyttö oli elintärkeää ohjelman pitämiseksi pienenä. Aloitin lisäämällä useita kirjastoja: Adafruit_GFX, Adafruit_SSD1351 ja Arduino Timer -kirjasto. Seuraavaksi määritin nastani ja värit, kuten OLEDin nastat ja 16 -bittiset värimääritykset. Koodissani on myös 4 tapaa muuttaa pelin tapaa, kuten melon mittojen muuttaminen ja kuinka nopeasti pallo liikkuu. Sitten on olemassa osio, jossa jokainen muuttuja on määritelty, mukaan lukien pisteet ja eri koordinaatit. Aina kun laitteeseen kytketään virta pallosta ja näyttöön tulee tekstiä, sekä pieni tunnuslaulu, joka on määritelty koodissa aiemmin. Pelin alkaessa luodaan kaksi ajastinta, joista toinen päivittää meloa ja toinen palloa. Aina kun pallon sijainti päivittyy, sen koordinaatit tarkistetaan sen varmistamiseksi, ettei pallo mene näytön reunan ohi tai kosketako melaa. Joka kerta kun se pomppii joko sen x- tai y -akseli käännetään ja pieni ääni kuuluu. Katso videolta tämän kirjoituksen alussa, miten peli toimii.
Vaihe 6: Pongin pelaaminen
Pelin nimi on saada mahdollisimman pienet pisteet. Aikarajaa ei ole, joten se on erittäin nautinnollista ja jopa transsia aiheuttavaa. Tarvitset vain painaa yhtä kahdesta painikkeesta liikuttaaksesi melaa ylös tai alas. On myös mahdollista lisätä tapa tallentaa korkeimmat pisteet Arduinon EEPROM -järjestelmällä.