Tartalomjegyzék:
- 1. lépés: A tok építése
- 2. lépés: A Flipper Mechanic építése
- 3. lépés: A falak elhelyezése
- 4. lépés: A pontozási blokkok hozzáadása
- 5. lépés: A játék hozzáadása a kapcsolattartóhoz
- 6. lépés: A kábellyukak fúrása
- 7. lépés: Mindent bekötni
- 8. lépés: A kód feltöltése
Videó: Arduino: Pinball gép: 8 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Mivel mindig is szerettem a flippergépeket és az elektronikát, úgy döntöttem, hogy saját flippergépet építek. A programozáshoz és az elektronikához az Arduino -t választottam, mert ez egy könnyen hozzáférhető platform, amely egyszerre kompakt és könnyen használható.
Ebben az útmutatóban elmagyarázom a fejlesztési folyamatomat, így talán valamelyik rajongótok valami hasonlót alkothat.
1. lépés: A tok építése
Kezdjük a flipper gépével. Elég egyszerű konstrukciót készítettem. Fűrészeltem egy alsó lemezt, és 4 apró faoszlopot használtam a sarkokban a falrészek összekapcsolásához. A tok mérete az Ön választása, én úgy döntöttem, hogy egy kicsit kisebb lesz, mint egy eredeti flipper gép, mivel nem terveztem szuper látványos extrákat hozzáadni a hely betöltéséhez. Mind a csavarokat, mind a ragasztót használtam, hogy a tokot a lehető legstabilabbá tegyem. Hátul két lyukat fúrtam a padlóba a két lábhoz, amelyek a flippergép ikonikus dőlését adják. Ismétlem, a lábak magassága rajtad múlik. Minél magasabbra teszi a lábát, annál gyorsabban gurul a labda (lefelé).
2. lépés: A Flipper Mechanic építése
Mivel korlátozni akartam ennek a projektnek a költségeit, úgy döntöttem, hogy teljesen mechanikus szárnyasokat készítek elektronikus helyett. Ha érdekli az elektronikus leporelló, akkor használhat egy hasonló konstrukciót, de úgynevezett „mágnesszeleppel” van összekötve (a mágnestekercsek, amelyek elegendő erővel rendelkeznek a lepkék vezérléséhez, túl drágák voltak számomra).
Kezdtem azzal, hogy két lyukat fúrtam az aljába mindkét szárnyas forgópontjához. Kicsit túl közel fúrtam egymáshoz a lyukakat (véleményem szerint), és emiatt a játék kicsit túl könnyű lett a végén. Vigyázzon tehát, hogy ne tegye túl közel egymáshoz a lepényeket, hacsak nem könnyű játékstílusra vágyik.
Mindkét oldalfalban két lyukat fúrtam a párnázott lyukakkal párhuzamosan. Ezeket a lyukakat a két flipper gombhoz kell használni.
Rugókkal húztam vissza a szárnyasokat az eredeti helyzetükbe, és forgatható szerkezetet készítettem a szárnyasok és a gombok között, hogy elforduljanak a gombok megnyomásakor. Annak érdekében, hogy a rugók ne húzhassák túl messzire a leporellókat, két csavart helyeztem el, amelyek a szárnyasokat eredeti helyzetükben tartják.
3. lépés: A falak elhelyezése
Pár falat helyeztem el, hogy a flipper a flipper felé irányuljon. Elkészítése nagyon egyszerű. Egyszerűen fúrjon 3 lyukat a tok aljába, és toljon be három facsapot. Tekerj egy gumiszalagot a csapok köré, és kész.
4. lépés: A pontozási blokkok hozzáadása
A pontozási blokkok a flippergép egyik legfontosabb része, ezért győződjön meg róla, hogy ezt a részt helyesen végzi. Három blokkot készítettem a flippergépemhez, de ez ismét csak rajtad múlik.
Levágtam egy kis seprűnyéldarabot, és rézhuzalt tekertem köré. Az arduino folyamatosan táplálja ezt a rézhuzalt 5V -al. Négy tollrugót forrasztottam oldalra a labdával való jobb érintkezés érdekében.
A pontozási blokkok működése az, hogy a labda befejez egy kört, amely az Arduino bemeneti csapjához vezet. Tehát amit tettem, az alumínium fóliát ragasztottam a tok aljára (NEM ÉRINTEM A RÉZET), és a fóliát egy tűhöz vezetem az Arduino -n. Amikor a golyó a réznek és az alumíniumnak is üt, az áramkör befejeződik, és az Arduino jelet fog kapni.
Az összes kőtömböt alumínium fóliával kötöttem össze, de ne feledje, hogy a ragadós oldal NEM vezet elektromos áramot.
5. lépés: A játék hozzáadása a kapcsolattartóhoz
A flippergép alján, a flipperek között hozzáadtam egy játékot a kontaktushoz. Amikor a labda eléri ezt az érintkezőt, a játékos elveszít egy labdát. Az általam készített konstrukció nagyjából megegyezik a pontozó blokkokkal. Csak itt két csavart használtam, megint egy darab alumínium fóliát az alján.
6. lépés: A kábellyukak fúrása
Mielőtt elkezdenénk mindent bekötni az Arduino -ba, először ki kell fúrni néhány lyukat a kábelekhez. Fúrtam egy lyukat mindkét alumínium fóliadarabon, tehát egy lyukat az alumíniumfóliában a pontozóblokkok közelében, és egy lyukat az alufóliában a játék közelében az érintkezés felett.
Ezenkívül lyukat fúrtam a bal alsó sarokban, a falak között, az extra golyós Servo kapuhoz vezető kábelhez.
Az LCD -hez csatlakoztatott kábel alján lyukat kell találni.
7. lépés: Mindent bekötni
Azért készítettem ezt a vázlatot, hogy jobb áttekintést kapjak arról, hogy az összes kábelnek hova kell mennie. A keresztek azok a pontok, ahol a kábelek csatlakoznak. Próbáltam forrasztani, amennyire csak lehetséges, hogy minden egy kicsit stabilabb és megbízhatóbb legyen. A bekötés eltart egy ideig, de miután ez megtörtént, már majdnem ott vagy!
8. lépés: A kód feltöltése
Töltse fel az alábbi kódot Arduino készülékére, hogy életre keltse flippergépét!
// A könyvtár beillesztése az LCD -hez
#befoglalni #befoglalni
// Inicializálja az lcd adattűket
LiquidCrystal LCD (7, 8, 9, 10, 11, 12);
// Szervó létrehozása
SzervolabdaGateServo;
// Változók létrehozása az általunk használt csapokhoz
int gameoverPin = 6; int scorePin = 5; int speakerPin = 4; int ballGateServoPin = 3;
// Inicializálja a játékmenet változóit a flippergép számára
int pontszám = 0; int toplista = 500; bool toplistaReached = hamis; int labdák = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = hamis;
// futtassa ezt a kódot egyszer az első képkockánál
void setup () {// Állítsa be a pinMode módot azokhoz a csapokhoz, amelyeket használunk pinMode (gameoverPin, INPUT); pinMode (scorePin, INPUT);
// Inicializálja az LCD -t a szélesség és magasság megadásával
lcd. kezdet (16, 2);
// Rögzítse a golyóskapu szervót a megfelelő csaphoz
ballGateServo.attach (ballGateServoPin);
// Állítsa vissza a kapu szervóját a kiindulási helyzetbe
ballGateServo.write (0); }
// Futtassa ezt a kódot minden egyes keretben
void loop () {// A pin bemenetek rögzítése int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);
// Hozzáadás a pontszámhoz, ha bemenet érkezik
if (scoreState) {tone (speakerPin, 1000); pontszám += 10; } else {noTone (4); }
// Vonja ki a labdákból, ha a gameover gitát kiváltják
if (gameoverState és! gameoverTriggered) {golyók -= 1; gameoverTriggered = igaz; gameoverTimer = gameoverTimerDuration; }
// Indítsa el a játékidőt, amint a labda nem érinti a játékvezető érintkezőjét
if (! gameoverState) {if (gameoverTimer> = 1) {gameoverTimer -= 1; } else {gameoverTriggered = false; }}
// Pillink villogása az LCD -re, és állítsa vissza a pontszámot és a labdákat
if (golyók <= 0) {lcd.setCursor (0, 0); for (int i = 5; i> = 1; i--) {lcd.clear (); késleltetés (250); lcd.print ("GAME OVER"); lcd.setCursor (0, 1); lcd.print ("Próbálja újra?"); késleltetés (250); } lcd.clear (); pontszám = 0; ballGateServo.write (0); toplistaReached = hamis; labdák = 3; }
if (score> toplista és! toplistaReached) {
lcd.setCursor (0, 0); for (int i = 5; i> = 1; i--) {lcd.clear (); késleltetés (250); lcd.print ("NEW HIGHSCORE"); lcd.setCursor (0, 1); lcd.print ("Hirtelen halál!"); késleltetés (250); } lcd.clear (); labdák = 1; ballGateServo.write (120); toplista = pontszám; toplistaReached = igaz; }
// Frissítse a toplistát, ha az aktuális pontszám magasabb
if (score> toplista) {toplista = pontszám; }
// Állítsa a kurzort a 0 sorra
lcd.setCursor (0, 0); // Az aktuális (magas) pontszám kinyomtatása az LCD -re, ha (score <= 0) {lcd.print ("Highscore:" + String (highscore) + ""); } else {lcd.print ("Pontszám:" + String (score) + ""); }
// Állítsa a kurzort az 1. sorra
lcd.setCursor (0, 1);
// Nyomtassa ki az aktuális golyómennyiséget az LCD -re
lcd.print ("Balls:" + String (golyók)); }
Ajánlott:
Kihangosított karton Gumball gép: 18 lépés (képekkel)
Kihangosított karton Gumball gép: Érintésmentes Gumball gépet készítettünk micro: bit, Crazy Circuits Bit Board, távolságérzékelő, szervó és karton használatával. Elkészítése és használata "BLAST" volt! ? ? Amikor a kezét a rakéta aljába teszi, egy távolságérzékelő
ULTRAZONIKUS LEVITÁCIÓS GÉP ARDUINO -val: 8 lépés (képekkel)
ULTRAZONIKUS LEVITÁCIÓS GÉP ARDUINO -val: Nagyon érdekes látni valamit, ami lebeg a levegőben vagy a szabad térben, mint az idegen űrhajók. egy antigravitációs projekt pontosan erről szól. A tárgyat (alapvetően egy kis papírlapot vagy termokolt) két ultrahangos transzfer közé helyezzük
Állami gép az Arduino -n - gyalogos közlekedési lámpa: 6 lépés (képekkel)
Állami gép az Arduino -n - gyalogos közlekedési lámpa: Szia! Megmutatom, hogyan programozhat gyalogos lámpát az Arduino számára C ++ nyelven egy véges állapotú géppel a YAKINDU Statechart Tools segítségével. Ez bemutatja az állami gépek erejét, és tervként használható a további
Arduino alapú fuvolajátszó gép: 10 lépés (képekkel)
Arduino alapú fuvolajátékos gép: Ebben az oktathatóban egy olyan projektet próbálok bemutatni, amely ötvözi a művészetet a mérnöki tudással. Fuvolázó gép. Arduino segítségével vezérli a jegyzeteket. Különféle dallamok vagy dalok programozhatók az Arduino -n, amelyet Arduino fuvolán játszik. Nincs
ATM gép Arduino használatával (ujjlenyomat+RFID kártya): 4 lépés (képekkel)
ATM-gép Arduino használatával (ujjlenyomat+RFID kártya): Helló barátaim, új ötlettel jövök az Arduino-t használó ATM-ről. Hasznos lehet vidéki területeken, ahol a készpénz nélküli szolgáltatások nem lehetségesek. Ez egy kis ötlet. Remélem élvezted.Kezdjük el