Indholdsfortegnelse:

Arduino VGA -konsol med fem spil: 4 trin
Arduino VGA -konsol med fem spil: 4 trin

Video: Arduino VGA -konsol med fem spil: 4 trin

Video: Arduino VGA -konsol med fem spil: 4 trin
Video: الفرق بين الهارد ديسك hdd vs ssd 2024, Juli
Anonim
Image
Image
Arduino VGA -konsol med fem spil
Arduino VGA -konsol med fem spil
Arduino VGA -konsol med fem spil
Arduino VGA -konsol med fem spil

I mine tidligere instruktioner har jeg gengivet forenklede versioner af nogle af de mest populære klassiske arkadespil ved hjælp af en bar Arduino og få andre komponenter. Senere sluttede jeg fem af dem sammen i en enkelt skitse. Her vil jeg vise, hvordan du kan bygge en simpel konsol, der kan til at spille Pong, Breakout, Bomber, Tetris og et tegnelegetøj inspireret til Etch-a-Sketch. Denne konsol kan også bruges til at spille Snake og yderligere to spil skrevet af andre forfattere: Bit Ninja af Sandro Maffiodo aka "Smaffer" og Stacker af Nikita Kurylev.

Hovedfunktionen er generering af et VGA -signal takket være VGAx -biblioteket, så konsollen har brug for en VGA -skærm. Mit mål er som sædvanligt at undgå enhver "speciel komponent" til at bygge den, du behøver ikke derefter nogen understøttende IC eller skjolde! De eneste komponenter er to potentiometre, fem knapper, få modstande og et DSUB15 (VGA) stik. En piezo -højttaler er valgfri. Du kan se, hvordan disse spil ser ud på billederne på denne side.

VGAx-biblioteket giver mulighed for at bruge fire farver med en opløsning på 120 x 60 pixels, ikke mange, men nok til denne retro-spilkonsol. Grafikken er rå, men takket være brugen af potentiometrene kører spillene problemfrit. Enkle lydeffekter er også tilgængelige.

Trin 1: Sådan bygger du din egen Arduino VGA -konsol

Sådan bygger du din egen Arduino VGA -konsol
Sådan bygger du din egen Arduino VGA -konsol
Sådan bygger du din egen Arduino VGA -konsol
Sådan bygger du din egen Arduino VGA -konsol

Download først ArduinoVGAgame.ino og/eller Snake.ino koder nederst på denne side og kopier dem til din pc i et bibliotek med samme navn. Download VGAx -biblioteket fra dette link på GitHub. Den nemmeste måde er at kopiere den i Arduino -undermappen med navnet "biblioteker", så den genkendes med det samme.

VIGTIGT: dette bibliotek fungerer til Arduno IDE 1.6.4, men det er ikke fuldt ud kompatibelt med ældre eller nyere versioner.

Upload koden i dit Arduino -bord (jeg testede både Uno og Nano). En advarsel om lav tilgængelig hukommelse er normal. Hvis du ikke har andre fejl, er alt ok, og du kan straks begynde at bygge din egen konsol.

Til dette har du brug for:

  • en Arduino Uno Rev. 3 eller Arduino Nano 3.x (ATmega328)
  • et DSUB15 -stik, dvs. et VGA -hunstik eller et VGA -kabel, der skal skæres.
  • modstande: 2 x 68 Ohm og 2 x 470 Ohm og 5 x 1 til 2 kOhm
  • to 10 kOhm lineære potentiometre (lignende værdier er også fine)
  • fem knapper
  • et stykke kabel
  • en eller to fine kasser til at sætte alle komponenterne.

Fakultativ:

  • et brødbræt eller et båndbræt
  • en piezo -højttaler

Skematikken er rapporteret øverst i dette trin sammen med et eksempel på en færdig "konsol".

skematisk viser, hvordan man tilslutter en knap og et potentiometer. Mere specifikt skal du slutte fem knapper til henholdsvis ben 5, 10, 11, 12 og 13. Handlingen udført af hver knap er beskrevet i den øverste højre tabel i skematisk. Til venstre er det vist, hvordan du tilslutter et potentiometer (du skal bruge to potentiometre til ben A1 og A2). Højttaleren skal tilsluttes en analog pin A0.

Jeg placerede Arduino -kortet med VGA -stikket i en trækasse, der også rummer det første spillerpotentiometer og fire knapper, mens det andet spillerpotentiometer og hans startknap er i en separat og mindre boks.

Hvis du kan lide dette legetøj, og du beslutter dig for at gengive det, sætter jeg pris på, hvis du skriver en kommentar eller sender et billede i kommentarfeltet herunder.

Trin 2: Spil fra andre forfattere

Sandro Maffiodo har for nylig offentliggjort spillet BitNinja. Youn kan finde flere oplysninger her og downloade koden her.

For at bruge min konsol skal du bare omdøbe knappen i hans kode som følger:

#define BTN_UP 11 (i stedet for 13)

#define BTN_LEFT 10 (i stedet for 12)

#define BTN_RIGHT 12 (i stedet for 11)

Stabler fra Nikita Kurylev fås her. Mere information her.

Igen skal du omlægge en knap i en anden del af koden: bare erstat digitalRead (2) med digitalRead (13)

Trin 3: Tillæg 1: Flere detaljer om, hvordan man bygger controllerne

Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne
Tillæg 1: Flere detaljer om, hvordan man bygger controllerne

Du kan realisere controlleren på mange forskellige måder afhængigt af det tilgængelige materiale og din smag.

Jeg kan godt lide at realisere dem med trækasser (se billederne på denne side). En hovedboks til Arduino, VGA -stikket og de første afspillerknapper og potenziometer; en anden (mindre) en kun til den anden spillerens knap og hjul (nødvendig til Pong og tegnelegetøjet). En anden mulighed er at lægge alt i en enkelt større kasse.

Først anbefaler jeg at tilslutte VGA -porten. På det første og andet billede kan du se nogle detaljer: Bemærk de to 470 Ohm modstande til rød og grøn, der er forbundet til henholdsvis pins 6 og 7, og to 68 Ohm til pins 3 og 9 til vandret og lodret synkroniseringssignal.

Du kan vælge forskellige farvekombinationer afhængigt af hvilke ben, du tilslutter på VGA DSUB15 -stikket, stifterne 1, 2 og 3 repræsenterer henholdsvis rød, grøn, blå (RGB). Jeg forbandt stifterne 1 og 2, og derfor har jeg følgende farvekombination: (0, 0) = sort; (1, 0) = rød; (0, 1) = grøn; (1, 1) = gul.

For alle forskellige muligheder foreslår jeg at læse detaljerne på siden, hvor du downloader VGAx -bibliotekerne.

Så snart VGA -stikket er klar, kan du forberede alle de andre kabler til knapperne, hjulene og højttaleren (se billede 2).

Nu er det bare at sætte alt sammen: husk, at hver knapstift skal forbindes til jorden gennem en 1 eller 2 kOhm modstand, ellers når knappen er åben, kan tappens tilstand være udefineret. Det betyder, at hvis stiften efterlades frakoblet, kan du have en tilfældig (statisk) spænding på den, der kan aktivere den. Se skemaet for flere detaljer i det andet trin i denne instruktive.

Det sidste trin er at reparere alt på plads. Jeg brugte hot-lim-pistolen, men du kan bruge din foretrukne metode.

Trin 4: Tillæg 2: Nogle overvejelser om hukommelsesgrænserne

Det er fantastisk, at en simpel Arduino er i stand til at generere et VGA -signal og alle disse spil sammen. Den rigtige flaskehals er manglen på SRAM. AVR -mikrokontrolleren har kun 2048 bytes til rådighed til at gemme og manipulere variablerne, og VGAx -biblioteket gemmer skærmvariablerne i en 120 x 60 pixel rammebuffer, hvor hver pixel har brug for 2 bit (4 farver), i alt 1800 bytes. Det betyder, at der kun er 248 bytes tilbage til skitsevariablerne. Efter min erfaring bør man efterlade mindst 100 bytes ledig for at undgå ustabilitet. Ved at bruge over 1950 byte dynamisk hukommelse begynder mikrokontrolleren at vise ulige og uforudsigelige opførsel.

Det betyder, at alle variablerne skal deles mellem de forskellige spil, og det gør koden ganske ulæselig og svær at fejlsøge. Det er ikke kun et spørgsmål om at "tilføje et nyt spil" til den forrige skitse, men al koden skal være dybt ændret og optimeret.

Desuden var jeg nødt til at bruge det mindst mulige variable format: for eksempel for alle koordinaterne skulle jeg bruge "byte" i stedet for "int" eller i andre tilfælde måtte jeg foretrække "int" i stedet for "float".

Endelig går min viden til Sandro Maffiodo aka Smaffer, skaberen af VGAx -biblioteket og det fantastiske spil BitNinja. Uden dette bibliotek kunne dette projekt ikke have været realiseret.

Tak også til Nikita Kurylev for det enkle, men sjove spil Stacker.

Anbefalede: