Sisukord:

LED -riba Atari Pong Arcade Machine: 8 sammu
LED -riba Atari Pong Arcade Machine: 8 sammu

Video: LED -riba Atari Pong Arcade Machine: 8 sammu

Video: LED -riba Atari Pong Arcade Machine: 8 sammu
Video: Atari Pong Table Hire from A1 Agency Ltd 2024, November
Anonim
LED -riba Atari Pong Arcade Machine
LED -riba Atari Pong Arcade Machine

Minu nimi on Gabriel Podevin ja see on minu esimene muutumatu. Olen praegu 16 -aastane keskkooliõpilane, kes armastab luua ja ehitada asju, olles samal ajal väga huvitatud elektroonikast, robootikast, vooluringidest ja programmeerimisest. Loodan, et leiate selle lihtsustatava leiu sellest abi.

Selles juhendis näitan teile, kuidas teha retro stiilis Atari pongi mängu retro arkaadikarbis. Ülaltoodud videot näete projekti demo jaoks, samuti näete valmis projekti ja ümbrist üksi ja kahel pildil. Selle intructable'i lõpus sukeldun sügavamalt koodi ja kuidas seda isikupärastamiseks muuta.

Põhiosade loend jaguneb osadeks: Tööriistad, montaažiosad ja komponendid

Vajalikud tööriistad hõlmavad järgmist:

- Puurida

- Jootekolb

- kruvikeeraja (vastab kruvidele, mida otsustate kasutada)

- Mitmearvesti

- ringlusaag, lintsaag või laserlõikur, kui teil on sellele juurdepääs

-Traadi lõikur või käärid

- Liimipüstol

Osad, mida vajate kokkupanekuks, sisaldavad

- puiduliim

- 10 ühe tolli ja ühe tolli puitplokki

- suur veerandtollise kihi või valitud puidu leht

- 24 kruvi, mille pikkus on pool tolli

- 14 x 6,5 tolli LED -hajutavat plastikut (valikuline)

- punane ja sinine elektrilint

Komponendid, mida vajate, on järgmised:

- 2 100k oomi potentsiomeetrit

- 8 meetrit individuaalselt adresseeritavat LED -riba (30 LED -i meetri kohta)

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

- mitu meetrit traati või mitut värvi traat

- vahelduvvoolu -alalisvoolu toiteadapter, mis väljastab 6 V läbi silindripistiku

- 1 arduino Uno R3

kui teil pole juurdepääsu sellisele Arduino Uno R3-le nagu mina, saate luua sellise, mida ma kasutan selles projektis, mis kasutab atmel328-pu protsessorit. Järgige seda linki, et õppida, kuidas luua oma

Kui kasutate arduino uno, jätkake esimese sammuga.

Samm: LED -massiivi loomine

LED -massiivi ehitamine
LED -massiivi ehitamine
LED -massiivi ehitamine
LED -massiivi ehitamine
LED -massiivi ehitamine
LED -massiivi ehitamine

See samm on lihtsaim aeganõudev samm kõigi jootmiste tõttu, mida peate tegema.

-alustamiseks vajate 10 3/4 tolli 6 1/2 tolli puutükki.

-kui teil on oma puutükk, haarake oma LED -riba ja lõigake 26 segmenti iga 10 LED -i või iga 6 1/2 tolli järel.

-pärast segmentide lõikamist liimige need vertikaalselt oma puidu külge, nagu on näidatud ülaltoodud esimesel pildil näidatud järgmistel piltidel.

-kui olete ribad alla kleepinud ja lasknud neil settida, hakkame jootma.

-vajate kolme erinevat värvi traati

-see peaks olema juhtmega ühendatud, nii et kõik positiivsed ühendatakse ühe juhtmega ja kõik negatiivid ühendatakse ühe juhtmega, samal ajal kui viimane juhe ühendab LED -ribad kokku. Teised pildid selle sammu alguses on skeem, mis näitab teile, kuidas juhtmeid ühendada.

-Lõpuks pärast nende jootmist pakite jootmisühendustele lihtsalt elektrilindi vastavate värvidega. nagu on näidatud ülaltoodud kolmandal pildil.

-viimasel ajal ühendame Arduinoga. teie digitaalne sisend või keskmine juhe ühendab teiega digitaalse sisendiga 6 kontakti ja teie maandus ja positiivne ühendatakse tahvli positiivsete ja negatiivsete rööbastega.

2. samm: mõla juhtnupud

Mõla juhtnupud
Mõla juhtnupud
Mõla juhtnupud
Mõla juhtnupud
Mõla juhtnupud
Mõla juhtnupud

Selle väga lihtsa sammu jaoks peate ainult jootma iga potentsiomeetri juurde kolm juhtmest. kui hoiate potentsiomeetrit nii, et jootmispunktid oleksid teie poole suunatud, on vasak haru positiivne, kui keskmist piiki väljastatakse ja parem harg maandatakse. nagu ülaltoodud diagrammil näidatud

kui olete juhtmed jootnud, ühendame need Arduinoga. teil on positiivsed ja negatiivsed ühendused vastavate positiivsete ja negatiivsete vihmadega. potentsiomeetrite väljundjuhtmed ühendatakse arduino erinevate sisenditega. üks ühendub pistikuga (A0) ja teine pistikuga (A1).

3. samm: korpuse lõikamine

Korpuse lõikamine
Korpuse lõikamine
Korpuse lõikamine
Korpuse lõikamine
Korpuse lõikamine
Korpuse lõikamine
Korpuse lõikamine
Korpuse lõikamine

see osa annab teile mõõtmed ja nurgad, mida peate lõikama

**** väga oluline ***** veenduge, et teie puit oleks veerand tolli paks (1/4 tolli)

ka osade väljalõikamisel ärge unustage oma osi märgistada

lõigatav põhiosa on märgistatud alumise, tagumise, ülemise, eesmise ülaosa, eesmise põhjaga…. alguses piltidel näidatud

osa mõõtmed

- Alumine: 13 3/4 tolli X 10 1/4 tolli

- Tagasi: 13 3/4 tolli X 15 1/2 tolli

- Ülemine: 13 3/4 tolli X 6 1/2 tolli

- Eesmine põhi: 13 3/4 tolli X 4 1/4 tolli

- Valimispaneel: 13 3/4 tolli X 6 tolli

- Sisemine ülaosa: 13 3/4 tolli X 3 1/4 tolli

- LED -vooder: 6 1/4 tolli X 1 tolli (lõigake kaks neist)

- LED sisemine põhi: 13 1/4 tolli X 4 1/2 tolli

- sisemine tagumine LED -paneel: 13 1/4 tolli X 9 tolli

- plokid: 1 tolli X 1 tolli X 1 tolli (lõigatud 10 plokki)

- Akrüülpaneel: 13 3/4 tolli X 6 1/2 tolli

Ülaltoodud piltidel on näidatud külgpaneeli osa nurgad ja mõõtmed. samuti peate lõikama kaks sellest osast

4. samm: korpuse kokkupanek

Korpuse kokkupanek
Korpuse kokkupanek
Korpuse kokkupanek
Korpuse kokkupanek
Korpuse kokkupanek
Korpuse kokkupanek

Nende juhiste selle punktiga olete peaaegu kogu asja lõpetanud. pange ilmselt mõtlema, et mul on kõik need osad ja väljalõiked, mida ma nendega teen. See viimane samm juhendab teid, kuidas oma ümbrist kokku panna.

-Esimese asjana hakkame juhtumit kokku panema. siin tulevad kasuks kõik teie eelmise sammu puidust väljalõiked.

-Kokkupaneku alustamiseks vajame 4 1x1x1 puitplokist alust, kahte külgpaneeli, tagakülge ja esipõhja. asetage 4 klotsi põhja mõlemale nurgale ja jätke veerand tolli serva ja ploki vahele, nagu on näidatud teisel pildil sammu alguses.

-järgmiseks peate puidu ja klotside kaudu puurima mõned prooviaugud. kui olete selle kruvi teinud, siis põhja.

-Järgmisena paneme külgpaneelid peale. Asetage paneelid ploki väljapoole jäävale veerandtollisele pilule. puurige külgpaneeli ja puitploki kaudu prooviauk ja keerake paneelid sisse. korrake teise küljega.

-Pärast külgpaneelide valmimist. paneme esipaneeli alla. asetage paneel põhjaga ühele poole ja küljed puurige plokkidesse prooviaugud ja keerake paneel kinni.

-Lõpuks paneme selga. tehke sama, mis esipaneelil ja keerake see tagasi.

-Selleks hetkeks on teil alus, millele tugineda, ja arusaam sellest, kuidas me seda juhtumit kokku paneme.

-See järgmine osa on natuke keerulisem, kuna töötate väiksema alaga. alustamiseks vajame kõiki ülemisi osi ja 6 plokki.

-Pange see, mille olete seni ehitanud, selga ja asetage klotsid nurkadesse veerand tolli kaugusel ülevalt. (nagu alguses kolmandal pildil)

-puurige külgede ja selja prooviavad ja keerake need sisse.

-nüüd paneme ülejäänud ülaosa kokku

-Võtke oma ülemine paneel ja asetage see klotsidele, puurige prooviaugud ja keerake ülemine osa sisse. Pärast soome keelt keerate oma komplekti tagurpidi *** ettevaatlikult *** ja asetage plokk igasse serva paralleelsesse nurka. puurige külgpaneelidest prooviaugud ja keerake need ploki külge. keerake korpus tagasi püsti ja puurige ülaosast prooviaugud plokkidesse ja keerake see sisse.

-see pesaosa on natuke keeruline. vajate esipaneeli ja kahte viimast plokki. puurige esmalt ülemise esipaneeli kaudu eelmistesse plokidesse prooviaugud ja keerake need sisse. Nüüd viige kaks viimast plokki ja asetage need nurka ning keerake külgpaneel ja esipaneel plokkide külge. keerake korpus veel kord tagurpidi ja asetage sisemine ülemine paneel plokile ja keerake see sisse.

-teile peaks jääma midagi sellist (näidatud selle sammu esimesel pildil)

järgmine samm selgitab ülejäänud kokkupanekut.

Samm: montaaži viimistlemine

Montaaži lõpetamine
Montaaži lõpetamine
Montaaži lõpetamine
Montaaži lõpetamine
Montaaži lõpetamine
Montaaži lõpetamine

Selleks hetkeks olete juhtumi peaaegu lõpetanud ja ehitanud vaid mõned asjad, mis paika panna ja olete valmis.

Nüüd jääb üle vaid elektroonika paigaldamine.

-Alustuseks puurime teie potentsiomeetri valimispaneelile augud. puurige julgelt auke sinna, kus tunnete, et see oleks mugav. minu puhul olen mõlema potentsiomeetri jaoks asetanud augud 2 1/2 tolli alt ja 3 1/2 tolli küljelt.

-Kui olete oma augud puurinud, paneme selle paneeli korpusele. selle asemel, et seda kruvida, hakkame seda liimima, lihtsalt paneme korpuse servale suure hulga liimi ja asetame paneeli külge ning hoiame seda mõne klambri või mõne raske asjaga.

-Kui liim on kuivanud, paneme sisse elektroonilised osad. Kuid kõigepealt peame tagapaneeli eemaldama.

-Kui tagakülg on välja lülitatud, soovitan paigutada korpuse ettepoole, et oleks lihtsam LED -e ja muid komponente sisse panna.

-Nüüd, kui teil on tagurpidi, asetame potentsiomeetri korpuse sisse, pannes need lihtsalt läbi puuritud aukude ja pannes ohtralt kuuma liimi.

*** Ettevaatust ***-Olge LED-massiivi paigutamisel äärmiselt ettevaatlik, sest jootepunktid võivad olla habras.

-Nüüd oleme jõudnud kõige olulisema osani, lisades led -massiivi. lihtsalt asetage tahvel teisele pildile.

-Kui olete oma sisemise paneeli kätte saanud ja asetage see korpuse sisse otse LED -massiivi tagapaneeli alla. see tükk võib mulle hästi sobida. laske ka enne jätkamist kuivada.

-Olete jõudnud viimase osani. soovitan värvida selle viimase osa (LED -sisemine tagakülg) üks külg mustaks või valgeks, et LED -ide ja selle osa vahel oleks kontrast.

-Me teame, et asetage see otse LED -tagakülje taha ja vajutage kergelt LED -ide tagaküljele, et need ei liiguks. pärast sisestamist kandke liimi mööda serva, et vältida selle liikumist. näidatud kolmandal pildil.

**** Palju õnne, et olete kogu kokkupaneku lõpetanud !!!

jätkake mängu kodeerimiseks viimase sammuga

6. samm: kood

Õnnitlen teid veel kord nii kaugele jõudmise eest.

selles jaotises näitan teile koodi ja seda, kuidas see toimiks, lisaks muudele koodis olevatele asjadele, mida saate muuta ja isikupärastada.

kuid enne kui me sellesse asume, vajate (adafruit_NeoPixel-master) ka allalaadimist.

kapteni installimiseks avage arduino programm

1. mine visandile

2. avatud raamatukogu

3. klõpsake (add.zip raamatukogu)

4. Valige fail (adafruit_NeoPixel-master) ja olete valmis

selle alla olen kleepinud mängu koodi.

#kaasake

#kaasake

pikk pallXabs = 12;

pikk ballYabs = 4;

int ballX;

int ballY;

int pallitasemeX = 1;

int pallitasemeY = 1;

int indeks;

int fps = 50;

int mõla laius = 3;

int paddlemax = 9 - mõla laius + 1;

int knobseg = 1023 / (paddlemax);

int mõla1 = 4;

int mõla2 = 4;

#defineeri NUMPIXELS 260

#defineeri PIN 6

Adafruit_NeoPixel pikslid = Adafruit_NeoPixel (NUMPIXELS, PIN6, NEO_GRB + NEO_KHZ800);

tühine seadistus () {

pixels.begin ();

Seriaalne algus (9600);

}

void loop () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pixels.show ();

detectCollision ();

viivitus (fps);

}

void clearScreen () {

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

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

}

}

void updateBall () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

void detectCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (mõla1);

if (ballvelX> 0 && ballXabs> = 25) {// põrkuvad paremale seinale

Serial.println ("KokkupõrgeX");

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

}

if (ballvelX <0 && ballXabs <= 0) {// põrkuvad vasakule seinale

Serial.println ("KokkupõrgeX");

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

}

if (ballvelY> 0 && ballYabs> = 9) {// põrkuvad vastu ülemist seina

Serial.println ("KokkupõrgeY"); kuuliY *= -1;

}

if (ballvelY <0 && ballYabs <= 0) {// põrkuvad kokku alumise seinaga

Serial.println ("KokkupõrgeY");

kuuliY *= -1;

}

// tuvastada mõla 2 kokkupõrge

kui ((ballvelX> 0 && ballXabs == 24) && ((ballYabs> = paddle2) && (ballYabs <= paddle2 + paddlewidth - 1)))

{// põrkuvad paremale seinale

Serial.println ("CollisionPaddle");

kuultaseX *= -1;

}

// avastada mõla 1 kokkupõrge

if ((ballvelX = mõla1) && (ballYabs <= mõla1 + mõla laius - 1)))

{// põrkuvad paremale seinale

Serial.println ("CollisionPaddle");

kuultaseX *= -1;

}

}

void updatePaddle1 () {

int nupp = analogRead (A0);

mõla1 = ümmargune ((pikk) nupp / (pikk) nupp);

}

void updatePaddle2 () {

int nupp2 = analogRead (A1);

mõla2 = ümmargune ((pikk) nupp2 / (pikk) nupp);

}

void displayBall () {

ballX = ümmargune (ballXabs);

ballY = ümmargune (ballYabs);

kui (ballX % 2! = 0) {

indeks = (9 - pallY) + 10 * pallX;

kui (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // pallivärvi vasak pool

}

if (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // kuuli värvi parem pool

}

if (ballY! = 9) {pixels.setPixelColor (indeks - 1, pikslit. Värv (30, 0, 0)); // palli värvi alumised küljed

}

if (ballY! = 0) {pixels.setPixelColor (indeks + 1, pikslit. Värv (30, 0, 0)); // palli värvi ülemised küljed

}

}

muu {

indeks = pallY + 10 * pallX; kui (ballX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // kuuli vasak pool ühtlane rida

}

kui (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // parempoolne pall ühtlane rida

}

kui (ballY! = 9) {

pixels.setPixelColor (indeks + 1, pikslit. värv (30, 0, 0)); // palli alumine külg ühtlane rida

}

if (ballY! = 0) {pixels.setPixelColor (indeks - 1, pikslit. Värv (30, 0, 0)); // palli ülemised küljed ühtlane rida

}

}

pixels.setPixelColor (indeks, pixels. Color (255, 0, 0)); /// palli värvi keskpunkt

}

void displayPaddle1 () {

for (int i = 0; i <paddlewidth; i ++) {pixels.setPixelColor (mõla1+i, pikslit. Värv (0, 0, 255));

}

}

void displayPaddle2 () {

for (int i = 0; i <paddlewidth; i ++) {pixels.setPixelColor (NUMPIXELS - 1 - mõla2 - i, pikslit. Värv (0, 0, 255));

}

}

tühine skoor1 () {

resetBall (0);

}

tühine skoor2 () {

resetBall (1);

}

void resetBall (int -mängija) {

viivitus (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = mängija? 1: -1;

kuuliY = 1;

clearScreen ();

viivitus (1000);

displayBall ();

pixels.show ();

viivitus (1000);

displayPaddle1 ();

displayPaddle2 (); pixels.show (); viivitus (2000); }

Samm: viimistlus

Viimistlus
Viimistlus

Kui olete koodi üles laadinud, puurige tagapaneelile auk, mis on teie tünnipistiku toiteadapteri jaoks piisavalt suur. ühendage see arduinoga ja pange lõpuks tagakülg kokku.

Lisasin ka osade loendisse akrüülist LED -hajuti, mille saate nüüd LED -ide kohale asetada ja liimida

Kui olete seda teinud, olete valmis mängima ja nautima tunde võistlusmänge pere ja sõprade vastu.

Lõpetuseks tahaksin teid projekti lõpuleviimise puhul õnnitleda.

Kui teil on probleeme, võtke minuga ühendust siin ja ma aitaksin probleemi lahendada.

Soovitan: