Inhoudsopgave:

Handheld Arduino Pong-console - Ajarnpa
Handheld Arduino Pong-console - Ajarnpa

Video: Handheld Arduino Pong-console - Ajarnpa

Video: Handheld Arduino Pong-console - Ajarnpa
Video: Handheld Arduino Pong Game 2024, November
Anonim
Handheld Arduino Pong-console
Handheld Arduino Pong-console

DFRobot nam onlangs contact met me op en wilde dat ik hun speciale Arduino Nano-bord en OLED zou gebruiken. In eerste instantie wilde ik een slimme fiets maken, en die heb ik helemaal uitgebouwd. Maar helaas was de Nano te zwak om de enorme schets die nodig was uit te voeren en op te slaan. Dus besloot ik een van mijn eerdere projecten opnieuw te bekijken, een Neopixel-matrix met een Pong-spel. Ik wilde het in plaats daarvan draagbaar maken, en een 1,7-inch OLED zou een perfect scherm zijn.

Lijst met onderdelen:

  • Arduino nano
  • OLED
  • Spreker

Stap 1: Video

Image
Image

Stap 2: Het spel ontwerpen

Het spel ontwerpen
Het spel ontwerpen

Voor dit Pong-spel wilde ik het relatief eenvoudig houden, wat betekende dat er geen computergestuurde paddle- of fancy ball-reflectie-algoritmen waren. Kortom, er is een enkele peddel die een gebruiker omhoog of omlaag kan bewegen, en als de bal in botsing komt met de peddel, zou de x-asvector omslaan. Elke keer dat de bal wordt geraakt, is er een geluid dat speelt. Wanneer het game-apparaat is ingeschakeld, verschijnt er een scherm met de gametitel en instructies. Bovendien heeft mijn moeder een klein themanummer gemaakt dat op de achtergrond doorloopt totdat de bovenste knop wordt ingedrukt.

Stap 3: Het spelapparaat ontwerpen

Het spelapparaat ontwerpen
Het spelapparaat ontwerpen
Het spelapparaat ontwerpen
Het spelapparaat ontwerpen
Het spelapparaat ontwerpen
Het spelapparaat ontwerpen
Het spelapparaat ontwerpen
Het spelapparaat ontwerpen

Mijn favoriete CAD-programma is Fusion 360, dus ik besloot het te gebruiken om mijn pong-gamingapparaat te ontwerpen. Ik begon met het ontwerpen van elk gebruikt onderdeel: een OLED, Arduino Nano en een luidspreker. Op deze manier kan ik precies zien waar en hoe elk onderdeel in de behuizing moet passen. Vervolgens heb ik de Nano en PCB in het achterste deel van de behuizing geplaatst en de OLED erop. Vervolgens was de vraag waar de luidspreker en knoppen moesten worden geplaatst. Ik besloot dat de 3W-luidspreker net onder het scherm kon komen (van bovenaf gezien), en daarvoor moest ook een "grill" over de luidspreker worden geplaatst, zodat het geluid niet gedempt zou worden. Ten slotte heb ik twee knoppen aan de linkerkant toegevoegd om bedieningselementen toe te voegen.

Stap 4: Het apparaat construeren

Het apparaat bouwen
Het apparaat bouwen
Het apparaat bouwen
Het apparaat bouwen
Het apparaat bouwen
Het apparaat bouwen

Ik begon met het 3D-printen van elk onderdeel, bestaande uit de onderste helft, de bovenste helft en 2 knoppen. Vervolgens heb ik een vrouwelijke header gesoldeerd aan de 4x6cm en aangesloten op de Nano. Dit zorgt er niet alleen voor dat de OLED gemakkelijk kan worden verwijderd, maar het verheft hem ook boven de Arduino Nano. Raadpleeg het schema voor informatie over de bedrading. Daarna heb ik de twee knoppen aangesloten, samen met een eenvoudig micro-USB-breakoutboard voor stroomvoorziening. De luidspreker was ook bevestigd en plaatste deze op de juiste positie. Dankzij het My Fusion 360-ontwerp kunnen machineschroeven van 3 mm de OLED, de luidspreker vasthouden en de twee helften van het apparaat verbinden. Maar ik moest ze exact maken, dus gebruikte ik mijn boormachine om 8 gaten te boren: 2 voor de luidspreker, 2 voor het scherm en 4 eronder. U kunt de Thingiverse-link voor de bestanden bezoeken.

Stap 5: Het spel programmeren

Het gebruik van een eenvoudige interface was essentieel om het programma klein te houden. Ik begon met het toevoegen van verschillende bibliotheken: Adafruit_GFX, Adafruit_SSD1351 en de Arduino Timer-bibliotheek. Vervolgens definieerde ik mijn pinnen en kleuren, zoals de pinnen van de OLED en 16-bits kleurdefinities. In mijn code zijn er ook 4 manieren om te veranderen hoe het spel speelt, zoals het veranderen van de paddle-afmetingen en hoe snel de bal beweegt. Er bestaat dan een sectie waarin elke variabele wordt gedefinieerd, inclusief de score en verschillende coördinaten. Telkens wanneer het apparaat wordt ingeschakeld, verschijnt er een afbeelding van een bal en verschijnt er tekst op het scherm, samen met een klein themalied dat eerder in de code is gedefinieerd. Zodra het spel begint, worden er twee timers gemaakt, één die de peddel bijwerkt en de andere de bal bijwerkt. Elke keer dat de positie van de bal wordt bijgewerkt, worden de coördinaten gecontroleerd om er zeker van te zijn dat hij niet voorbij de schermrand gaat of een peddel raakt. Elke keer dat het stuitert, wordt de x- of y-as omgekeerd en klinkt er een kleine toon. Bekijk de video aan het begin van dit artikel om te zien hoe het spel speelt.

Stap 6: Pong spelen

Pong spelen!
Pong spelen!
Pong spelen!
Pong spelen!
Pong spelen!
Pong spelen!
Pong spelen!
Pong spelen!

De naam van het spel is om de laagst mogelijke score te behalen. Er is geen tijdslimiet, dus het is erg plezierig en zelfs trance-opwekkend. Het enige dat nodig is, is op een van de twee knoppen te drukken om de peddel omhoog of omlaag te bewegen. Het is ook mogelijk om een manier toe te voegen om de hoogste score op te slaan met behulp van de Arduino's EEPROM.

Aanbevolen: