Sadržaj:

LED traka Atari Pong Arkadni stroj: 8 koraka
LED traka Atari Pong Arkadni stroj: 8 koraka

Video: LED traka Atari Pong Arkadni stroj: 8 koraka

Video: LED traka Atari Pong Arkadni stroj: 8 koraka
Video: Atari Pong PCB Reproduction Test #1 2024, Prosinac
Anonim
LED traka Atari Pong Arkadni stroj
LED traka Atari Pong Arkadni stroj

Zovem se Gabriel Podevin i ovo je moj prvi nezamisliv. Trenutno sam 16 -godišnji srednjoškolac koji voli stvarati i graditi stvari, a vrlo me 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 igru u stilu Atari pong unutar retro arkadne futrole. Gornji video možete vidjeti za demonstraciju projekta, možete vidjeti i gotov projekt i slučaj sami i na dvije slike. Na kraju ovog neuhvatljivog teksta dublje ću zaroniti u kôd i kako ga urediti kako bismo ga personalizirali.

Popis osnovnih dijelova bit će podijeljen 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)

- Višemetar

- 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 duljine 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 drva 10 3/4 inča po 6 1/2 inča.

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

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

-Kad ste zalijepili trake i pustili 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 gornjoj trećoj slici.

-najzad ćemo se spojiti na Arduino. vaš digitalni ulaz ili srednja žica spojit će se na vaš 6 -polni digitalni ulaz, a uzemljenje i pozitivna će se spojiti na pozitivne i negativne vodilice na ploči.

Korak 2: Kontrole vesla

Komande za veslo
Komande za veslo
Komande za veslo
Komande za veslo
Komande za veslo
Komande za veslo

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

nakon što zalemite žice, spojit ćemo ih na Arduino. 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 četvrtine 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 s donje, stražnje, gornje, prednje gornje, prednje donje strane…. prikazano na slikama na početku

dimenzije dijela

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

- Stražnja strana: 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č: 13 3/4 inča x 6 inča

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

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

- LED unutarnje dno: 13 1/4 inča X 4 1/2 inča

- unutarnja 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 kutove i dimenzije dijela bočne ploče. također ćete morati izrezati dva ovog dijela

Korak 4: Sklapanje kućišta

Sklapanje kućišta
Sklapanje kućišta
Sklapanje kućišta
Sklapanje kućišta
Sklapanje kućišta
Sklapanje kućišta

Do ove točke u ovim uputama gotovo ste dovršili cijelu stvar. iznesite svoje vjerojatno mišljenje da imam sve ove dijelove i izreze što 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. ovdje vam dobro dolaze svi izrezivi 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 kut 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 vijak pa do dna.

-Sljedeće ćemo staviti bočne ploče. Postavite ploče na razmak od četvrt 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 dovršetka bočnih ploča. stavit ćemo prednju donju ploču. postavite ploču u ravninu s dnom, a stranice 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 ponovno vas uvrnite.

-Do ovog trenutka imate temelje za izgradnju 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 okupiti ostatak vrha

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

-ovo gnijezdo 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 zadnja dva bloka i postavite ih unutra u kut te pričvrstite bočnu ploču i prednju gornju ploču na blokove. još jednom okrenite kućište naopako i postavite unutarnju 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šetak Skupštine
Završetak Skupštine
Završetak Skupštine
Završetak Skupštine
Završetak Skupštine
Završetak Skupštine

Do ovog trenutka ste već gotovo dovršili slučaj i izgradili samo nekoliko stvari koje ćete postaviti 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, stavit ć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 unutar kućišta jednostavnim stavljanjem kroz rupe koje smo upravo izbušili i stavljanjem obilne količine vrućeg ljepila.

*** oprez ***-Budite izuzetno oprezni pri postavljanju LED polja jer mjesta lemljenja mogu biti krhka.

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

-Jednom unesite LED diodu i postavite je u kućište izravno ispod stražnje ploče LED niza. ovaj bi mi komad mogao dobro pristajati. također ostavite da se osuši prije nego nastavite.

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

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

**** čestitam, završili ste cijelu skupštinu !!!

prijeđite 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 prilagoditi.

ali prije nego što uđemo u to trebat će vam (adafruit_NeoPixel-master) koji sam također povezao s preuzimanjem.

da biste instalirali master, otvorite svoj arduino program

1. idi skicirati

2. otvorite biblioteku uključivanja

3. kliknite (biblioteka add.zip)

4. Odaberite datoteku (adafruit_NeoPixel-master) i gotovo

ispod ovoga sam zalijepio kod za igru.

#uključi

#uključi

duga kuglaXabs = 12;

duga loptaYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int lopta 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;

#definirajte NUMPIXELS 260

#definirajte PIN 6

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

void setup () {

pikseli.begin ();

Serial.begin (9600);

}

void loop () {{100} {101}

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pikseli.show ();

detectionCollision ();

kašnjenje (fps);

}

void clearScreen () {

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

pixels.setPixelColor (i, pikseli. 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) {// sudariti desni zid

Serial.println ("CollisionX");

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

}

if (ballvelX <0 && ballXabs <= 0) {// sudariti lijevu stijenku

Serial.println ("CollisionX");

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

}

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

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

}

if (ballvelY <0 && ballYabs <= 0) {// sudariti donju stijenku

Serial.println ("CollisionY");

lopta Y *= -1;

}

// detektirati sudar vesla 2

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

{// sudariti desni zid

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// detektirati sudar vesla 1

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

{// sudariti desni zid

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

void updatePaddle1 () {

int gumb = analogno čitanje (A0);

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

}

void updatePaddle2 () {

int knob2 = analogRead (A1);

veslo2 = okrugli ((dugački) gumb2 / (dugački) knobseg);

}

void displayBall () {

ballX = okrugla (ballXabs);

ballY = okrugla (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 kugle

}

if (ballY! = 0) {pixels.setPixelColor (indeks + 1, pikseli. Boja (30, 0, 0)); // gornje strane boje kugle

}

}

drugo {

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

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

}

if (ballX! = 25) {

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

}

if (ballY! = 9) {

pixels.setPixelColor (indeks + 1, pikseli. Boja (30, 0, 0)); // donje strane loptice ravan red

}

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

}

}

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 paddlea; 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;

kugla Y = 1;

clearScreen ();

kašnjenje (1000);

displayBall ();

pikseli.show ();

kašnjenje (1000);

displayPaddle1 ();

displayPaddle2 (); pikseli.show (); odgoda (2000); }

Korak 7: Završetak

Završavanje
Završavanje

Nakon što ste učitali kod, izbušite rupu na stražnjoj ploči dovoljno veliku za adapter za napajanje cijevne utičnice. priključite ga u arduino i na kraju ponovno sastavite stražnju stranu.

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

Nakon što ste to učinili, spremni ste za igru i uživanje u satima natjecateljskih igara protiv obitelji i prijatelja.

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

Ako imate bilo kakvih problema, kontaktirajte me ovdje i rado bih vam pomogao riješiti problem.

Preporučeni: