Inhoudsopgave:
- Stap 1: De zaak bouwen
- Stap 2: De Flipper Mechanic construeren
- Stap 3: De muren plaatsen
- Stap 4: De scoreblokken toevoegen
- Stap 5: Het Game Over-contact toevoegen
- Stap 6: De kabelgaten boren
- Stap 7: Alles aansluiten
- Stap 8: De code uploaden
Video: Arduino: flipperkast - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Omdat ik altijd van zowel flipperkasten als elektronica heb gehouden, besloot ik mijn eigen flipperkast te bouwen. Ik koos Arduino voor de programmering en elektronica, omdat het een zeer toegankelijk platform is dat zowel compact als gebruiksvriendelijk is.
In deze gids zal ik mijn ontwikkelproces uitleggen, zodat misschien een van jullie enthousiastelingen iets soortgelijks kan maken.
Stap 1: De zaak bouwen
Laten we beginnen met het geval van de flipperkast. Ik heb een vrij eenvoudige constructie gemaakt. Ik zaagde een bodemplaat af en gebruikte 4 kleine houten pilaren in de hoeken om de muurstukken met elkaar te verbinden. De grootte van je koffer is je eigen keuze, ik heb ervoor gekozen om het een beetje kleiner te maken dan een originele flipperkast omdat ik niet van plan was om super spectaculaire extra's toe te voegen om de ruimte op te vullen. Ik heb zowel schroeven als lijm gebruikt om de behuizing zo stabiel mogelijk te maken. Aan de achterkant heb ik twee gaten in het vloerstuk geboord voor de twee poten die de flipperkast de iconische kanteling zullen geven. Nogmaals, de hoogte van de benen is helemaal aan jou. Hoe hoger je de benen maakt, hoe sneller de bal (naar beneden) zal rollen.
Stap 2: De Flipper Mechanic construeren
Omdat ik de kosten van dit project wilde beperken, besloot ik om volledig mechanische flippers te maken in plaats van elektronische. Als je geïnteresseerd bent in elektronische flippers, kun je een constructie gebruiken die enigszins hetzelfde is, maar dan met een zogenaamde 'solenoïde' eraan (solenoïdes met voldoende vermogen om de flippers aan te sturen waren te duur voor mij).
Ik begon met het boren van twee gaten in de bodem voor het draaipunt van beide flippers. Ik heb de gaten (naar mijn mening) iets te dicht op elkaar geboord, waardoor het spel uiteindelijk iets te gemakkelijk werd. Zorg er dus voor dat je de flippers niet te dicht bij elkaar plaatst, tenzij je een makkelijke speelstijl wilt.
Ik heb ook twee gaten geboord in beide zijwanden evenwijdig aan de flippergaten. Deze gaten worden gebruikt voor de twee flipperknoppen.
Ik gebruikte veren om de flippers terug in de oorspronkelijke positie te trekken, en maakte een scharnierende constructie tussen de flippers en de knoppen om ze te laten draaien wanneer de knoppen worden ingedrukt. Om te voorkomen dat de veren de flippers te ver terugtrekken, heb ik twee schroeven geplaatst om de flippers in hun oorspronkelijke positie te houden.
Stap 3: De muren plaatsen
Ik heb een paar muren geplaatst om de flipperkast naar de flippers te leiden. Ze zijn heel eenvoudig te maken. Boor eenvoudig 3 gaten in de bodem van de koffer en duw er drie houten pinnen in. Wikkel een elastiekje om de pinnen en je bent klaar.
Stap 4: De scoreblokken toevoegen
De scoreblokken zijn een van de meest cruciale onderdelen van de flipperkast, dus zorg ervoor dat je dit onderdeel goed doet. Ik heb drie scoreblokken gemaakt voor mijn flipperkast, maar nogmaals, dit is allemaal aan jou.
Ik zaagde een klein stukje van een bezemsteel af en wikkelde er koperdraad omheen. De arduino zal deze koperdraad constant van stroom voorzien met 5V. Ik heb vier penveren aan de zijkant gesoldeerd voor een beter contact met de bal.
De manier waarop de scoreblokken werken, is dat de bal een circuit voltooit dat leidt naar een invoerpin op de Arduino. Dus wat ik deed, was aluminiumfolie op de bodem van de behuizing plakken (DE KOPER NIET AANRAKEN) en de folie op een pin op de Arduino aansluiten. Telkens wanneer de bal zowel het koper als het aluminium raakt, is het circuit voltooid en ontvangt de Arduino een signaal.
Ik heb alle scoreblokken met elkaar verbonden met behulp van de aluminiumfolie, maar houd er rekening mee dat de plakkerige kant GEEN elektriciteit geleidt.
Stap 5: Het Game Over-contact toevoegen
Onderaan de flipperkast, tussen de flippers, heb ik een game over contact toegevoegd. Telkens wanneer de bal dit contact raakt, verliest de speler een bal. De constructie die ik heb gemaakt is vrijwel hetzelfde als de scoreblokken. Alleen hier heb ik twee schroeven gebruikt, en weer een stukje aluminiumfolie aan de onderkant.
Stap 6: De kabelgaten boren
Voordat we alles gaan aansluiten op de Arduino, moeten we eerst een paar gaten voor de kabels boren. Ik boorde een gat door beide stukken aluminiumfolie, dus een gat in de aluminiumfolie in de buurt van de scoreblokken en een gat in de aluminiumfolie bij het spel over contact.
Daarnaast heb ik linksonder, tussen de muren, een gat geboord voor de kabel naar de extra kogelpoort Servo.
Er moet ook een gat zijn voor de kabel die aan de onderkant is aangesloten op het LCD-scherm.
Stap 7: Alles aansluiten
Ik heb dit schema gemaakt om een beter overzicht te hebben van waar alle kabels moeten komen. De kruisjes zijn de punten waar kabels op aansluiten. Ik heb geprobeerd zoveel mogelijk te solderen om alles een beetje stabieler en betrouwbaarder te maken. De bedrading zal even duren, maar daarna ben je er bijna!
Stap 8: De code uploaden
Upload de volgende code naar je Arduino om je flipperkast tot leven te laten komen!
// Voeg de bibliotheek voor de lcd toe
#include #include
// Initialiseer de lcd-gegevenspinnen
LiquidCrystal-lcd (7, 8, 9, 10, 11, 12);
// Maak een servo
ServobalGateServo;
// Maak variabelen voor de pinnen die we gebruiken
int gameoverPin = 6; int scorePin = 5; int luidsprekerPin = 4; int ballGateServoPin = 3;
// Initialiseer gameplay-variabelen voor de flipperkast
int-score = 0; int hoge score = 500; bool highscoreReached = false; int ballen = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = false;
// voer deze code één keer uit bij het eerste frame
void setup () {// Stel de pinMode in voor de pinnen die we gebruiken pinMode (gameoverPin, INPUT); pinMode(scorePin, INPUT);
// Initialiseer het lcd-scherm door de breedte en hoogte op te geven
lcd.begin (16, 2);
// Bevestig de balpoortservo aan de juiste pin
ballGateServo.attach (ballGateServoPin);
// Reset de poortservo naar de startpositie
ballGateServo.write(0); }
// Voer deze code elk frame uit
void loop () {// Leg de pin-ingangen vast int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);
// Toevoegen aan de score als invoer is ontvangen
if (scoreState) { tone(speakerPin, 1000); score += 10; } else { noTone(4); }
// Trek af van de ballen als de gameover pit wordt geactiveerd
if (gameoverState en !gameoverTriggered) { balls -= 1; gameoverTriggered = waar; gameoverTimer = gameoverTimerDuur; }
// Start de gameover-timer zodra de bal het gameover-contact niet raakt
if (!gameoverState) { if (gameoverTimer >= 1) { gameoverTimer -= 1; } else { gameoverTriggered = false; } }
// Knipper de gameover-tekst naar het lcd-scherm en reset de score en ballen
if (ballen <= 0) { lcd.setCursor (0, 0); voor (int i = 5; i>= 1; i--) { lcd.clear(); vertraging (250); lcd.print("SPEL OVER"); lcd.setCursor(0, 1); lcd.print("Probeer het opnieuw?"); vertraging (250); } lcd.clear(); score = 0; ballGateServo.write(0); highscoreReached = false; ballen = 3; }
if (score > highscore en !highscoreReached) {
lcd.setCursor(0, 0); voor (int i = 5; i > = 1; i--) { lcd.clear(); vertraging (250); lcd.print("NIEUWE HIGHSCORE"); lcd.setCursor(0, 1); lcd.print("Plotselinge dood!"); vertraging (250); } lcd.clear(); ballen = 1; ballGateServo.write(120); hoge score = score; highscoreReached = waar; }
// Werk de highscore bij als de huidige score hoger is
if (score > highscore) { highscore = score; }
// Zet de cursor op regel 0
lcd.setCursor(0, 0); // Print de huidige (hoge) score naar het lcd if (score <= 0) { lcd.print("Highscore: " + String (highscore) + " "); } else { lcd.print("Score: " + String(score) + " "); }
// Zet de cursor op regel 1
lcd.setCursor(0, 1);
// Print het huidige aantal ballen naar het lcd
lcd.print("Balls: " + String(ballen)); }
Aanbevolen:
Arduino flipperkast die zichzelf speelt! 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Arduino flipperkast die zichzelf speelt!: "Een flipperkast die zichzelf speelt, dat haalt toch al het plezier eruit?" Ik hoor je vragen. Misschien als je niet van autonome robots houdt. Ik ben echter heel erg bezig met het bouwen van robots die coole dingen kunnen doen, en deze
Arduino tekst-naar-spraak-converter met LM386 - Pratend Arduino-project - Talkie Arduino-bibliotheek: 5 stappen
Arduino tekst-naar-spraak-converter met LM386 | Pratend Arduino-project | Talkie Arduino-bibliotheek: Hallo allemaal, in veel projecten hebben we arduino nodig om zoiets als een pratende klok te spreken of wat gegevens te vertellen, dus in deze instructables zullen we tekst omzetten in spraak met behulp van Arduino
Pratende Arduino - Een MP3 afspelen met Arduino zonder enige module - Mp3-bestand afspelen vanaf Arduino met PCM: 6 stappen
Pratende Arduino | Een MP3 afspelen met Arduino zonder enige module | Mp3-bestand van Arduino afspelen met PCM: in deze instructie leren we hoe we een mp3-bestand met arduino kunnen spelen zonder een audiomodule te gebruiken, hier gaan we de PCM-bibliotheek voor Arduino gebruiken die 16 bit PCM van 8 kHz-frequentie speelt, dus laten we dit doen
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmeren -- Arduino Neno: 6 stappen (met afbeeldingen)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmeren || Arduino Neno:…………………………….. ABONNEER aub op mijn YouTube-kanaal voor meer video's……. Dit project gaat over hoe je een kleinste en goedkoopste arduino ooit kunt aansluiten. De kleinste en goedkoopste arduino is arduino pro mini. Het lijkt op arduino
3D-flipperkast naar Vista krijgen: 3 stappen
Krijg 3D Pinball op Vista: Als je net als ik was, was je waarschijnlijk erg teleurgesteld dat ze 3D Pinball van Vista verwijderden. Welnu, dit is de manier om het programma uit Windows XP, Windows 2000 Professional, Windows ME of Windows NT te halen en op Vista te zetten. Dit werk ook