Kazalo:

Arkadni stroj Atari Pong z LED trakom: 8 korakov
Arkadni stroj Atari Pong z LED trakom: 8 korakov

Video: Arkadni stroj Atari Pong z LED trakom: 8 korakov

Video: Arkadni stroj Atari Pong z LED trakom: 8 korakov
Video: Rambo TVatari 2600 немного о консолях эпизод 9 (перезалив старого видео) 2024, Julij
Anonim
Arkadni stroj Atari Pong z LED trakom
Arkadni stroj Atari Pong z LED trakom

Moje ime je Gabriel Podevin in to je moj prvi nedotakljiv. Trenutno sem 16 -letni dijak, ki rad ustvarja in gradi stvari, hkrati pa me zelo zanima elektronika, robotika, vezja in programiranje. Upam, da se vam bo to neprimerljivo zdelo koristno.

V tem navodilu vam bom pokazal, kako narediti notranjost igre Atari Pong v retro slogu v retro arkadnem ohišju. Zgornji videoposnetek si lahko ogledate za predstavitev projekta, končni projekt in primer pa si lahko ogledate tudi sami in na dveh slikah. Na koncu tega nerazumljivega se bom poglobil v kodo in kako jo urediti, da jo prilagodim.

Seznam osnovnih delov bo razdeljen na odseke: Orodja, sestavni deli in komponente

Orodja, ki jih boste potrebovali, bodo:

- Vrtalnik

- spajkalnik

- Izvijač (ustreza vijakom, ki se jih odločite uporabiti)

- Multi meter

- krožna žaga, tračna žaga ali laserski rezalnik imate dostop do te

-Rezalnik ali škarje

- Pištola za lepilo

Deli, ki jih boste potrebovali za montažo, bodo vključevali

- lepilo za les

- 10 blokov lesa 10 palcev za en centimeter

- velik list četrt palčnega lesa ali lesa po izbiri

- 24 vijakov dolžine pol palca

- 14 x 6,5 palcev LED razpršilne plastike (neobvezno)

- rdeč in modri električni trak

Sestavine, ki jih boste potrebovali, so:

- 2 100k ohm potenciometra

- 8 metrov individualno naslovljivega LED traku (30 LED na meter)

www.amazon.ca/ALITOVE-WS2812B-Individualno-Addressable-Waterproof/dp/B018XAELE4/ref=sr_1_1?s=hi&ie=UTF8&qid=1535323567&sr=1-

- več metrov žice ali več barv žice

- napajalnik za izmenični / enosmerni tok, ki oddaja 6v skozi vtič v sodu

- 1 arduino Uno R3

če nimate dostopa do Arduino Uno R3, kot sem jaz, lahko zgradite takšnega, kot ga bom uporabljal v tem projektu, ki uporablja procesor atmel328-pu. Sledite tej povezavi, če želite izvedeti, kako zgraditi lastno

Če uporabljate arduino uno, nadaljujte s prvim korakom.

1. korak: Zgradite LED matriko

Ustvarjanje LED matrike
Ustvarjanje LED matrike
Ustvarjanje LED matrike
Ustvarjanje LED matrike
Ustvarjanje LED matrike
Ustvarjanje LED matrike

Ta korak je najpreprostejši zamuden korak zaradi vsega spajkanja, ki ga morate narediti.

-za začetek boste potrebovali kos lesa 10 3/4 palca na 6 1/2 palca.

-ko imate kos lesa, vzemite LED trak in izrežite 26 segmentov na vsakih 10 led ali vsakih 6 1/2 palca.

-po rezanju segmentov jih prilepite navpično na vaš les, kot je prikazano na naslednjih slikah, prikazanih na prvi sliki zgoraj.

-Ko boste lepili trakove in pustili, da se usedejo, bomo začeli spajkati.

-Potrebovali boste tri žice različnih barv

-ožičiti ga je treba z vsemi pozitivi, ki so povezani z eno žico, in z vsemi negativi, ki se povezujejo z eno žico, zadnja žica pa bo skupaj pripeljala LED trakove. Druga slika na začetku tega koraka je diagram, ki vam bo pokazal, kako priključite žice.

-Na koncu, ko jih spajkate, preprosto pritrdite električni trak na spajkalne povezave z ustreznimi barvami. kot je prikazano na tretji sliki zgoraj.

-nazadnje se bomo povezali z Arduinom. vaš digitalni vhod ali vaša srednja žica se bo priključila na vaš 6 -polni digitalni vhod, vaša ozemljitev in pozitivna pa se bosta priključila na pozitivne in negativne tirnice na plošči.

2. korak: Nadzor vesla

Krmiljenje vesla
Krmiljenje vesla
Krmiljenje vesla
Krmiljenje vesla
Krmiljenje vesla
Krmiljenje vesla

Za ta zelo preprost korak morate le spajkati tri žice na vsak potenciometer. če držite potenciometer tako, da sta spajkalni točki obrnjeni stran od vas, bo levi rog pozitiven, sredinski čep bo izhoden, desni pa bo ozemljen. kot je prikazano na zgornjem diagramu

ko spajate žice, jih povežemo z Arduinom. vi pozitivni in negativni se boste povezali z ustreznimi pozitivnimi in negativnimi padavinami. izhodne žice na potenciometrih se povežejo z različnimi vhodi na arduinu. eden se bo priključil na vtič (A0), drugi pa na vtič (A1).

3. korak: Rezanje ohišja

Rezanje ohišja
Rezanje ohišja
Rezanje ohišja
Rezanje ohišja
Rezanje ohišja
Rezanje ohišja
Rezanje ohišja
Rezanje ohišja

ta del vam bo dal dimenzije in kote glede tega, kaj boste morali rezati

**** zelo pomembno ***** poskrbite, da bo vaš les debel četrt palca (1/4 palca)

tudi pri rezanju delov ne pozabite označiti svojih delov

osnovni del za rezanje bo označen spodaj, zadaj, zgoraj, spredaj zgoraj, spredaj spodaj…. prikazano na slikah na začetku

dimenzije delov

- Spodaj: 13 3/4 palcev X 10 1/4 palcev

- zadaj: 13 3/4 palcev x 15 1/2 palcev

- Zgoraj: 13 3/4 palcev X 6 1/2 palcev

- Sprednje dno: 13 3/4 palcev X 4 1/4 palcev

- Številčnica: 13 3/4 palcev x 6 palcev

- Notranji vrh: 13 3/4 palcev X 3 1/4 palcev

- LED stranska tirnica: 6 1/4 palcev X 1 palca (izrežite dva od teh)

- LED notranje dno: 13 1/4 palcev X 4 1/2 palca

- notranja zadnja LED plošča: 13 1/4 palcev X 9 palcev

- Bloki: 1 palčni X 1 palčni X 1 palčni (izrežite 10 blokov)

- Akrilna plošča: 13 3/4 palcev X 6 1/2 palcev

Na zgornjih slikah so prikazani koti in mere dela stranske plošče. prav tako boste morali izrezati dva dela tega dela

4. korak: Montaža ohišja

Montaža ohišja
Montaža ohišja
Montaža ohišja
Montaža ohišja
Montaža ohišja
Montaža ohišja

Do te točke v teh navodilih ste skoraj končali celotno stvar. najbrž mislite, da imam vse te dele in izreze, kaj naj naredim z njimi. Ta zadnji korak vas bo poučil, kako sestaviti ohišje.

-Najprej bomo začeli sestavljati ohišje. tukaj vam pridejo prav vsi izrezi lesa iz prejšnjega koraka.

-Za začetek montaže bomo potrebovali 4 lesene bloke 1x1x1, dve stranski plošči, zadnjo in sprednjo stran. postavite 4 bloke na vsak vogal dna in pustite četrt centimetra med robom in blokom, kot je prikazano na drugi sliki ob začetku koraka.

-naprej morate izvrtati nekaj pilotnih lukenj skozi les in bloke. ko ste enkrat privili ta vijak, potem na dno.

-Naprej bomo namestili stranske plošče. Plošče postavite na četrtinsko palico na zunanji strani bloka. izvrtajte pilotno luknjo skozi stransko ploščo in leseni blok ter privijte plošče. ponovite za drugo stran.

-Po zaključku stranskih plošč. namestili bomo sprednjo spodnjo ploščo. ploščo poravnajte z dnom, stranice pa izvrtajte pilotne luknje v bloke in privijte ploščo.

-Končno bomo dali nazaj. naredite enako kot sprednjo spodnjo ploščo in privijte nazaj.

-V tem trenutku imate temelje, na katerih lahko gradite in razumete, kako sestavljamo to zadevo.

-Ta naslednji del je nekoliko zahtevnejši, ker delate z manjšim območjem. Za začetek bomo potrebovali vse zgornje dele in 6 blokov.

-Položite, kar ste doslej zgradili, na hrbtu in bloke postavite v vogale četrt centimetra od vrha. (kot je prikazano na tretji sliki na začetku)

-vrtalne luknje za stranice in hrbet ter jih privijte.

-sedaj bomo sestavili preostanek vrha

-vzemite zgornjo ploščo in jo položite na bloke, izvrtajte pilotne luknje in privijte zgornjo stran. Po tem, ko ste fino obrnili sklop na glavo *** previdno *** in v vsak kot namestite blok vzporedno z robom. izvrtajte pilotne luknje na stranskih ploščah in jih privijte na blok. obrnite ohišje navpično nazaj in izvrtajte pilotne luknje skozi vrh v bloke in ga privijte.

-Ta del gnezda je malo zapleten. Potrebovali boste sprednjo zgornjo ploščo in zadnja dva bloka. najprej izvrtajte pilotne luknje v prejšnje bloke skozi zgornjo sprednjo ploščo in jo privijte. še enkrat obrnite ohišje na glavo in postavite notranjo zgornjo ploščo na blok ter jo privijte.

-moral bi imeti kaj takega (prikazano na prvi sliki tega koraka)

naslednji korak bo razložil preostanek sklopa.

5. korak: Dokončanje montaže

Dokončanje montaže
Dokončanje montaže
Dokončanje montaže
Dokončanje montaže
Dokončanje montaže
Dokončanje montaže

Do tega trenutka ste že skoraj končali zadevo in zgradite le nekaj stvari, ki jih morate postaviti, in končali boste.

Zdaj ostane le še namestitev elektronike.

-Začeli bomo z vrtanjem lukenj v številčnico za vaš potenciometer. lahko izvrtate luknje tam, kjer se vam zdi udobno. v mojem primeru imam luknje 2 1/2 palca od spodaj in 3 1/2 palca od strani za oba potenciometra.

-Ko boste izvrtali luknje, bomo to ploščo postavili na ohišje. namesto da bi ga privijačili, ga bomo lepili, preprosto položimo veliko količino lepila vzdolž roba ohišja in ploščo položimo nanjo ter jo držimo z nekaj sponkami ali kaj težkega.

-Ko se lepilo konča s sušenjem, bomo dali elektronske dele. Najprej pa bomo morali odstraniti zadnjo ploščo.

-Ko je hrbet izklopljen, priporočam, da ohišje postavite spredaj navzdol, da boste lažje vstavili LED in druge komponente.

-Zdaj, ko imate nazaj, bomo potenciometer postavili v ohišje, tako da jih preprosto vstavimo skozi luknje, ki smo jih pravkar izvrtali, in nanesemo veliko količino vročega lepila.

*** previdno ***-Bodite zelo previdni pri vstavljanju LED diode, ker so spajkalne točke lahko krhke.

-Sedaj smo prišli do najpomembnejšega dela in vnesli vodilni niz. ploščo preprosto vstavite, kot je prikazano na drugi sliki.

-Ko enkrat vzemite notranjo LED ploščo in jo postavite v ohišje neposredno pod zadnjo ploščo LED matrike. ta kos bi mi lahko prilegal. pred nadaljevanjem pustite, da se posuši.

-Došli ste do zadnjega dela. priporočam, da eno stran tega zadnjega dela (notranji del LED) pobarvate črno ali belo za kontrast med LED diodami in tem delom.

-Vedeli bomo, da to postavimo neposredno za hrbtno stran LED in rahlo pritisnemo na zadnjo stran LED, da se ne premikajo. enkrat nanesite lepilo vzdolž roba, da preprečite njegovo premikanje. prikazano na tretji sliki.

**** Čestitke, končali ste celotno skupščino !!!

nadaljujte do zadnjega koraka za kodiranje igre

6. korak: Koda

Še enkrat čestitam, da ste prišli tako daleč.

v tem razdelku vam bom pokazal kodo in kako naj deluje, poleg stvari v kodi, ki jih lahko spremenite in prilagodite.

preden pa začnemo s tem, boste potrebovali (adafruit_NeoPixel-master), ki sem ga povezal tudi s prenosom.

če želite namestiti glavnega, odprite svoj program arduino

1. pojdi na skico

2. odprite knjižnico za vključitev

3. kliknite (knjižnica add.zip)

4. izberite datoteko (adafruit_NeoPixel-master) in končali ste

pod to sem prilepil kodo za igro.

#vključi

#vključi

dolga žogaXabs = 12;

dolga žogaYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int krogla Y = 1;

int indeks;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - širina paddle + 1;

int knobseg = 1023 / (paddlemax);

int veslo1 = 4;

int veslo2 = 4;

#define NUMPIXELS 260

#define PIN 6

Slikovne pike Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIN6, NEO_GRB + NEO_KHZ800);

void setup () {

pixels.begin ();

Serial.begin (9600);

}

void loop () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

piksli.show ();

detektiraj trk ();

zakasnitev (fps);

}

void clearScreen () {

za (int i = 0; i <NUMPIXELS; i ++) {

pixels.setPixelColor (i, piksli. Color (0, 0, 0));

}

}

void updateBall () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

void detectionCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (veslo1);

if (ballvelX> 0 && ballXabs> = 25) {// trči v desno steno

Serial.println ("CollisionX");

rezultat1 (); // ballvelX*=-1;

}

if (ballvelX <0 && ballXabs <= 0) {// trči v levo steno

Serial.println ("CollisionX");

rezultat2 (); // ballvelX*=-1;

}

if (ballvelY> 0 && ballYabs> = 9) {// trčijo v zgornjo steno

Serial.println ("CollisionY"); krogla Y *= -1;

}

if (ballvelY <0 && ballYabs <= 0) {// trči v spodnjo steno

Serial.println ("CollisionY");

krogla Y *= -1;

}

// zaznavanje trka vesla 2

če ((ballvelX> 0 && ballXabs == 24) && ((ballYabs> = paddle2) && (ballYabs <= paddle2 + širina paddle - 1)))

{// trčijo v desno steno

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// zaznavanje trka vesla 1

if ((ballvelX = paddle1) && (ballYabs <= paddle1 + širina vesla - 1)))

{// trčijo v desno steno

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

void updatePaddle1 () {

int gumb = analogRead (A0);

veslo1 = okrogel ((dolg) gumb / (dolg) gumb);

}

void updatePaddle2 () {

int gumb 2 = analogno branje (A1);

veslo2 = okrogel ((dolg) gumb2 / (dolg) gumb);

}

void displayBall () {

ballX = okrogel (ballXabs);

ballY = okrogel (ballYabs);

če (ballX % 2! = 0) {

indeks = (9 - ballY) + 10 * ballX;

če (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // leva stran kroglice

}

if (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // desna stran barve kroglice

}

if (ballY! = 9) {pixels.setPixelColor (indeks - 1, slikovnih pik. Color (30, 0, 0)); // spodnje strani barve kroglice

}

if (ballY! = 0) {pixels.setPixelColor (indeks + 1, piksli. Color (30, 0, 0)); // zgornje strani barve kroglice

}

}

drugače {

indeks = ballY + 10 * ballX; če (ballX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // leva stran žoge v izenačeni vrsti

}

če (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // desna stran žoge v izenačeni vrsti

}

if (ballY! = 9) {

pixels.setPixelColor (indeks + 1, slikovnih pik. Barva (30, 0, 0)); // spodnja stran krogle enakomerna

}

if (ballY! = 0) {pixels.setPixelColor (indeks - 1, slikovnih pik. Color (30, 0, 0)); // zgornje strani krogle enakomerne

}

}

pixels.setPixelColor (indeks, slikovne pike. Color (255, 0, 0)); /// središče barve kroglice

}

void displayPaddle1 () {

for (int i = 0; i <širina paddle; i ++) {pixels.setPixelColor (paddle1+i, piksli. Color (0, 0, 255));

}

}

void displayPaddle2 () {

za (int i = 0; i <širina paddle; i ++) {pixels.setPixelColor (NUMPIXELS - 1 - paddle2 - i, slikovnih pik. Color (0, 0, 255));

}

}

void score1 () {

resetBall (0);

}

void score2 () {

resetBall (1);

}

void resetBall (int player) {

zamuda (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = igralec? 1: -1;

krogla Y = 1;

clearScreen ();

zamuda (1000);

displayBall ();

piksli.show ();

zamuda (1000);

displayPaddle1 ();

displayPaddle2 (); piksli.show (); zamuda (2000); }

7. korak: Dokončanje

Dokončanje
Dokončanje

Ko naložite kodo, izvrtajte luknjo na zadnji plošči, ki je dovolj velika za napajalnik vtičnice. priključite v arduino in končno sestavite zadnji del.

Na seznam delov sem vključil tudi akril iz LED difuzorja, ki ga lahko postavite na LED in ga prilepite

Ko to storite, ste pripravljeni igrati in uživati v urah tekmovalnih iger proti družini in prijateljem.

Na koncu bi vam rad čestital za zaključek projekta.

Če imate kakršne koli težave, me kontaktirajte tukaj in z veseljem vam bom pomagal rešiti težavo.

Priporočena: