INHOUDSOPGAWE:

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

Video: LED Strip Atari Pong Arcade Machine: 8 stappe

Video: LED Strip Atari Pong Arcade Machine: 8 stappe
Video: MSC Seascape Full Ship Tour Tips Tricks & Review New Flagship Vista Megaship Project Italy 2024, November
Anonim
LED Strip Atari Pong Arcade Machine
LED Strip Atari Pong Arcade Machine

My naam is Gabriel Podevin en dit is my heel eerste intructable. Ek is tans 'n 16 -jarige hoërskoolleerling wat baie daarvan hou om dinge te skep en te bou, terwyl ek baie geïnteresseerd is in elektronika, robotika, stroombane en programmering. Ek hoop dat u hierdie onverbeterlike hulp kan vind.

In hierdie instruksies sal ek jou wys hoe om 'n Atari Pong -spel in retro styl te maak in 'n retro -arcade -boks. U kan die video hierbo sien vir 'n demonstrasie van die projek; u kan ook die voltooide projek en die saak alleen en op die twee foto's sien. Aan die einde van hierdie onveranderlike, sal ek dieper in die kode duik en hoe ek dit kan wysig om dit te personaliseer.

Die lys met basiese onderdele word verdeel in die afdelings: gereedskap, monteeronderdele en komponente

Die gereedskap wat u benodig, sal die volgende insluit:

- Boor

- Soldeerbout

- Skroewedraaier (pas by die skroewe wat u besluit om te gebruik)

- Multi meter

- sirkulerende saag, bandzaag of lasersnyer, het u toegang tot een

-Draadsnyer of skêr

- Gomgeweer

Onderdele wat u benodig vir montering, sal insluit

- Houtgom

- 10 een by een duim blokke hout

- 'n groot vel kwartduim -hout of keuse hout

- 24 skroewe half duim lank

- 14 x 6,5 duim LED -diffuserende plastiek (opsioneel)

- rooi en blou elektriese band

Die komponente wat u benodig, is:

- 2 100k ohm potensiometers

- 8 meter Led -strook wat individueel aangespreek kan word (30 leds per meter)

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

- 'n paar meter draad of verskeie draadkleure

- wisselstroomadapter wat 6v deur 'n vat -aansluiting lewer

- 1 arduino Uno R3

As u nie toegang tot 'n Arduino Uno R3 soos ek het nie, kan u een bou soos ek in hierdie projek gebruik, met 'n atmel328-pu-verwerker. Volg hierdie skakel om te leer hoe u u eie https://www.instructables.com/id/How-to-make-your-own-Arduino-board/ kan bou

As u 'n arduino -uno gebruik, gaan dan verder met stap een.

Stap 1: Bou die LED -skikking

Bou die LED Array
Bou die LED Array
Bou die LED Array
Bou die LED Array
Bou die LED Array
Bou die LED Array

Hierdie stap is die eenvoudigste tydrowende stap as gevolg van al die soldeer wat u moet doen.

-Om te begin, benodig u 'n stuk hout van 10 3/4 duim by 6 1/2 duim.

-As jy jou stuk hout het, gryp jou Led -strook en sny 26 segmente elke 10 LED's of elke 6 1/2 duim.

-plak die segmente nadat u die segmente gesny het, vertikaal vas aan u hout, soos getoon in die volgende foto's in die eerste prent hierbo.

-sodra u die stroke vasgeplak het en toegelaat het dat hulle gaan lê, begin ons soldeer.

-Jy benodig drie draadjies van verskillende kleure

-dit moet bedraad wees met alle positiewe aspekte wat aan een draad gekoppel is, en alle negatiewe verbindings aan een draad, terwyl die laaste draad die LED -stroke bymekaar sal maak. Die tweede prentjies aan die begin van hierdie stap is 'n diagram wat jou sal wys hoe om die drade aan te sluit.

Uiteindelik, nadat u dit gesoldeer het, draai u eenvoudig 'n strook elektrisiteit op u soldeeraansluitings met die ooreenstemmende kleure. soos in die derde prent hierbo getoon.

-uiteindelik maak ons verbinding met die Arduino. u digitale invoer of u middelste draad sal met u 6 -pins digitale ingang verbind word, en u positiewe en positiewe aansluiting op die positiewe en negatiewe relings op die bord.

Stap 2: Die paddle -kontroles

Die paddle -kontroles
Die paddle -kontroles
Die paddle -kontroles
Die paddle -kontroles
Die paddle -kontroles
Die paddle -kontroles

Vir hierdie baie eenvoudige stap hoef u slegs drie drade aan elke potensiometer te soldeer. as u die potensiometer met die soldeerpunte van u af weghou, sal die linkerpunt positief wees, en die middelste punt word afgegee en die regterpunt word gemaal. soos in die diagram hierbo getoon

sodra u die drade gesoldeer het, verbind ons dit met die Arduino. jy possitief en negatief sal aansluit by die ooreenstemmende positiewe en negatiewe reën. u uitvoer drade op die potensiometers sal aansluit by verskillende insette op die arduino. een sal aan die (A0) -prop koppel en die ander aan die (A1) -prop.

Stap 3: Sny die kas

Die saak afsny
Die saak afsny
Die saak afsny
Die saak afsny
Die saak afsny
Die saak afsny
Die saak afsny
Die saak afsny

hierdie deel gee u die afmetings en hoeke van wat u moet sny

**** baie belangrik ***** maak seker dat jou hout 'n kwart duim dik is

onthou ook om u onderdele by die sny van dele uit te sny

die basiese deel wat gesny moet word, word onder, agter, bo, bo, voorkant, onderkant gemerk … aan die begin op die foto's getoon

deel afmetings

- Onderkant: 13 3/4 duim X 10 1/4 duim

- Agter: 13 3/4 duim X 15 1/2 duim

- Bo: 13 3/4 duim X 6 1/2 duim

- Voorkant onder: 13 3/4 duim X 4 1/4 duim

- Skakelpaneel: 13 3/4 duim x 6 duim

- Binne -bokant: 13 3/4 duim X 3 1/4 duim

- LED -sylyn: 6 1/4 duim x 1 duim (sny twee hiervan)

- LED Binne -onderkant: 13 1/4 duim X 4 1/2 duim

- LED -paneel aan die binnekant: 13 1/4 duim x 9 duim

- Blokke: 1 duim x 1 duim x 1 duim (sny 10 blokke)

- Akriel paneel: 13 3/4 duim X 6 1/2 duim

Die foto's hierbo wys die hoeke en afmetings van die sypaneel. ook moet u twee van hierdie deel sny

Stap 4: Saakmontage

Saakmontage
Saakmontage
Saakmontage
Saakmontage
Saakmontage
Saakmontage

Teen hierdie tyd in hierdie instruksies het u die hele ding amper voltooi. stel u waarskynlik voor dat ek al hierdie dele en uitknipsels het, wat moet ek daarmee doen? Hierdie laaste stap sal u leer hoe u u saak moet saamstel.

-Die eerste ding waarna ons gaan, is om die saak te begin saamstel. dit is waar al u houtsnitte uit die vorige stap handig te pas kom.

-Om die montering te begin, benodig ons 4 van die 1x1x1 blokke hout, die basis, die twee sypanele, die agterkant en die voorkant. Plaas die 4 blokke op elke hoek van die onderkant en laat 'n kwart duim tussen die rand en die blok, soos in die tweede prentjie getoon tydens die bedeling van die trap.

Hierna moet u 'n paar gate in die hout en die blokke boor. sodra u die skroef gedoen het, dan na die onderkant.

-Volgens gaan ons die sypanele opsit. Plaas die panele op die kwart duim gaping aan die buitekant van die blok. boor 'n proefgat deur die sypaneel en die houtblok en skroef die panele in. Herhaal vir die ander kant.

-Na voltooiing van die sypanele. ons sit die voorste onderpaneel aan. plaas die paneel gelyk met die onderkant en die kante boor die proefgate in die blokke en skroef die paneel vas.

-Uiteindelik sal ons die rug aantrek. Doen dieselfde as met die voorste onderpaneel en skroef dit weer vas.

-Op hierdie punt het u 'n grondslag waarop u kan bou en 'n begrip van hoe ons hierdie saak saamstel.

-Die volgende deel is 'n bietjie meer uitdagend omdat u met 'n kleiner gebied werk. Om mee te begin, benodig ons al die boonste dele en 6 blokke.

-Lê wat u tot dusver gebou het op die agterkant en plaas die blokke in die hoeke 'n kwart duim van bo. (soos getoon in die derde prentjie aan die begin)

-boor die stuurgate vir die sye en agterkant en skroef dit vas.

-nou sal ons die res van die bokant bymekaarmaak

Neem u boonste paneel en plaas dit op die blokke. Boor die proefgate en skroef die bokant in. Nadat u die Finse onderstebo omgekeer het *** versigtig *** en plaas 'n blok in elke hoek parallel met die rand. boor stuurgate van die sypanele af en skroef dit aan die blok vas. draai die kas regop en boor loodgaatjies deur die bokant in die blokke en skroef dit vas.

-Die nesgedeelte is 'n bietjie lastig. u het u voorste paneel en u laaste twee blokke nodig. boor eers 'n proefgate in die vorige blokke deur u boonste voorpaneel en skroef dit vas. Neem nou die laaste twee blokke en plaas dit binne -in die hoek en skroef u sypaneel en u voorste paneel aan die blokke. draai die kas weer onderstebo en plaas die binneste boonste paneel op die blok en skroef dit vas.

U moet iets soos hierdie agterlaat (op die eerste foto van hierdie stap getoon)

die volgende stap sal die res van die vergadering verduidelik.

Stap 5: Voltooi die samestelling

Die vergadering voltooi
Die vergadering voltooi
Die vergadering voltooi
Die vergadering voltooi
Die vergadering voltooi
Die vergadering voltooi

Teen hierdie tyd het u die saak en die bou amper voltooi, maar u sal klaar wees.

Nou is alles wat oorgebly het, die installering van die elektronika.

Ons begin deur gate in u skakelbord te boor vir u potensiometer. boor gerus die gate waar u voel dat dit gemaklik sou wees. In my geval het ek die gate 2 1/2 duim van die onderkant en 3 1/2 duim van die kant af vir beide potensiometers geplaas.

-Sodra u u gate geboor het, plaas ons hierdie paneel op die kas. maar in plaas daarvan om dit vas te maak, plak ons dit vas, maar plaas 'n groot hoeveelheid gom langs die rand van die omhulsel en plaas die paneel vas en hou dit vas met 'n paar klampe of iets swaar.

-Nadat die gom droog is, plaas ons die elektroniese onderdele. Maar eers moet ons die agterpaneel verwyder.

-As die agterkant af is, beveel ek aan dat u die omhulsel aan die voorkant plaas, sodat dit makliker is om die LED's en ander komponente binne te sit.

-Noudat u die agterkant af het, plaas ons die potensiometer in die omhulsel deur dit eenvoudig deur die gate te steek wat ons pas geboor het en 'n groot hoeveelheid warm gom te plaas.

*** versigtig ***-Wees uiters versigtig wanneer u die LED-skikking insit, want die soldeerpunte kan broos wees.

-Nou het ons die belangrikste deel bereik deur die LED -skikking in te voer. plaas die bord eenvoudig soos aangedui in die tweede prentjie.

-Set eers die led -binnepaneel in en plaas dit in die omhulsel direk onder die agterpaneel van die LED -skikking. hierdie stuk kan my goed pas. laat dit ook droog word voordat u verder gaan.

-Jy het die laaste deel bereik. Ek beveel aan dat u die een kant van hierdie laaste deel (LED -agterkant) swart of wit skilder vir 'n kontras tussen die LED's en hierdie deel.

-Ons weet dit, plaas dit direk agter die LED -agterkant en druk liggies teen die agterkant van die LED's om te keer dat dit beweeg. Plaas gom langs die rand om te verhoed dat dit beweeg. in die derde prentjie getoon.

**** baie geluk dat jy die hele vergadering voltooi het !!!

gaan voort met die laaste stap om die spel te kodeer

Stap 6: Die kode

Nogmaals baie geluk met die tot dusver bereik.

In hierdie afdeling wys ek u die kode en hoe u dit kan laat werk, benewens die dinge in die kode wat u kan verander en dit kan aanpas.

maar voordat ons daaroor begin, het u die (adafruit_NeoPixel-master) nodig, ek het ook die aflaai gekoppel.

maak die arduino -program oop om die meester te installeer

1. gaan skets

2. oop sluit biblioteek in

3. klik (add.zip biblioteek)

4. kies die (adafruit_NeoPixel-master) lêer en u is klaar

Hieronder het ek die kode vir die spel geplak.

#insluit

#insluit

lang balXabs = 12;

lang bal Yabs = 4;

int ballX;

int balY;

int ballvelX = 1;

int ballvelY = 1;

int indeks;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - paddlewidth + 1;

int knobseg = 1023 / (paddlemax);

int paddle1 = 4;

int paddle2 = 4;

#definieer NUMPIXELS 260

#definieer PIN 6

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

ongeldige opstelling () {

pixels.begin ();

Serial.begin (9600);

}

leemte -lus () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pixels.show ();

detectCollision ();

vertraging (fps);

}

leegte clearScreen () {

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

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

}

}

ongeldig updateBall () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

leemte detectCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (paddle1);

if (ballvelX> 0 && ballXabs> = 25) {// bots regtermuur

Serial.println ("CollisionX");

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

}

if (ballvelX <0 && ballXabs <= 0) {// bots linkermuur

Serial.println ("CollisionX");

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

}

if (ballvelY> 0 && ballYabs> = 9) {// bots die boonste muur

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

}

if (ballvelY <0 && ballYabs <= 0) {// bots ondermuur

Serial.println ("CollisionY");

balvelY *= -1;

}

// bespeur paddle 2 botsing

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

{// bots regter muur

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// bespeur paddle 1 botsing

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

{// bots regter muur

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

ongeldig updatePaddle1 () {

int knop = analogRead (A0);

paddle1 = ronde ((lang) knop / (lang) knop);

}

ongeldig updatePaddle2 () {

int knop2 = analogRead (A1);

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

}

leegte displayBall () {

ballX = rond (ballXabs);

balY = rond (ballYabs);

as (ballX % 2! = 0) {

indeks = (9 - balY) + 10 * balX;

as (ballX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // linkerkant van balverf

}

as (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // regterkant van bal kleur

}

as (ballY! = 9) {pixels.setPixelColor (indeks - 1, pixels. Color (30, 0, 0)); // onderkant van bal kleur

}

as (ballY! = 0) {pixels.setPixelColor (indeks + 1, pixels. Color (30, 0, 0)); // boonste sye van die bal kleur

}

}

anders {

indeks = balY + 10 * balX; as (ballX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // linkerkant van bal ewe ry

}

as (ballX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // regterkant van bal eweredig ry

}

as (balY! = 9) {

pixels.setPixelColor (indeks + 1, pixels. Color (30, 0, 0)); // onderkant van bal eweredig ry

}

as (ballY! = 0) {pixels.setPixelColor (indeks - 1, pixels. Color (30, 0, 0)); // boonste kante van bal eweredig

}

}

pixels.setPixelColor (indeks, pixels. Color (255, 0, 0)); /// middelpunt van bal kleur

}

leegte displayPaddle1 () {

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

}

}

leegte displayPaddle2 () {

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

}

}

nietige telling 1 () {

resetBall (0);

}

leegte telling2 () {

resetBall (1);

}

void resetBall (int player) {

vertraging (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = speler? 1: -1;

balvelY = 1;

clearScreen ();

vertraging (1000);

displayBall ();

pixels.show ();

vertraging (1000);

displayPaddle1 ();

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

Stap 7: Afwerking

Afwerking
Afwerking

As u die kode opgelaai het, boor u 'n gat in die agterpaneel wat groot genoeg is vir u kragadapter. steek dit in die arduino en maak uiteindelik die agterkant weer aanmekaar.

Ek het ook die LED -diffuser -akriel op die onderdele ingesluit, wat u nou op die LED's kan plaas en dit kan plak

Nadat u dit gedoen het, is u gereed om te speel en te geniet van die ure se kompeterende speletjies teen familie en vriende.

Laastens wil ek u gelukwens met die voltooiing van die projek.

As u probleme ondervind, kontak my hier en ek help u graag om die probleem op te los.

Aanbeveel: