Innholdsfortegnelse:

Håndholdt Arduino Pong -konsoll: 6 trinn (med bilder)
Håndholdt Arduino Pong -konsoll: 6 trinn (med bilder)

Video: Håndholdt Arduino Pong -konsoll: 6 trinn (med bilder)

Video: Håndholdt Arduino Pong -konsoll: 6 trinn (med bilder)
Video: WiKi SCAN™ 滚轮编码器选项 2024, Juni
Anonim
Håndholdt Arduino Pong -konsoll
Håndholdt Arduino Pong -konsoll

DFRobot kontaktet meg nylig, og ville at jeg skulle bruke deres spesielle Arduino Nano -bord og OLED. Først ønsket jeg å lage en smart sykkel, og jeg bygde den i sin helhet. Men dessverre var Nano for svak til å kjøre og lagre den massive skissen som var nødvendig. Så jeg bestemte meg for å gå tilbake til et av mine tidligere prosjekter, en Neopixel -matrise som kjørte et Pong -spill. Jeg ønsket å gjøre den bærbar i stedet, og en 1,7 OLED ville gjøre en perfekt skjerm.

Liste over deler:

  • Arduino nano
  • OLED
  • Høyttaler

Trinn 1: Video

Image
Image

Trinn 2: Design spillet

Design av spillet
Design av spillet

For dette Pong -spillet ønsket jeg å holde det relativt enkelt, noe som betydde ikke -datamaskinstyrt padle eller fancy ballrefleksjonsalgoritmer. I utgangspunktet er det en enkelt padle som en bruker kan bevege seg opp eller ned, og å få ballen til å kollidere med padlen ville få x -aksen til å snu. Hver gang ballen blir truffet er det en lyd som spiller. Når spillenheten er slått på, kommer det opp en skjerm med spiltittelen og instruksjoner. I tillegg laget moren min en liten temasang som går i bakgrunnen til du trykker på den øverste knappen.

Trinn 3: Design gaming -enheten

Design av gaming -enheten
Design av gaming -enheten
Design av gaming -enheten
Design av gaming -enheten
Design av gaming -enheten
Design av gaming -enheten
Design av gaming -enheten
Design av gaming -enheten

Mitt go-to CAD-program er Fusion 360, så jeg bestemte meg for å bruke det til å designe pongspill-enheten min. Jeg begynte med å designe hver komponent som ble brukt: en OLED, Arduino Nano og en høyttaler. På denne måten kan jeg se nøyaktig hvor og hvordan hver komponent skal passe inne i kabinettet. Jeg la deretter Nano og PCB i den bakre delen av saken, og OLED på toppen av den. Neste var spørsmålet om hvor du skal sette høyttaleren og knappene. Jeg bestemte meg for at 3W -høyttaleren kunne gå rett under skjermen (ser på den fra toppen), og det krevde også å sette en "grill" over høyttaleren slik at lyden ikke ble dempet. Til slutt la jeg til to knapper på venstre side for å legge til kontroller.

Trinn 4: Konstruere enheten

Konstruere enheten
Konstruere enheten
Konstruere enheten
Konstruere enheten
Konstruere enheten
Konstruere enheten

Jeg begynte med 3D -utskrift av hver del, bestående av den nedre halvdelen, den øvre halvdelen og 2 knapper. Deretter loddet jeg en kvinnelig header til 4x6cm og koblet den til Nano. Dette tillater ikke bare at OLED enkelt kan fjernes, men det løfter den også over Arduino Nano. Kontroller skjemaet for informasjon om ledninger. Deretter koblet jeg opp de to knappene, sammen med et enkelt mikro -USB -bryterbrett for strøm. Høyttaleren var også festet og plasserte den i riktig posisjon. My Fusion 360 -designen tillater 3 mm maskinskruer for å holde nede OLED, høyttaleren og koble til de to halvdelene av enheten. Men jeg måtte gjøre dem nøyaktige, så jeg brukte borepressen til å bore ut 8 hull: 2 for høyttaleren, 2 for skjermen og 4 under. Du kan besøke Thingiverse -lenken for filene.

Trinn 5: Programmering av spillet

Bruken av et enkelt grensesnitt var avgjørende for å holde programmet lite. Jeg begynte med å legge til flere biblioteker: Adafruit_GFX, Adafruit_SSD1351 og Arduino Timer -biblioteket. Deretter definerte jeg pinnene og fargene mine, for eksempel OLED -pinnene og 16 -bits fargedefinisjoner. I koden min er det også 4 måter å endre hvordan spillet spiller, for eksempel å endre padledimensjoner og hvor raskt ballen beveger seg. Deretter eksisterer en seksjon der hver variabel er definert, inkludert poengsummen og forskjellige koordinater. Når enheten er slått på et bilde av en ball og noe tekst vises på skjermen, sammen med en liten temasang som er definert tidligere i koden. Når spillet starter, opprettes to tidtakere, en som oppdaterer padlen, og den andre oppdaterer ballen. Hver gang ballens posisjon oppdateres, blir dens koordinater kontrollert for å sikre at den ikke går forbi skjermgrensen eller hvis den berører en padle. Hver gang den spretter, er enten x- eller y -aksen invertert og en liten tone spilles. Se videoen i begynnelsen av denne oppskriften for å se hvordan spillet spiller.

Trinn 6: Spille Pong

Spiller Pong!
Spiller Pong!
Spiller Pong!
Spiller Pong!
Spiller Pong!
Spiller Pong!
Spiller Pong!
Spiller Pong!

Navnet på spillet er å få lavest mulig poengsum. Det er ingen tidsbegrensning, så det er veldig hyggelig og til og med transefremkallende. Alt som er nødvendig er å trykke på en av to knapper for å flytte padlen opp eller ned. Det er også mulig å legge til en måte å lagre den høyeste poengsummen ved å bruke Arduino's EEPROM.

Anbefalt: