Sadržaj:

Arduino: Mašina za fliper: 8 koraka (sa slikama)
Arduino: Mašina za fliper: 8 koraka (sa slikama)

Video: Arduino: Mašina za fliper: 8 koraka (sa slikama)

Video: Arduino: Mašina za fliper: 8 koraka (sa slikama)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, Jun
Anonim
Image
Image

Kako sam oduvijek volio flipere i elektroniku, odlučio sam da napravim svoju fliper mašinu. Odabrao sam Arduino za programiranje i elektroniku, jer je to vrlo pristupačna platforma koja je i kompaktna i laka za korištenje.

U ovom vodiču ću objasniti svoj razvojni proces, pa bi možda neko od vas entuzijasta mogao stvoriti nešto slično.

Korak 1: Izgradnja kućišta

Izgradnja kućišta
Izgradnja kućišta

Počnimo sa slučajem fliper mašine. Napravio sam prilično jednostavnu konstrukciju. Otpilio sam donju ploču i upotrijebio 4 sićušna drvena stupa u uglovima za spajanje zidnih komada. Veličina vašeg kućišta je vaš vlastiti izbor, odlučio sam ga učiniti malo manjim od originalne fliper mašine jer nisam planirao dodavati nikakve super spektakularne dodatke koji će popuniti prostor. Koristio sam i vijke i ljepilo kako bi kućište bilo što stabilnije. Straga sam izbušio dvije rupe u komadu poda za dvije noge koje će fliper mašini dati ikonski nagib. Opet, visina nogu ovisi o vama. Što više noge napravite, lopta će se brže kotrljati (prema dolje).

Korak 2: Konstrukcija mehaničara za prevrtanje

Konstrukcija mehaničara peraja
Konstrukcija mehaničara peraja

Kako sam htio ograničiti troškove ovog projekta, odlučio sam napraviti potpuno mehaničke peraje umjesto elektronskih. Ako ste zainteresirani za elektroničke peraje, možete upotrijebiti konstrukciju koja je donekle ista, ali s takozvanim 'solenoidom' (na nju su mi bili preskupi solenoidi s dovoljno snage za upravljanje perajama).

Počeo sam tako što sam izbušio dvije rupe na dnu za tačku okretanja oba peraja. Izbušio sam rupe (po mom mišljenju) malo preblizu jedan drugom, i to je na kraju dovelo do toga da je igra bila previše laka. Zato pazite da peraje ne stavljate preblizu jedan drugome, osim ako ne želite jednostavan stil igre.

Također sam izbušio dvije rupe na obje bočne stjenke paralelno s rupama za peraje. Ove rupe trebaju se koristiti za dva dugmeta na peraji.

Koristio sam opruge da povučem peraje natrag u prvobitni položaj i napravio zaokretnu konstrukciju između peraja i dugmadi kako bih ih rotirao kada se pritisnu dugmad. Da spriječim opruge da previše povlače peraje, stavio sam dva vijka da držim peraje u njihovom izvornom položaju.

Korak 3: Postavljanje zidova

Postavljanje zidova
Postavljanje zidova

Postavio sam nekoliko zidova za preusmjeravanje flipera prema perajama. Vrlo su jednostavni za izradu. Jednostavno izbušite 3 rupe na dnu kućišta i gurnite tri drvena igla. Omotajte gumicu oko igala i gotovi ste.

Korak 4: Dodavanje bodovnih blokova

Dodavanje bodovnih blokova
Dodavanje bodovnih blokova
Dodavanje bodovnih blokova
Dodavanje bodovnih blokova

Blokovi za bodove jedan su od najvažnijih dijelova fliper mašine, pa se potrudite da ovaj dio obavite ispravno. Napravio sam tri bloka za bodove za svoju fliper mašinu, ali opet sve ovisi o vama.

Otpilio sam mali komad metle i omotao bakrenu žicu oko njega. Arduino će stalno napajati ovu bakrenu žicu s 5V. Lemio sam četiri opruge za olovku sa strane radi boljeg kontakta s loptom.

Način na koji blokovi rezultata funkcionišu je da lopta završi krug koji vodi do ulaznog pina na Arduinu. Dakle, ono što sam učinio je zalijepiti aluminijsku foliju na dno kućišta (NE DIRAJUĆI BAKAR) i spojiti foliju do igle na Arduinu. Kad god lopta pogodi i bakar i aluminij, krug je dovršen i Arduino će primiti signal.

Sve spojne blokove spojio sam pomoću aluminijske folije, ali imajte na umu da ljepljiva strana NE provodi električnu struju.

Korak 5: Dodavanje igre preko kontakta

Dodavanje igre preko kontakta
Dodavanje igre preko kontakta

Na dnu fliper mašine, između peraja, dodao sam igru preko kontakta. Kad god lopta pogodi ovaj kontakt, igrač će izgubiti loptu. Konstrukcija koju sam napravio vrlo je ista kao i partiture. Samo sam ovdje upotrijebio dva vijka i opet komad aluminijske folije na dnu.

Korak 6: Bušenje rupa za kabele

Bušenje rupa za kablove
Bušenje rupa za kablove
Bušenje rupa za kablove
Bušenje rupa za kablove
Bušenje rupa za kablove
Bušenje rupa za kablove

Prije nego počnemo ožičavati sve do Arduina, prvo moramo izbušiti nekoliko rupa za kabele. Izbušio sam rupu kroz oba komada aluminijske folije, tako da je jedna rupa u aluminijskoj foliji blizu blokova za bodove, a jedna rupa u aluminijskoj foliji u blizini igre preko kontakta.

Osim toga, izbušio sam i rupu u donjem lijevom kutu, između zidova, za kabel koji vodi do dodatne kugle Servo.

Također bi trebao biti otvor za kabel spojen na LCD na dnu.

Korak 7: Ožičite sve

Ožičenje
Ožičenje
Ožičenje
Ožičenje

Napravio sam ovu shemu kako bih imao bolji pregled o tome gdje svi kabeli trebaju ići. Križevi su mjesta spajanja kabela. Pokušao sam lemiti što je više moguće kako bih sve učinio stabilnijim i pouzdanijim. Ožičenje će potrajati neko vrijeme, ali nakon što to učinite, skoro ste stigli!

Korak 8: Učitavanje koda

Prenesite sljedeći kôd na svoj Arduino kako bi vaša fliper mašina zaživjela!

// Uključuje biblioteku za lcd

#include #include

// Inicijalizacija pinova lcd podataka

LiquidCrystal lcd (7, 8, 9, 10, 11, 12);

// Kreirajte servo

Servo ballGateServo;

// Kreiranje varijabli za pinove koje koristimo

int gameoverPin = 6; int scorePin = 5; int speakerPin = 4; int ballGateServoPin = 3;

// Pokretanje varijabli igranja za fliper

int rezultat = 0; int najbolji rezultat = 500; bool highscoreReached = false; int kuglice = 3; int gameoverTimer = 0; int gameoverTimerDuration = 100; bool gameoverTriggered = false;

// pokrenite ovaj kod jednom u prvom okviru

void setup () {// Postavite pinMode za pinove koje koristimo pinMode (gameoverPin, INPUT); pinMode (scorePin, INPUT);

// Pokrećemo lcd davanjem širine i visine

lcd.begin (16, 2);

// Pričvrstite servo sa kugličnim vratima na odgovarajuću iglu

ballGateServo.attach (ballGateServoPin);

// Vratite servo vrata na početnu poziciju

ballGateServo.write (0); }

// Pokreni ovaj kod svaki okvir

void loop () {// Hvatanje pin ulaza int gameoverState = digitalRead (gameoverPin); int scoreState = digitalRead (scorePin);

// Dodaje rezultat ako se primi ulaz

if (scoreState) {ton (speakerPin, 1000); rezultat += 10; } else {noTone (4); }

// Oduzmite loptice ako se aktivira gameover pit

if (gameoverState i! gameoverTriggered) {loptice -= 1; gameoverTriggered = true; gameoverTimer = gameoverTimerDuration; }

// Pokreni mjerač vremena za prebacivanje igre čim lopta ne dodirne kontakt za promjenu igre

if (! gameoverState) {if (gameoverTimer> = 1) {gameoverTimer -= 1; } else {gameoverTriggered = false; }}

// Trepćite tekst prelaska igre na LCD i resetirajte rezultat i loptice

if (kuglice <= 0) {lcd.setCursor (0, 0); for (int i = 5; i> = 1; i--) {lcd.clear (); kašnjenje (250); lcd.print ("GAME OVER"); lcd.setCursor (0, 1); lcd.print ("Pokušati ponovo?"); kašnjenje (250); } lcd.clear (); rezultat = 0; ballGateServo.write (0); highscoreReached = false; kuglice = 3; }

if (rezultat> rezultat i! rezultat postignut) {

lcd.setCursor (0, 0); for (int i = 5; i> = 1; i--) {lcd.clear (); kašnjenje (250); lcd.print ("NEW HIGHSCORE"); lcd.setCursor (0, 1); lcd.print ("Iznenadna smrt!"); kašnjenje (250); } lcd.clear (); kuglice = 1; ballGateServo.write (120); najbolji rezultat = rezultat; highscoreReached = true; }

// Ažurirajte rezultat ako je trenutni rezultat veći

if (rezultat> rezultat) {rezultat = rezultat; }

// Postavite kursor na red 0

lcd.setCursor (0, 0); // Odštampa trenutni (visoki) rezultat na LCD -u if (rezultat <= 0) {lcd.print ("Highscore:" + String (highscore) + ""); } else {lcd.print ("Score:" + String (score) + ""); }

// Postavite kursor na red 1

lcd.setCursor (0, 1);

// Odštampajte trenutnu količinu kuglica na LCD -u

lcd.print ("Loptice:" + niz (kuglice)); }

Preporučuje se: