Sadržaj:

LED traka Atari Pong Arkadna mašina: 8 koraka
LED traka Atari Pong Arkadna mašina: 8 koraka

Video: LED traka Atari Pong Arkadna mašina: 8 koraka

Video: LED traka Atari Pong Arkadna mašina: 8 koraka
Video: Atari Pong PCB Reproduction Test #1 2024, Juli
Anonim
Atari Pong Arkadna mašina sa LED trakama
Atari Pong Arkadna mašina sa LED trakama

Zovem se Gabriel Podevin i ovo je moje prvo nezamislivo. Trenutno sam 16 -godišnji srednjoškolac koji voli stvarati i graditi stvari dok me jako zanima elektronika, robotika, sklopovi i programiranje. Nadam se da će vam ovo nepomirljivo biti od pomoći.

U ovom uputstvu pokazat ću vam kako napraviti retro stil Atari pong igre unutar retro arkadne futrole. Možete vidjeti gornji video za demonstraciju projekta, možete vidjeti i gotov projekt i slučaj sami i na dvije slike. Na kraju ovog nepristojnog, dublje ću zaroniti u kôd i kako ga urediti da ga personalizira.

Lista osnovnih dijelova bit će podijeljena u odjeljke: Alati, dijelovi za sastavljanje i komponente

Alati koji će vam trebati uključivat će sljedeće:

- Bušilica

- Lemilica

- odvijač (odgovara vijcima koje odlučite koristiti)

- Multi metar

- cirkulacijska pila, tračna pila ili laserski rezač imate li pristup jednoj

-Rezač žica ili škare

- Pištolj za ljepilo

Dijelovi koji će vam biti potrebni za sastavljanje će uključivati

- Ljepilo za drvo

- 10 drvenih blokova 10 inča po jedan inč

- veliki list četveroinčastog sloja drva ili drva po izboru

- 24 vijka dužine pola inča

- 14 x 6,5 inča LED difuzne plastike (opcionalno)

- crvena i plava električna traka

Komponente koje će vam trebati su:

- 2 potenciometra od 100 k ohma

- 8 metara individualno adresirane LED trake (30 LED -a po metru)

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

- nekoliko metara žice ili više boja žice

- ispravljač za izmjenični / istosmjerni napon koji daje 6v kroz utikač za bačvu

- 1 arduino Uno R3

ako nemate pristup Arduino Uno R3 poput mene, možete izgraditi jedan poput ovog koji ću koristiti u ovom projektu koji koristi procesor atmel328-pu. Slijedite ovu vezu da biste saznali kako izgraditi vlastitu

Ako koristite arduino uno, prijeđite na prvi korak.

Korak 1: Izgradnja LED niza

Izgradnja LED niza
Izgradnja LED niza
Izgradnja LED niza
Izgradnja LED niza
Izgradnja LED niza
Izgradnja LED niza

Ovaj korak je najjednostavniji korak koji oduzima mnogo vremena zbog svih lemljenja koje morate obaviti.

-Za početak će vam trebati komad drveta 10 3/4 inča po 6 1/2 inča.

-Kad dobijete komad drveta, uzmite LED traku i izrežite 26 segmenata svakih 10 LED ili svakih 6 1/2 inča.

-nakon rezanja segmenata zalijepite ih na drvo okomito, kao što je prikazano na sljedećim slikama prikazanim na prvoj gornjoj slici.

-Kad zalijepite trake i pustite ih da se slegnu, počet ćemo lemljenje.

-trebat će vam tri žice različite boje

-treba ga ožičiti sa svim pozitivima koji se spajaju na jednu žicu i svim negativima koji se spajaju na jednu žicu, dok će posljednja žica spojiti LED trake zajedno. Druge slike na početku ovog koraka su dijagram koji će vam pokazati kako spojiti žice.

-Na kraju, nakon što ste ih lemili, jednostavno ćete omotati električnu traku na svoje spojeve lemljenja odgovarajućim bojama. kao što je prikazano na trećoj slici iznad.

-na kraju ćemo se povezati s Arduinom. vaš digitalni ulaz ili vaša srednja žica će se spojiti na vaš 6 -polni digitalni ulaz, a vaše uzemljenje i plus će se spojiti na pozitivne i negativne šine na ploči.

Korak 2: Kontrole vesla

Kontrole vesla
Kontrole vesla
Kontrole vesla
Kontrole vesla
Kontrole vesla
Kontrole vesla

Za ovaj vrlo jednostavan korak sve što trebate učiniti je lemiti tri žice na svaki potenciometar. ako držite potenciometar tako da lemne točke budu okrenute od vas, lijevi zupčić će biti pozitivan, središnji zupčanik će se izlaziti, a desni će biti uzemljen. kako je prikazano na gornjem dijagramu

nakon što zalemite žice, povezat ćemo ih s Arduinom. vi pozitivni i negativni povezat ćete se s odgovarajućim pozitivnim i negativnim kišama. vaše izlazne žice na potenciometrima povezat će se na različite ulaze na arduinu. jedan će se spojiti na (A0) utikač, a drugi će se spojiti na (A1) utikač.

Korak 3: Rezanje kućišta

Rezanje kućišta
Rezanje kućišta
Rezanje kućišta
Rezanje kućišta
Rezanje kućišta
Rezanje kućišta
Rezanje kućišta
Rezanje kućišta

ovaj dio će vam dati dimenzije i kutove onog što ćete morati rezati

**** vrlo važno ***** pobrinite se da vaše drvo bude debljine četvrt inča (1/4 inča)

također, prilikom izrezivanja dijelova ne zaboravite označiti svoje dijelove

osnovni dio za rezanje bit će označen sa donje, stražnje, gornje, prednje gornje, prednje donje strane…. prikazano na slikama na početku

dimenzije delova

- Donja: 13 3/4 inča X 10 1/4 inča

- Leđa: 13 3/4 inča X 15 1/2 inča

- Vrh: 13 3/4 inča X 6 1/2 inča

- Prednje dno: 13 3/4 inča X 4 1/4 inča

- Brojačka ploča: 13 3/4 inča x 6 inča

- Unutrašnji vrh: 13 3/4 inča X 3 1/4 inča

- LED sporedna strana: 6 1/4 inča X 1 inč (izrežite dva od ovih)

- LED unutrašnje dno: 13 1/4 inča X 4 1/2 inča

- unutrašnja stražnja LED ploča: 13 1/4 inča x 9 inča

- Blokovi: 1 inč X 1 inč X 1 inč (izrežite 10 blokova)

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

Gornje slike prikazuju vam kutove i dimenzije dijela bočne ploče. također ćete morati izrezati dva dijela

Korak 4: Sklapanje kućišta

Montaža kućišta
Montaža kućišta
Montaža kućišta
Montaža kućišta
Montaža kućišta
Montaža kućišta

Do ovog trenutka u ovim uputama gotovo ste završili cijelu stvar. recite da vjerovatno mislite da imam sve ove dijelove i izreze šta da radim s njima. Ovaj posljednji korak će vas uputiti kako sastaviti kućište.

-Prvo što ćemo učiniti je početi sastavljati kućište. tu vam dobro dođu svi izrezi drva iz prethodnog koraka.

-Za početak montaže trebat će nam 4 od 1x1x1 drvenih blokova baze, dvije bočne ploče, stražnje i prednje dno. postavite 4 bloka na svaki ugao dna i ostavite četvrt inča između ruba i bloka kao što je prikazano na drugoj slici na početku koraka.

-zatim ćete morati izbušiti neke pilot rupe kroz drvo i blokove. nakon što ste završili taj zavrtanj do dna.

-Sljedeće ćemo staviti bočne ploče. Postavite ploče na razmak od četvrtine inča na vanjskoj strani bloka. izbušite probnu rupu kroz bočnu ploču i drveni blok i pričvrstite ploče. ponovite za drugu stranu.

-Nakon kompletiranja bočnih ploča. stavit ćemo prednju donju ploču. postavite ploču u ravninu s dnom, a bočne strane izbušite probne rupe u blokove i pričvrstite ploču.

-Konačno ćemo se vratiti. učinite isto što ste učinili s prednjom donjom pločom i ponovo ga uvrnite.

-Do ovog trenutka imate temelje na kojima možete graditi i razumijevanje o tome kako sastavljamo ovaj slučaj.

-Ovaj sljedeći dio je malo izazovniji zbog činjenice da radite s manjom površinom. za početak će nam trebati svi gornji dijelovi i 6 blokova.

-Položite ono što ste dosad izgradili na leđa i blokove postavite u uglove četvrtine inča od vrha. (kao što je prikazano na trećoj slici na početku)

-izbušite probne rupe za bočne i stražnje strane te ih uvrnite.

-sad ćemo sastaviti ostatak vrha

-uzmite gornju ploču i postavite je na blokove. Izbušite probne rupe i uvrnite gornju stranu. Nakon što završite, pažljivo okrenite sklop *** naopačke *** i postavite blok u svaki ugao paralelno s rubom. izbušite pilot rupe na bočnim pločama i pričvrstite ih na blok. okrenite kućište uspravno i izbušite probne rupe kroz gornje dijelove u blokove i pričvrstite ga.

-ovo gnezdo je malo zeznuto. trebat će vam prednja gornja ploča i vaša posljednja dva bloka. prvo izbušite probne rupe u prethodne blokove kroz gornju prednju ploču i uvrnite je. Sada uzmite posljednja dva bloka i postavite ih unutra u kut i pričvrstite bočnu ploču i prednju gornju ploču na blokove. još jednom okrenite kućište naopako i postavite unutrašnju gornju ploču na blok i pričvrstite ga.

-trebalo bi vam ostaviti ovako nešto (prikazano na prvoj slici ovog koraka)

sljedeći korak će objasniti ostatak sklopa.

Korak 5: Završetak montaže

Završavanje montaže
Završavanje montaže
Završavanje montaže
Završavanje montaže
Završavanje montaže
Završavanje montaže

Do ovog trenutka ste već gotovo dovršili slučaj i izgradili samo nekoliko stvari koje ćete staviti na svoje mjesto i bit ćete gotovi.

Sada ostaje samo instaliranje elektronike.

-Počet ćemo bušenjem rupa na ploči za biranje potenciometra. slobodno bušite rupe tamo gdje smatrate da bi bilo ugodno. u mom slučaju moram postaviti rupe 2 1/2 inča od dna i 3 1/2 inča sa strane za oba potenciometra.

-Nakon što izbušite rupe, stavit ćemo ovu ploču na kućište. ali umjesto da ga zalijepimo, lijepit ćemo ga, jednostavno stavite veliku količinu ljepila po rubu kućišta i postavite ploču na nju te je držite nekim stezaljkama ili nečim teškim.

-Nakon što se ljepilo osuši, stavljat ćemo elektroničke dijelove. Ali prvo ćemo morati ukloniti stražnju ploču.

-Kada se stražnja strana isključi, preporučujem da kućište postavite sprijeda prema dolje kako biste lakše stavili LED diode i ostale komponente unutra.

-Sada kad nemate na umu, stavit ćemo potenciometar u kućište jednostavnim stavljanjem kroz rupe koje smo upravo izbušili i stavljanjem obilne količine vrućeg ljepila.

*** oprez ***-Budite izuzetno oprezni pri postavljanju LED niza jer tačke lemljenja mogu biti krhke.

-Sada smo došli do najvažnijeg dijela, stavljajući led niz. jednostavno umetnite ploču kao što je prikazano na drugoj slici.

-Jednom unesite LED diodu i postavite je u kućište direktno ispod zadnje ploče LED niza. ovaj komad bi mi mogao dobro pristajati. takođe ostavite da se osuši pre nego što nastavite.

-Došli ste do zadnjeg dijela. preporučujem da jednu stranu ovog završnog dijela (unutrašnja LED dioda) ofarbate u crno ili bijelo radi kontrasta između LED dioda i ovog dijela.

-Znat ćemo da ovo postavite direktno iza LED pozadine i lagano pritisnite na stražnju stranu LED dioda kako se ne bi kretale. jednom stavljeno ljepilo nanesite uz rub kako biste spriječili njegovo pomicanje. prikazano na trećoj slici.

**** Čestitamo, završili ste cijelu skupštinu !!!

nastavite na posljednji korak za kodiranje igre

Korak 6: Kôd

Čestitam još jednom na ovome putu.

u ovom odjeljku pokazat ću vam kôd i kako ga osposobiti uz stvari u kodu koje možete promijeniti i personalizirati.

ali prije nego što uđemo u to trebat će vam (adafruit_NeoPixel-master) koji sam povezao i za preuzimanje.

da biste instalirali master, otvorite svoj arduino program

1. idite na skicu

2. otvorite biblioteku uključivanja

3. kliknite (add.zip biblioteka)

4. Odaberite (adafruit_NeoPixel-master) datoteku i gotovo

ispod ovoga sam zalijepio kod za igru.

#include

#include

duga kuglaXabs = 12;

long ballYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int ballvelY = 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

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

void setup () {

pixels.begin ();

Serial.begin (9600);

}

void loop () {{100} {101}

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pixels.show ();

detectionCollision ();

kašnjenje (fps);

}

void clearScreen () {

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

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

}

}

void updateBall () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

void detectionCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (paddle1);

if (ballvelX> 0 && ballXabs> = 25) {// sudariti u desni zid

Serial.println ("CollisionX");

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

}

if (ballvelX <0 && ballXabs <= 0) {// sudariti lijevi zid

Serial.println ("CollisionX");

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

}

if (ballvelY> 0 && ballYabs> = 9) {// sudariti gornji zid

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

}

if (ballvelY <0 && ballYabs <= 0) {// sudariti donji zid

Serial.println ("CollisionY");

ballvelY *= -1;

}

// detektira sudar vesla 2

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

{// sudariti se u desni zid

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// detektira sudar vesla 1

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

{// sudariti se u desni zid

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

void updatePaddle1 () {

int dugme = analogRead (A0);

veslo1 = okruglo ((dugo) dugme / (dugo) dugme);

}

void updatePaddle2 () {

int knob2 = analogRead (A1);

veslo2 = okruglo ((dugačko) dugme2 / (dugačko) dugme);

}

void displayBall () {

ballX = okrugla (ballXabs);

ballY = okrugli (ballYabs);

if (ballX % 2! = 0) {

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

if (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // lijeva strana loptice

}

if (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // desna strana boje loptice

}

if (ballY! = 9) {pixels.setPixelColor (indeks - 1, pikseli. Boja (30, 0, 0)); // donje strane boje loptice

}

if (ballY! = 0) {pixels.setPixelColor (index + 1, pixels. Color (30, 0, 0)); // gornje strane boje loptice

}

}

else {

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

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // lijeva strana loptice ujednačenog reda

}

if (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // desna strana loptice ujednačenog reda

}

if (ballY! = 9) {

pixels.setPixelColor (indeks + 1, pikseli. Boja (30, 0, 0)); // donje strane loptice ujednačenog reda

}

if (ballY! = 0) {pixels.setPixelColor (indeks - 1, pikseli. Boja (30, 0, 0)); // gornje strane loptice ujednačenog reda

}

}

pixels.setPixelColor (indeks, pikseli. Boja (255, 0, 0)); /// središte boje kugle

}

void displayPaddle1 () {

za (int i = 0; i <širina paddlea; i ++) {pikseli.setPixelColor (paddle1+i, pikseli. Boja (0, 0, 255));

}

}

void displayPaddle2 () {

za (int i = 0; i <širina paddle; i ++) {piksela.setPixelColor (NUMPIXELS - 1 - paddle2 - i, pikseli. Boja (0, 0, 255));

}

}

void score1 () {

resetBall (0);

}

void score2 () {

resetBall (1);

}

void resetBall (int player) {

kašnjenje (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = igrač? 1: -1;

ballvelY = 1;

clearScreen ();

kašnjenje (1000);

displayBall ();

pixels.show ();

kašnjenje (1000);

displayPaddle1 ();

displayPaddle2 (); pixels.show (); kašnjenje (2000); }

Korak 7: Završavanje

Završna obrada
Završna obrada

Nakon što postavite kôd, izbušite rupu na stražnjoj ploči dovoljno veliku za adapter za napajanje cijevne utičnice. priključite ga u arduino i konačno ponovno sastavite stražnju stranu.

Takođe sam na listu dijelova uključio akrilni LED difuzor koji sada možete postaviti preko LED dioda i zalijepiti ga

Nakon što ste ovo učinili, spremni ste za igru i uživanje u satima takmičarskih utakmica protiv porodice i prijatelja.

Na kraju, želim vam čestitati na završetku projekta.

Ako imate bilo kakvih problema, kontaktirajte me ovdje i rado bih vam pomogao u rješavanju problema.

Preporučuje se: