Spisu treści:
- Krok 1: Budowanie sprawy
- Krok 2: Konstruowanie mechaniki płetw
- Krok 3: Umieszczanie ścian
- Krok 4: Dodawanie bloków punktacji
- Krok 5: Dodawanie gry przez kontakt
- Krok 6: Wiercenie otworów na kable
- Krok 7: Okablowanie wszystkiego
- Krok 8: Przesyłanie kodu
Wideo: Arduino: Pinball Machine: 8 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Ponieważ zawsze kochałem zarówno flippery, jak i elektronikę, postanowiłem zbudować własną maszynę do pinballa. Wybrałem Arduino do programowania i elektroniki, ponieważ jest to wysoce dostępna platforma, która jest zarówno kompaktowa, jak i łatwa w użyciu.
W tym poradniku wyjaśnię mój proces rozwoju, więc być może któryś z Was entuzjastów mógłby stworzyć coś podobnego.
Krok 1: Budowanie sprawy
Zacznijmy od przypadku automatu do pinballa. Zrobiłem dość prostą konstrukcję. Odpiłowałem dolną płytę i użyłem 4 małych drewnianych słupków w rogach do połączenia kawałków ściany. Rozmiar twojego futerału to twój własny wybór, postanowiłem, że będzie nieco mniejszy niż oryginalna maszyna do pinballa, ponieważ nie planowałem dodawać żadnych super spektakularnych dodatków, aby wypełnić przestrzeń. Użyłem zarówno śrub, jak i kleju, aby obudowa była jak najbardziej stabilna. Z tyłu wywierciłem dwa otwory w podłodze na dwie nogi, które nadadzą pinballowi kultowe przechylenie. Ponownie, wysokość nóg zależy od Ciebie. Im wyższe nogi, tym szybciej piłka będzie się toczyć (w dół).
Krok 2: Konstruowanie mechaniki płetw
Chcąc ograniczyć koszt tego projektu, zdecydowałem się na wykonanie w pełni mechanicznych płetw zamiast elektronicznych. Jeśli interesujesz się płetwami elektronicznymi, możesz użyć konstrukcji, która jest trochę taka sama, ale z podłączonym do niej tzw. solenoidem (elektromagnesy o mocy wystarczającej do sterowania płetwami były dla mnie za drogie).
Zacząłem od wywiercenia w dnie dwóch otworów na punkt obrotu obu płetw. Wywierciłem dziury (moim zdaniem) trochę zbyt blisko siebie, przez co gra okazała się zbyt łatwa. Uważaj więc, aby nie umieszczać płetw zbyt blisko siebie, chyba że chcesz mieć łatwy styl gry.
Wywierciłem też po dwa otwory w obu ściankach bocznych równolegle do otworów płetwy. Te otwory są przeznaczone na dwa przyciski flippera.
Użyłem sprężyn, aby wciągnąć płetwy z powrotem do pierwotnej pozycji i stworzyłem obrotową konstrukcję między płetwami a przyciskami, aby obracały się, gdy przyciski są wciskane. Aby powstrzymać sprężyny przed odciąganiem płetw zbyt daleko, umieściłem dwie śruby, aby utrzymać płetwy w ich pierwotnej pozycji.
Krok 3: Umieszczanie ścian
Umieściłem kilka ścian, aby skierować pinball w stronę płetw. Są bardzo proste w wykonaniu. Wystarczy wywiercić 3 otwory w dolnej części obudowy i wcisnąć trzy drewniane kołki. Owiń szpilki gumką i gotowe.
Krok 4: Dodawanie bloków punktacji
Bloki punktacji są jedną z najważniejszych części flippera, więc upewnij się, że wykonałeś tę część poprawnie. Zrobiłem trzy bloki punktacji dla mojej maszyny do pinballa, ale znowu wszystko zależy od ciebie.
Odpiłowałem mały kawałek miotły i owinąłem go miedzianym drutem. Arduino będzie stale zasilać ten miedziany przewód napięciem 5V. Z boku przylutowałem cztery sprężynki do pióra, aby uzyskać lepszy kontakt z kulką.
Sposób, w jaki działają bloki punktacji, polega na tym, że piłka uzupełnia obwód, który prowadzi do pinu wejściowego w Arduino. Więc to, co zrobiłem, to przykleić folię aluminiową na spodzie obudowy (NIE DOTYKAJĄC MIEDZI) i podłączyć folię do szpilki w Arduino. Za każdym razem, gdy kulka uderza zarówno w miedź, jak i aluminium, obwód jest kompletny i Arduino otrzyma sygnał.
Połączyłem wszystkie bloki punktowe razem za pomocą folii aluminiowej, ale pamiętaj, że lepka strona NIE przewodzi prądu.
Krok 5: Dodawanie gry przez kontakt
Na dole automatu do pinballa, pomiędzy flipperami, dodałem grę przez kontakt. Za każdym razem, gdy piłka uderza w ten kontakt, gracz traci piłkę. Konstrukcja, którą wykonałem, jest bardzo podobna do bloków punktacji. Tylko tutaj użyłem dwóch śrubek i znowu kawałek folii aluminiowej na spodzie.
Krok 6: Wiercenie otworów na kable
Zanim zaczniemy podłączać wszystko do Arduino, musimy najpierw wywiercić kilka otworów na kable. Wywierciłem otwór w obu kawałkach folii aluminiowej, więc jeden otwór w folii aluminiowej w pobliżu bloków punktacji i jeden otwór w folii aluminiowej w pobliżu kontaktu z grą.
Poza tym wywierciłem również otwór w lewym dolnym rogu, między ścianami, na kabel prowadzący do dodatkowej bramki kulowej Servo.
W dolnej części powinien znajdować się otwór na kabel podłączony do wyświetlacza LCD.
Krok 7: Okablowanie wszystkiego
Zrobiłem ten schemat, aby mieć lepszy przegląd tego, gdzie powinny iść wszystkie kable. Krzyżyki to miejsca, w których łączą się kable. Starałem się lutować jak najwięcej, aby wszystko było bardziej stabilne i niezawodne. Okablowanie zajmie trochę czasu, ale po wykonaniu tej czynności jesteś prawie na miejscu!
Krok 8: Przesyłanie kodu
Prześlij poniższy kod do swojego Arduino, aby ożywić swój automat do pinballa!
// Dołącz bibliotekę do lcd
#włącz #włącz
// Zainicjuj piny danych lcd
LCD LiquidCrystal (7, 8, 9, 10, 11, 12);
// Utwórz serwo
Kula serwoGateServo;
// Utwórz zmienne dla pinów, których używamy
int gameoverPin = 6; int wynikPin = 5; wewn głośnikPin = 4; int ballGateServoPin = 3;
// Zainicjuj zmienne rozgrywki dla automatu do gry w pinball
wynik wewnętrzny = 0; int wysoki wynik = 500; bool highscoreReached = false; kulki wewnętrzne = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = false;
//uruchom ten kod raz w pierwszej klatce
void setup() { // Ustaw tryb pinMode dla pinów, których używamy pinMode(gameoverPin, INPUT); pinMode(scorePin, INPUT);
// Zainicjuj lcd, podając szerokość i wysokość
lcd.początek(16, 2);
// Przymocuj serwo bramki kulowej do odpowiedniego kołka
ballGateServo.attach(ballGateServoPin);
// Zresetuj serwo bramy do pozycji wyjściowej
ballGateServo.write(0); }
// Uruchom ten kod w każdej klatce
void loop() { // Przechwytywanie pinów wejściowych int gameoverState = digitalRead(gameoverPin); int wynikState = digitalRead(scorePin);
// Dodaj do wyniku, jeśli odebrano dane wejściowe
if (scoreState) { ton(speakerPin, 1000); wynik += 10; } inny { noTone(4); }
// Odejmij od piłek, jeśli zostanie uruchomiony dół gry
if (gameoverState i !gameoverTriggered) { kule -= 1; gameoverTriggered = prawda; gameoverTimer = gameoverTimerCzas trwania; }
// Uruchom licznik czasu gry, gdy tylko piłka nie dotknie kontaktu z końcem gry
if (!gameoverState) { if (gameoverTimer >= 1) { gameoverTimer -= 1; } else { gameoverTriggered = false; } }
// Przekieruj tekst zakończenia gry na wyświetlacz LCD i zresetuj wynik i piłki
if (kulki <= 0) { lcd.setCursor(0, 0); for (int i = 5; i>= 1; i--) { lcd.clear(); opóźnienie(250); lcd.print("KONIEC GRY"); lcd.setCursor(0, 1); lcd.print("Spróbuj ponownie?"); opóźnienie(250); } lcd.clear(); wynik = 0; ballGateServo.write(0); wynik Osiągnięto = fałsz; kulki = 3; }
if (score > highscore i !highscoreReached) {
lcd.setCursor(0, 0); for (int i = 5; i >= 1; i--) { lcd.clear(); opóźnienie(250); lcd.print("NOWY WYNIK"); lcd.setCursor(0, 1); lcd.print("Nagła śmierć!"); opóźnienie(250); } lcd.clear(); kulki = 1; ballGateServo.write(120); wynik = wynik; wynik Osiągnięto = prawda; }
// Zaktualizuj najlepszy wynik, jeśli obecny wynik jest wyższy
if (wynik > wynik) { wynik = wynik; }
// Ustaw kursor na linii 0
lcd.setCursor(0, 0); // Wydrukuj bieżący (najwyższy) wynik na ekranie LCD if (score <= 0) { lcd.print("Highscore: " + String(highscore) + " "); } else { lcd.print("Wynik: " + String(wynik) + " "); }
// Ustaw kursor na linii 1
lcd.setCursor(0, 1);
// Wydrukuj aktualną ilość kulek na lcd
lcd.print("Kulki: " + String(kulki)); }
Zalecana:
Radio Time Machine: 8 kroków (ze zdjęciami)
Radio Time Machine: Znalazłem tutaj na Instrutables świetny projekt: WW2 Radio Broadcast Time Machine. Byłem zdumiony pomysłem. Ale nie jestem facetem od Pythona i lubię Steampunk. Postanowiłem więc zbudować podobną rzecz z różnych materiałów.Tutaj znajdziesz listę
Zbuduj mini przenośnik taśmowy jako Slinky Machine: 7 kroków (ze zdjęciami)
Zbuduj mini przenośnik taśmowy jako Slinky Machine: Ten mały projekt wykorzystuje żółty motoreduktor do zasilania taśmy przenośnika o długości 1 stopy wykonanej z rury pcv, drewna sosnowego 1 na 4 i płótna artysty (na pasek). Przeszedłem przez kilka wersji, zanim zaczęło działać, popełniając prosty i oczywisty błąd
Pinball Arduino, który gra sam!: 13 kroków (ze zdjęciami)
Arduino Pinball, który gra sam!: „Maszyna do gry w pinballa, która sama gra, czyż to nie zabiera całej zabawy?” słyszę, jak pytasz. Może jeśli nie lubisz autonomicznych robotów, to może. Ja jednak bardzo zależy mi na budowaniu robotów, które potrafią robić fajne rzeczy, a ten
State Machine na Arduino - sygnalizacja świetlna dla pieszych: 6 kroków (ze zdjęciami)
State Machine na Arduino - sygnalizacja świetlna dla pieszych: Hej! Pokażę ci, jak zaprogramować sygnalizację świetlną dla Arduino w C++ za pomocą automatu skończonego za pomocą narzędzi YAKINDU Statechart Tools. To zademonstruje moc maszyn państwowych i może być wykorzystane jako plan dalszych
Pinball stołowy wykorzystujący platformę opartą na platformie Evive-Arduino: 18 kroków (ze zdjęciami)
Tabletop Pinball Machine przy użyciu wbudowanej platformy opartej na Eveve-Arduino: Kolejny weekend, kolejna ekscytująca gra! Tym razem jest to ulubiona gra zręcznościowa wszystkich – Pinball! Ten projekt pokaże Ci, jak łatwo zrobić własną maszynę do pinballa w domu. Wszystko, czego potrzebujesz, to komponenty z eve