Indholdsfortegnelse:

LED Strip Atari Pong Arcade Machine: 8 trin
LED Strip Atari Pong Arcade Machine: 8 trin

Video: LED Strip Atari Pong Arcade Machine: 8 trin

Video: LED Strip Atari Pong Arcade Machine: 8 trin
Video: Is This the Biggest Order I've Ever Shipped?! 2024, December
Anonim
LED Strip Atari Pong Arcade Machine
LED Strip Atari Pong Arcade Machine

Mit navn er Gabriel Podevin, og dette er min allerførste uforgængelige. Jeg er i øjeblikket en 16 -årig gymnasieelev, der elsker at skabe og bygge ting, mens han er meget interesseret i elektronik, robotik, kredsløb og programmering. Jeg håber, at du kan finde denne uforgængelige finde dette nyttigt.

I denne instrukser vil jeg vise dig, hvordan du laver et Atari Pong -spil i retrostil inde i en retro arkadekasse. Du kan se ovenstående video til en demo af projektet, du kan også se det færdige projekt og sagen alene og på de to billeder. I slutningen af denne uforgængelige vil jeg dykke dybere ned i koden og hvordan jeg redigerer den for at tilpasse den.

Den grundlæggende deleliste vil blive opdelt i sektionerne: Værktøjer, montagedele og komponenter

De værktøjer, du får brug for, vil omfatte følgende:

- Bor

- Loddekolbe

- Skruetrækker (matcher de skruer, du beslutter dig for at bruge)

- Multi meter

- cirkulationssav, båndsav eller laserskærer har du adgang til en

-Wire cutter eller saks

- Limpistol

Dele, du skal bruge til montering, inkluderer

- Trælim

- 10 en tommer efter en tomme træblokke

- stort ark af kvart tommer lag træ eller træ efter eget valg

- 24 skruer en halv tomme i længden

- 14 x 6,5 tommer LED -diffusionsplast (valgfrit)

- rød og blå elektrisk tape

De komponenter, du skal bruge, er:

- 2 100k ohm potentiometre

- 8 meter individuelt adresserbar LED -strip (30 leds pr. Meter)

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

- flere meter tråd eller flere trådfarver

- vekselstrømsadapter til vekselstrøm, der sender 6v gennem et tønde -stik

- 1 arduino Uno R3

hvis du ikke har adgang til en Arduino Uno R3 som mig selv, kan du bygge en som den, jeg vil bruge i dette projekt, der bruger en atmel328-pu processor. Følg dette link for at lære at bygge dit eget

Hvis du bruger en arduino uno, skal du fortsætte til trin et.

Trin 1: Opbygning af LED Array

Bygger LED Array
Bygger LED Array
Bygger LED Array
Bygger LED Array
Bygger LED Array
Bygger LED Array

Dette trin er det enkleste tidskrævende trin på grund af al den lodning, du skal gøre.

-for at begynde har du brug for et stykke træ på 10 3/4 tommer med 6 1/2 tommer.

-Når du har dit stykke træ, tag din Led -strimmel og skær 26 segmenter hver 10. LED eller hver 6 1/2 tomme.

-efter at skære segmenterne lim dem ned til dit træ lodret som vist på de følgende billeder vist på det første billede ovenfor.

-Når du har limet strimlerne ned og ladet dem sætte sig, begynder vi at lodde.

-Du skal bruge tre forskellige farver

-den skal være forbundet med alle positive tilslutning til en ledning og alle negative tilslutning til en ledning, mens den sidste ledning vil slange ledstrimlerne sammen. Det andet billede i begyndelsen af dette trin er et diagram, der viser dig, hvordan du forbinder ledningerne.

-Endelig, når du har loddet dem, vil du blot pakke en strimmel elektrisk på dine loddeforbindelser med de tilsvarende farver. som vist på det tredje billede ovenfor.

-til sidst vil vi oprette forbindelse til Arduino. din digitale indgang eller din midterste ledning vil oprette forbindelse til din digitale indgang 6 pin, og din jord og positive vil forbinde til de positive og negative skinner på tavlen.

Trin 2: Paddle -kontrollerne

Paddle -kontrollerne
Paddle -kontrollerne
Paddle -kontrollerne
Paddle -kontrollerne
Paddle -kontrollerne
Paddle -kontrollerne

Til dette meget enkle trin er alt, hvad du skal gøre, at lodde tre ledninger til hvert potentiometer. Hvis du holder potentiometeret med loddepunkterne vendt væk fra dig, vil den venstre spids være positiv, at den midterste tand sendes ud, og den højre tand vil blive formalet. som vist i diagrammet ovenfor

når du har loddet ledningerne på, forbinder vi dem med Arduino. du possitive og negative vil forbinde til der tilsvarende positive og negative regner. du output ledninger på potentiometre vil forbinde til forskellige indgange på arduino. den ene vil forbinde til (A0) stikket, og den anden vil forbinde til (A1) stikket.

Trin 3: Skæring af sagen

Skæring af sagen
Skæring af sagen
Skæring af sagen
Skæring af sagen
Skæring af sagen
Skæring af sagen
Skæring af sagen
Skæring af sagen

denne del giver dig dimensioner og vinkler på, hvad du skal skære

**** meget vigtigt ***** sørg for, at dit træ er en centimeter tykt (1/4 tommer)

også ved udskæring af dele husk at mærke dine dele

den grundlæggende del, der skal skæres, vil blive mærket bunden, bagsiden, toppen, fronten øverst, den forreste bund…. vist på billederne i begyndelsen

delmål

- Bund: 13 3/4 tommer X 10 1/4 tommer

- Ryg: 13 3/4 tommer X 15 1/2 tommer

- Top: 13 3/4 tommer X 6 1/2 tommer

- Forrest forneden: 13 3/4 tommer X 4 1/4 tommer

- Dial Panel: 13 3/4 inches X 6 inches

Indvendig top: 13 3/4 tommer X 3 1/4 tommer

- LED -sidespor: 6 1/4 tommer X 1 tommer (skær to af disse)

- LED Indvendig bund: 13 1/4 tommer X 4 1/2 tommer

- indvendigt bag LED -panel: 13 1/4 tommer X 9 tommer

- Blokke: 1 tommer X 1 tommer X 1 tommer (skær 10 blokke)

- Akrylpanel: 13 3/4 tommer X 6 1/2 tommer

Billederne ovenfor viser dig vinkler og dimensioner af sidepaneldelen. også skal du skære to af denne del

Trin 4: Kassemontering

Kassemontering
Kassemontering
Kassemontering
Kassemontering
Kassemontering
Kassemontering

På dette tidspunkt i disse instruktioner har du næsten afsluttet det hele. sætte din sandsynligt tænker jeg har alle disse dele og udskæringer hvad gør jeg med dem. Dette sidste trin vil instruere dig i, hvordan du samler din sag.

-Det første, vi skal til, er at begynde at samle sagen. det er her alle dine træudskæringer fra det foregående trin kommer godt med.

-For at begynde samlingen skal vi bruge 4 af 1x1x1 træblokke basen, de to sidepaneler, bagsiden og den forreste bund. anbring de 4 blokke på hvert hjørne af bunden, og lad en kvart tomme være mellem kanten og blokken som vist på det andet billede ved trinets tiggeri.

-næste skal du bore nogle styrehuller gennem træet og klodserne. når du har gjort den skrue derefter til bunden.

-Næste sætter vi sidepanelerne på. Placer panelerne på kvart tommer hul på ydersiden af blokken. bor et pilothul gennem sidepanelet og træblokken, og skru panelerne i. gentag for den anden side.

-Efter afslutning af sidepanelerne. vi vil sætte det forreste bundpanel på. placer panelet i plan med bunden og siderne bor styrehullerne i klodserne og skru panelet på.

-Endelig tager vi ryggen på. gør det samme som du gjorde med det forreste bundpanel og skru dig tilbage.

-På dette tidspunkt har du et fundament at bygge ud af og en forståelse for, hvordan vi samler denne sag.

-Denne næste del er lidt mere udfordrende, fordi du arbejder med et mindre område. Til at begynde med skal vi bruge alle de øverste dele og 6 blokke.

-Læg det, du hidtil har bygget på ryggen, og placer blokkene i hjørnerne en centimeter fra toppen. (som vist på det tredje billede i begyndelsen)

-bor hullerne til siderne og bagsiden og skru dem fast.

-nu samler vi resten af toppen

-Tag dit øverste panel og placer det på klodserne. Bor pilothullerne og skru toppen ind. Efter at du har finsk, der vender forsamlingen på hovedet *** forsigtigt *** og placer en blok i hvert hjørne parallelt med kanten. bor styrehuller fra sidepanelerne og skru dem til blokken. drej sagen tilbage oprejst, og bor styrehuller gennem toppen i klodserne og skru den fast.

-den rede del er lidt vanskelig. du skal bruge frontpanelet og dine sidste to blokke. bor først et pilothul i de foregående blokke gennem dit øverste frontpanel og skru det ind. Tag nu de sidste to blokke og placer dem inde i hjørnet og skru dit sidepanel og dit forreste toppanel til klodserne. vend igen sagen på hovedet, og anbring det indre toppanel på blokken, og skru den fast.

-du skal sidde tilbage med noget lignende (vist på det første billede af dette trin)

næste trin forklarer resten af forsamlingen.

Trin 5: Afslutning af samlingen

Afslutning af forsamlingen
Afslutning af forsamlingen
Afslutning af forsamlingen
Afslutning af forsamlingen
Afslutning af forsamlingen
Afslutning af forsamlingen

På dette tidspunkt har du næsten afsluttet sagen og opbygningen blot et par ting, du skal sætte på plads, og du er færdig.

Nu er det bare tilbage at installere elektronikken.

-Vi starter med at bore huller i dit urskive til dit potentiometer. bor gerne hullerne, hvor du føler det ville være behageligt. i mit tilfælde har jeg placeret hullerne 2 1/2 tommer fra bunden og 3 1/2 tommer fra siden til begge potentiometre.

-Når du har boret dine huller, sætter vi dette panel på sagen. men i stedet for at skrue det fast, limer vi det bare ved at lægge en generøs mængde lim langs sagen og placere panelet på og holde det med nogle klemmer eller noget tungt.

-Når limen er tørret, vil vi lægge de elektroniske dele i. Men først skal vi fjerne bagpanelet.

-Når bagsiden er slukket, anbefaler jeg, at du placerer sagen nedad, hvilket gør det lettere at sætte lysdioderne og andre komponenter indeni.

-Nu, når du har bagsiden af, placerer vi potentiometeret inde i kassen ved blot at sætte dem gennem hullerne, vi lige har boret, og lægge en generøs mængde varm lim.

*** forsigtighed ***-Vær yderst forsigtig, når du sætter LED-arrayet i, fordi loddepunkterne kan være skrøbelige.

-Nu har vi nået den vigtigste del ved at sætte led -arrayet i. Placer blot tavlen i som vist på det andet billede.

-Når du får dit ledede indre panel, og placer det inde i kabinettet direkte under LED -arrayets bagpanel. dette stykke kan passe godt til mig. lad det også tørre, inden du fortsætter.

-Du har nået den sidste del. Jeg anbefaler at male den ene side af denne sidste del (LED indvendig bagside) sort eller hvid for en kontrast mellem lysdioderne og denne del.

-Vi ved, placer dette direkte bag LED -bagsiden og tryk let mod bagsiden af LED'erne for at forhindre dem i at bevæge sig. når den er sat i, skal du påføre lim langs kanten for at forhindre, at den bevæger sig. vist på det tredje billede.

**** tillykke, du har afsluttet hele samlingen !!!

fortsæt til det sidste trin for at kode spillet

Trin 6: Koden

Tillykke endnu en gang med at nå så langt.

i dette afsnit vil jeg vise dig koden og hvordan du får den til at fungere udover ting i koden, du kan ændre og tilpasse den.

men før vi går ind i det, skal du bruge (adafruit_NeoPixel-master), jeg har også linket download.

for at installere master, åbn dit arduino -program

1. gå til skitse

2. åben inkluderer bibliotek

3. klik (add.zip -bibliotek)

4. vælg filen (adafruit_NeoPixel-master), og du er færdig

under dette har jeg indsat koden til spillet.

#omfatte

#omfatte

lange ballXabs = 12;

lang boldYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int ballvelY = 1;

int indeks;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - padlebredde + 1;

int knobseg = 1023 / (paddlemax);

int padle1 = 4;

int paddle2 = 4;

#define NUMPIXELS 260

#definer PIN 6

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

ugyldig opsætning () {

pixels.begin ();

Serial.begin (9600);

}

void loop () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pixels.show ();

detectCollision ();

forsinkelse (fps);

}

void clearScreen () {

for (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 (paddle1);

hvis (ballvelX> 0 && ballXabs> = 25) {// kolliderer højre væg

Serial.println ("CollisionX");

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

}

hvis (ballvelX <0 && ballXabs <= 0) {// kolliderer venstre væg

Serial.println ("CollisionX");

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

}

hvis (ballvelY> 0 && ballYabs> = 9) {// kolliderer øverste væg

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

}

hvis (ballvelY <0 && ballYabs <= 0) {// kolliderer nederste væg

Serial.println ("CollisionY");

ballvelY *= -1;

}

// registrer kollision mellem skovl 2

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

{// kolliderer højre væg

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// opdag skov 1 kollision

hvis ((ballvelX = paddle1) && (ballYabs <= paddle1 + paddlewidth - 1)))

{// kolliderer højre væg

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

void updatePaddle1 () {

int -knap = analogRead (A0);

padle1 = rund ((lang) knop / (lang) knobseg);

}

void updatePaddle2 () {

int knob2 = analogRead (A1);

paddle2 = rund ((lang) knop2 / (lang) knobseg);

}

void displayBall () {

ballX = rund (ballXabs);

boldY = rund (ballYabs);

hvis (ballX % 2! = 0) {

indeks = (9 - kugleY) + 10 * kugleX;

hvis (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // venstre side af boldfarve

}

hvis (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // højre side af boldens farve

}

hvis (ballY! = 9) {pixels.setPixelColor (index - 1, pixels. Color (30, 0, 0)); // nederste sider af kuglens farve

}

hvis (ballY! = 0) {pixels.setPixelColor (index + 1, pixels. Color (30, 0, 0)); // oversiden af kuglens farve

}

}

andet {

indeks = kugleY + 10 * kugleX; hvis (ballX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // venstre side af bolden jævn række

}

hvis (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // højre side af bolden jævn række

}

hvis (ballY! = 9) {

pixels.setPixelColor (indeks + 1, pixels. Color (30, 0, 0)); // nederste sider af bolden jævn række

}

hvis (ballY! = 0) {pixels.setPixelColor (index - 1, pixels. Color (30, 0, 0)); // oversiden af bolden jævn række

}

}

pixels.setPixelColor (indeks, pixels. Color (255, 0, 0)); /// midten af boldens farve

}

void displayPaddle1 () {

for (int i = 0; i <paddlewidth; i ++) {pixels.setPixelColor (paddle1+i, pixels. Color (0, 0, 255));

}

}

void displayPaddle2 () {

for (int i = 0; i <paddlewidth; i ++) {pixels.setPixelColor (NUMPIXELS - 1 - paddle2 - i, pixels. Color (0, 0, 255));

}

}

ugyldig score1 () {

resetBall (0);

}

ugyldig score2 () {

resetBall (1);

}

void resetBall (int player) {

forsinkelse (1000);

ballXabs = 12

; boldYabs = 4;

ballvelX = spiller? 1: -1;

ballvelY = 1;

clearScreen ();

forsinkelse (1000);

displayBall ();

pixels.show ();

forsinkelse (1000);

displayPaddle1 ();

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

Trin 7: Afslutning

Efterbehandling
Efterbehandling

Når du har uploadet koden, skal du bore et hul i bagpanelet, der er stort nok til din tønde -jack -strømadapter. tilslut den til arduinoen og saml til sidst bagsiden igen.

Jeg inkluderede også LED -diffusoren akryl på delelisten, du kan nu placere den over lysdioderne og lime den fast

Når du har gjort dette, er du klar til at spille og nyde timerne med konkurrencedygtige spil mod familie og venner.

Til sidst vil jeg gerne lykønske dig med gennemførelsen af projektet.

Hvis du har problemer, kontakt mig her, og jeg vil meget gerne hjælpe med at løse problemet.

Anbefalede: