Inhoudsopgave:
- Stap 1: Video
- Stap 2: Het spel ontwerpen
- Stap 3: Het spelapparaat ontwerpen
- Stap 4: Het apparaat construeren
- Stap 5: Het spel programmeren
- Stap 6: Pong spelen
Video: Handheld Arduino Pong-console - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
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
Stap 2: 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
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
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
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:
Handheld weerstation: 4 stappen
Handheld weerstation: in deze Instructable zullen we een Arduino, een oled-display en een SparkFun-omgevingssensorcombinatie met CCS811- en BME280-sensoren aan boord gebruiken om een handheld-apparaat te bouwen dat temperatuur, vochtigheid, TVOC-niveaus, barometrische druk, een
GamePi - de handheld-emulatorconsole: 17 stappen (met afbeeldingen)
GamePi - de Handheld Emulator Console: Intro: Dit instructable beschrijft de bouw van een Raspberry Pi 3 aangedreven handheld emulatieconsole - ik heb het GamePi gedoopt. Er zijn veel vergelijkbare instructables voor dergelijke apparaten, maar naar mijn smaak zijn de meeste te groot, te klein, te
Handheld-gameconsole - Arduboy Clone: 6 stappen (met afbeeldingen)
Handheld-gameconsole | Arduboy Clone: Een paar maanden geleden kwam ik Arduboy tegen, dat volgens de officiële website een miniatuur 8-bits spelplatform is dat het gemakkelijk maakt om online games te leren, te delen en te spelen. Het is een open source-platform. De spellen voor de Arduboy zijn gemaakt door de gebruiker
Pocket ZX (Handheld ZX-spectrum): 10 stappen
Pocket ZX (Handheld ZX Spectrum): ik ben een kind van de jaren 80 en heb goede herinneringen aan de 8-bits computers uit die tijd. Mijn eerste computer - een die een speciaal plekje in mijn hart heeft - was een Sinclair ZX Spectrum 48K. Na onlangs een aantal gemeenschappen te hebben ontdekt die gericht zijn op oudere computers
PCB-handheld met Arduino (met een optie om draadloos te gaan!): 3 stappen
PCB-handheld met Arduino (met een optie om draadloos te gaan!): Update 28.1.2019Ik werk momenteel aan de volgende versie van deze handheld. Je kunt het project volgen op mijn YouTube-kanaal of Twitter.Waarschuwing! Ik heb een fout gevonden in de PCB-layout. De linker- en omhoog-knoppen zijn verbonden met alleen analoge pinnen. ik repareerde