Indholdsfortegnelse:

Håndholdt Arduino Pong -konsol: 6 trin (med billeder)
Håndholdt Arduino Pong -konsol: 6 trin (med billeder)

Video: Håndholdt Arduino Pong -konsol: 6 trin (med billeder)

Video: Håndholdt Arduino Pong -konsol: 6 trin (med billeder)
Video: WiKi SCAN™ 滚轮编码器选项 2024, November
Anonim
Håndholdt Arduino Pong -konsol
Håndholdt Arduino Pong -konsol

DFRobot kontaktede mig for nylig og ville have mig til at bruge deres specielle Arduino Nano -bord og OLED. Først ville jeg oprette en smart cykel, og jeg byggede den i sin helhed. Men desværre var Nano for svag til at køre og gemme den massive skitse, der var nødvendig. Så jeg besluttede at besøge et af mine tidligere projekter, en Neopixel -matrix, der kørte et Pong -spil. Jeg ville gøre den bærbar i stedet, og en 1,7 OLED ville gøre en perfekt skærm.

Liste over dele:

  • Arduino nano
  • OLED
  • Højttaler

Trin 1: Video

Image
Image

Trin 2: Design af spillet

Design af spillet
Design af spillet

Til dette Pong -spil ville jeg beholde det relativt enkelt, hvilket betød nocomputerstyret padle eller fancy boldrefleksionsalgoritmer. Grundlæggende er der en enkelt padle, som en bruger kan bevæge sig op eller ned, og hvis bolden får kollid med padlen, får dens x -aksevektor til at vende. Hver gang bolden bliver ramt, er der en lyd, der spiller. Når spilenheden er tændt, kommer der en skærm med spiltitel og instruktioner. Derudover oprettede min mor en lille temasang, der looper i baggrunden, indtil der trykkes på den øverste knap.

Trin 3: Design af gaming -enheden

Design af gaming -enheden
Design af gaming -enheden
Design af gaming -enheden
Design af gaming -enheden
Design af gaming -enheden
Design af gaming -enheden
Design af gaming -enheden
Design af gaming -enheden

Mit go-to CAD-program er Fusion 360, så jeg besluttede at bruge det til at designe min pong-gaming-enhed. Jeg begyndte med at designe hver komponent, der blev brugt: en OLED, Arduino Nano og en højttaler. På den måde kan jeg se præcis, hvor og hvordan hver komponent skal passe ind i kabinettet. Jeg lagde derefter Nano og PCB i den bageste del af sagen og OLED oven på den. Næste var spørgsmålet om, hvor højttaleren og knapperne skulle placeres. Jeg besluttede, at 3W -højttaleren kunne gå lige under skærmen (kigger på den fra toppen), og det krævede også at sætte en "grill" over højttaleren, så lyden ikke blev dæmpet. Endelig tilføjede jeg to knapper i venstre side for at tilføje kontroller.

Trin 4: Konstruktion af enheden

Konstruktion af enheden
Konstruktion af enheden
Konstruktion af enheden
Konstruktion af enheden
Konstruktion af enheden
Konstruktion af enheden

Jeg begyndte med at printe 3D hver del, bestående af den nederste halvdel, den øvre halvdel og 2 knapper. Dernæst lodde jeg en kvindelig header til 4x6cm og tilsluttede den til Nano. Dette giver ikke kun mulighed for let at fjerne OLED, men det hæver det også over Arduino Nano. Kontroller skemaet for ledningsoplysninger. Derefter tilsluttede jeg de to knapper sammen med et simpelt mikro -USB breakout -kort til strøm. Højttaleren var også fastgjort og placerede den i den korrekte position. Mit Fusion 360 -design giver mulighed for 3 mm maskinskruer til at holde OLED, højttaleren nede og forbinde de to halvdele af enheden. Men jeg var nødt til at gøre dem præcise, så jeg brugte min boremaskine til at bore 8 huller: 2 til højttaleren, 2 til skærmen og 4 nedenunder. Du kan besøge Thingiverse -linket for filerne.

Trin 5: Programmering af spillet

Brugen af en simpel grænseflade var afgørende for at holde programmet lille. Jeg startede med at tilføje flere biblioteker: Adafruit_GFX, Adafruit_SSD1351 og Arduino Timer -biblioteket. Dernæst definerede jeg mine stifter og farver, f.eks. OLEDs ben og 16 bit farve definitioner. I min kode er der også 4 måder at ændre, hvordan spillet spiller, såsom ændring af paddelens dimensioner og hvor hurtigt bolden bevæger sig. Der eksisterer derefter et afsnit, hvor hver variabel er defineret, herunder score og forskellige koordinater. Når enheden tændes for et billede af en bold, og der vises tekst på skærmen, sammen med en lille temasang, som er defineret tidligere i koden. Når spillet starter, oprettes to timere, en der opdaterer padlen, og den anden opdaterer bolden. Hver gang boldens position opdateres, kontrolleres dens koordinater for at sikre, at den ikke går forbi skærmgrænsen, eller hvis den rører en padle. Hver gang den hopper, er enten x- eller y -aksen inverteret, og der afspilles en lille tone. Se videoen i begyndelsen af denne opskrift for at se, hvordan spillet spiller.

Trin 6: Spil Pong

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

Spillets navn er at få den lavest mulige score. Der er ingen tidsbegrænsning, så det er meget behageligt og endda trancefremkaldende. Alt det nødvendige er at trykke på en af to knapper for at flytte padlen op eller ned. Det er også muligt at tilføje en måde at gemme den højeste score ved hjælp af Arduino's EEPROM.

Anbefalede: