INHOUDSOPGAWE:

PUNK! - Arduino Arcade Game !: 3 stappe
PUNK! - Arduino Arcade Game !: 3 stappe

Video: PUNK! - Arduino Arcade Game !: 3 stappe

Video: PUNK! - Arduino Arcade Game !: 3 stappe
Video: Building a Portable Arcade Machine ft. Daft Punk 2024, November
Anonim
Image
Image
PUNK! - Arduino Arcade Game!
PUNK! - Arduino Arcade Game!

Ons bou 'n arcade-speletjie in PONG-styl wat dele uit die kit "The Most Complete Starter Kit UNO R3 Project" van Elegoo Inc.

Volle onthulling - Die meeste dele wat vir hierdie instruksie verskaf is, is aan die skrywer verskaf deur Elegoo Inc.

Ek wou 'n projek bou met behulp van 'n LED Matrix -module. Die basiese 8x8 LED -skerm vereis die gebruik van ekstra skofregisters om die individuele LED's in die matriks te kan aanspreek. In plaas daarvan gebruik hierdie projek die MAX7219 8x8 LED -module. Dit is 'n baie maklike module om te gebruik.

Ek sou voorstel dat dit, as gevolg van die groot aantal bedradingaansluitings op hierdie projek, as 'n TUSSENMIDDELIKE vlak beskou kan word.

Laat ons begin!

Voorrade

Onderdele van die Elegoo Starter Kit gebruik (https://rebrand.ly/dvjb3w8)

  • UNO R3 -mikrobeheerder
  • MAX7219 8x8 LED -module
  • LCD 16x2 vertoonmodule
  • 10K snoei potensiometer en knop
  • Dupont Wires
  • 220R Weerstand
  • Passiewe Piezo -zoemer
  • Kragvoorsieningsmodule
  • 9V 1A -adapter - nodig omdat die UNO nie voldoende stroom kan verskaf vir die 8x8 LED -module nie
  • Broodbord

Ekstra onderdele benodig

2 x 10K lineêre potensiometer - goedkoop en algemeen beskikbaar op eBay, AliExpress, Banggood, ens.

Stap 1: Bekabeling van die kring

Die bedrading van die kring
Die bedrading van die kring

Draai die kring volgens die bedradingsdiagram. Vat jou tyd. Daar is baie verbindings nodig vir die twee skerms.

Let op die foto van die stroombaan dat die kragmodule aan die linkerkant van die broodbord geheg is en dat die 9V 1A DC -aansluiting in die kragmodule gekoppel is sodat voldoende stroom aan die LED -matriks verskaf word. Daar is GEEN verbinding tussen die 5V -pen op die UNO en die broodbord nie. MAAR, die GND -pen op die UNO is gekoppel aan GND op die broodbord.

Kontroleer u werk dubbel en drie keer.

Stap 2: Arduino -kode

Hierdie instruksies veronderstel dat u reeds weet hoe om in Arduino te programmeer.

Laai die aangehegte Arduino -skets af. Maak seker dat u die LedControl -biblioteek by u Arduino -biblioteke gevoeg het. Ek het die weergawe van Eberhard Fahle gebruik. Soek net na MAX7219 in die blaaier Beheer biblioteke, en u sal dit vind en installeer.

Maak seker dat die pitches.h -lêer in die gids van u skets is. Dit word gebruik om die klanke in die spel te speel.

'N bietjie oor tydsberekening

Aangesien die opdrag delay () die uitvoering van u skets heeltemal onderbreek wanneer dit uitgevoer word, soek ons in plaas daarvan na verloop van tydsperiodes wanneer ons animasieverwante dele van die skets wil uitvoer. Ons soek 'n voorafbepaalde tyd voordat ons dele van die skets uitvoer, soos die opdatering van die plek van die bal op die skerm.

Belangriker nog, die opdrag delay () word eintlik slegs uitgevoer in die loop () -metode. Dit word gewoonlik nie uitgevoer soos verwag in ander metodes nie. Alle tydsberekening wat met animasie verband hou, word dus in die loop () -metode gedoen.

Voorbeeld:

Ons definieer 'n paar 'lang' tipe veranderlikes en 'n paar booleaners en stel dit dan aan die einde van die opstelling ().

bThresh = 80; // die tyd in millisekondes tussen balopdaterings

ballTime = millis (); // ingestel op die huidige stelseltyd

bon = vals; // is die bal -LED aan of af

ballReturn = vals; // gee ons 'n bal terug na 'n spaanhou?

In lus () om die bal te teken, het ons:

as ((millis () - ballTime> bThresh) && bon == false) {// as die bal af is en genoeg tyd verby is ballOn (); // skakel die bal -LED aan

bon = waar; // die bal is nou AAN

ballTime = millis (); // stel die ballTime terug na die huidige tyd

}

as ((millis () - ballTime> bThresh) && bon == true) {// as die bal AAN is en genoeg tyd verby is

ballOff (); // skakel die bal -LED af

bon = vals; // die bal is nou AF

ballTime = millis (); stel die ballTIme terug na die huidige tyd

}

Daar is baie maniere om hierdie speletjie te maak. Dit is net my voorkeure.

Die skets is volledig gedokumenteer, dus nooi ek u uit om die kode te lees om te sien hoe dit werk.

Kontroleer, stel op en laai u kode op.

Geniet u spel!

Stap 3: Gevolgtrekking

Afsluiting
Afsluiting
Afsluiting
Afsluiting

My dank aan Elegoo Inc vir die verskaffing van die voorgereg wat in hierdie projek gebruik is. Dit is 'n stel met 'n groot verskeidenheid onderdele en modules wat u goed in die Arduino Maker -wêreld sal bring.

Aanbeveel: