Inhoudsopgave:

POiNG! - Arduino Arcade Game!: 3 stappen
POiNG! - Arduino Arcade Game!: 3 stappen

Video: POiNG! - Arduino Arcade Game!: 3 stappen

Video: POiNG! - Arduino Arcade Game!: 3 stappen
Video: Logic Gates Learning Kit #2 - Transistor Demo 2024, November
Anonim
Image
Image
POiNG! - Arduino Arcadespel!
POiNG! - Arduino Arcadespel!

We gaan een arcadespel in PONG-stijl bouwen dat gebruikmaakt van onderdelen uit de "The Most Complete Starter Kit UNO R3 Project"-kit van Elegoo Inc.

Volledige openbaarmaking - De meeste onderdelen die voor deze Instructable zijn geleverd, zijn aan de auteur verstrekt door Elegoo Inc.

Ik wilde een project bouwen met een LED Matrix-module. Het basis 8x8 LED-display vereist het gebruik van extra schuifregisters om de individuele LED's in de matrix te kunnen adresseren. In plaats daarvan gebruikt dit project de MAX7219 8x8 LED-module. Het is een heel makkelijke module om te gebruiken.

Ik zou willen voorstellen dat vanwege het grote aantal bedradingsverbindingen op dit project, het als een INTERMEDIATE niveau Instructable zou worden beschouwd.

Laten we beginnen!

Benodigdheden

Gebruikte onderdelen Elegoo Starter Kit (https://rebrand.ly/dvjb3w8)

  • UNO R3-microcontroller
  • MAX7219 8x8 LED-module
  • LCD 16x2 weergavemodule
  • 10K Trim Potentiometer en knop
  • Dupont-draden
  • 220R Weerstand:
  • Passieve piëzo-zoemer
  • Voedingsmodule
  • 9V 1A-adapter - nodig omdat de UNO niet voldoende stroom kan leveren voor de 8x8 LED-module
  • Breadboard

Extra onderdelen nodig

2 x 10K lineaire potentiometer - goedkoop en overal verkrijgbaar op eBay, AliExpress, Banggood enz.

Stap 1: Bedrading van het circuit

Bedrading van het circuit
Bedrading van het circuit

Sluit het circuit aan volgens het bedradingsschema. Neem je tijd. Er zijn VEEL aansluitingen nodig voor de twee displays.

Merk op de foto van het circuit op dat de voedingsmodule aan de linkerkant van het breadboard is bevestigd en dat de 9V 1A DC-adapter in de voedingsmodule is gestoken, zodat er voldoende stroom wordt geleverd aan de LED-matrix. Er is GEEN verbinding tussen de 5V-pin op de UNO en het breadboard. MAAR, de GND-pin op de UNO is verbonden met GND op het breadboard.

Dubbel- en driedubbelcheck je werk.

Stap 2: Arduino-code

Deze instructable gaat ervan uit dat je al weet hoe je in Arduino moet programmeren.

Download de bijgevoegde Arduino-schets. Zorg ervoor dat je de LedControl-bibliotheek hebt toegevoegd aan je Arduino-bibliotheken. Ik gebruikte de versie van Eberhard Fahle. Zoek gewoon naar MAX7219 in de browser Bibliotheken beheren en u zult het vinden en installeren.

Zorg ervoor dat het pitches.h-bestand zich in de map van je schets bevindt. Het wordt gebruikt voor het spelen van de geluiden in het spel.

Een beetje over timing

Omdat de opdracht delay() de uitvoering van uw schets volledig pauzeert wanneer deze wordt uitgevoerd, zoeken we in plaats daarvan naar verstreken tijdsperioden die optreden wanneer we animatiegerelateerde delen van de schets willen uitvoeren. We zoeken naar een vooraf ingestelde hoeveelheid tijd voordat we delen van de schets uitvoeren, zoals het bijwerken van de locatie van de bal op het scherm.

Belangrijker is dat de opdracht delay() eigenlijk alleen wordt uitgevoerd in de methode loop(). Het wordt meestal niet uitgevoerd zoals verwacht in andere methoden. Dus alle animatiegerelateerde timing wordt gedaan in de loop()-methode.

Voorbeeld:

We definiëren enkele 'lange' typevariabelen en een paar booleans en stellen ze vervolgens in aan het einde van setup().

bThresh = 80; // de tijd in milliseconden tussen balupdates

ballTime = millis();// ingesteld op de huidige systeemtijd

bon = vals; // is de bal-LED aan of uit

ballReturn = onwaar; // geven we een bal terug na een peddelhit?

In loop() voor het tekenen van de bal hebben we:

if ((millis() - ballTime > bThresh) && bon == false) {// als de bal UIT is en er genoeg tijd is verstreken ballOn();// zet de bal-LED aan

bon = waar; // de bal is nu AAN

ballTime = millis(); // reset de ballTime naar de huidige tijd

}

if ((millis() - ballTime > bThresh) && bon == true) { // als de bal AAN is en er voldoende tijd is verstreken

ballOff(); // zet de bal-LED uit

bon = vals; // de bal is nu UIT

ballTime = millis(); reset de ballTIME naar de huidige tijd

}

Er zijn veel manieren om dit spel te maken. Dit zijn slechts mijn voorkeuren.

De schets is volledig gedocumenteerd, dus ik nodig u uit om de code te lezen om te zien hoe het werkt.

Controleer, compileer en upload uw code.

Veel plezier met het spelen van je spel!

Stap 3: Conclusie

Conclusie
Conclusie
Conclusie
Conclusie

Mijn dank gaat uit naar Elegoo Inc voor het verstrekken van de starterkit die in dit project wordt gebruikt. Het is een kit met een grote verscheidenheid aan onderdelen en modules waarmee je goed in de Arduino Maker-wereld terechtkomt.

Aanbevolen: