Inhoudsopgave:

LED Strip Atari Pong Arcade Machine - Ajarnpa
LED Strip Atari Pong Arcade Machine - Ajarnpa

Video: LED Strip Atari Pong Arcade Machine - Ajarnpa

Video: LED Strip Atari Pong Arcade Machine - Ajarnpa
Video: Pong 1D - LED game 2024, Juli-
Anonim
LED-strip Atari Pong Arcade-machine
LED-strip Atari Pong Arcade-machine

Mijn naam is Gabriel Podevin en dit is mijn allereerste intructable. Ik ben momenteel een 16-jarige middelbare scholier die dol is op het maken en bouwen van dingen, terwijl ik erg geïnteresseerd ben in elektronica, robotica, circuits en programmeren. Ik hoop dat je dit intructable kunt vinden, dit nuttig vindt.

In deze instructable laat ik je zien hoe je een retro-stijl Atari Pong-spel maakt in een retro-arcadekast. Je kunt de bovenstaande video zien voor een demo van het project, je kunt ook het voltooide project en de case alleen en op de twee foto's zien. Aan het einde van deze intructable zal ik dieper in de code duiken en hoe deze te bewerken om deze te personaliseren.

De lijst met basisonderdelen wordt onderverdeeld in de secties: Gereedschappen, montageonderdelen en componenten

De tools die je nodig hebt, zijn onder meer:

- Oefening

- Soldeerbout

- Schroevendraaier (passend bij de schroeven die u besluit te gebruiken)

- Multimeter

- cirkelzaag, lintzaag of lasersnijder als je er een hebt

- Draadknipper of schaar

- Lijmpistool

Onderdelen die je nodig hebt voor de montage zijn:

- Houtlijm

-10 één inch bij één inch blokken hout

-groot vel kwart inch multiplex of hout naar keuze

- 24 schroeven van een halve inch lang

- 14 x 6.5 inch led-diffuus plastic (optioneel)

- rode en blauwe elektrische tape

De componenten die je nodig hebt zijn:

- 2 100k ohm potentiometers

- 8 meter individueel adresseerbare ledstrip (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-

- meerdere meters draad of meerdere kleuren draad

- wisselstroom naar gelijkstroom adapter die 6v levert via een barrel jack plug

- 1 arduino Uno R3

als je geen toegang hebt tot een Arduino Uno R3 zoals ik, kun je er een bouwen zoals degene die ik in dit project zal gebruiken, die een atmel328-pu-processor gebruikt. Volg deze link om te leren hoe u uw eigen https://www.instructables.com/id/How-to-make-your-own-Arduino-board/ kunt bouwen

Als u een arduino uno gebruikt, gaat u verder met stap één.

Stap 1: De LED-array bouwen

De LED-array bouwen
De LED-array bouwen
De LED-array bouwen
De LED-array bouwen
De LED-array bouwen
De LED-array bouwen

Deze stap is de eenvoudigste tijdrovende stap vanwege al het soldeerwerk dat u moet doen.

-om te beginnen heb je een stuk hout van 10 3/4 inch bij 6 1/2 inch nodig.

- zodra je je stuk hout hebt, pak je je ledstrip en knip je 26 segmenten om de 10 led's of elke 6 1/2 inch.

-lijm ze na het snijden van de segmenten verticaal op uw hout, zoals weergegeven in de volgende afbeeldingen in de eerste afbeelding hierboven.

- zodra je de strips hebt gelijmd en hebt laten bezinken, beginnen we met solderen.

-je hebt drie verschillende kleuren draad nodig

-het moet worden bedraad met alle positieven die zijn aangesloten op één draad en alle negatieven op één draad, terwijl de laatste draad de ledstrips aan elkaar zal klemmen. De tweede afbeeldingen aan het begin van deze stap is een diagram dat u laat zien hoe u de draden moet aansluiten.

-Ten slotte, nadat je ze hebt gesoldeerd, wikkel je eenvoudig een strook elektrisch op je soldeerverbindingen met de bijbehorende kleuren. zoals op de derde foto hierboven.

- ten slotte zullen we verbinding maken met de Arduino. uw digitale ingang of uw middelste draad zal verbinding maken met uw digitale ingang 6-pins en uw grond en positief zullen verbinding maken met de positieve en negatieve rails op het bord.

Stap 2: De peddelbedieningen

De peddelbediening
De peddelbediening
De peddelbediening
De peddelbediening
De peddelbediening
De peddelbediening

Voor deze zeer eenvoudige stap hoeft u alleen maar drie draden aan elke potentiometer te solderen. als je de potentiometer vasthoudt met de soldeerpunten van je af gericht, is de linkertand positief, de middelste pin wordt uitgevoerd en de rechtertand wordt geaard. zoals weergegeven in het bovenstaande diagram:

zodra je de draden hebt gesoldeerd, verbinden we ze met de Arduino. je positieve en negatieven zullen verbinding maken met hun corresponderende positieve en negatieve regens. je uitgangsdraden op de potentiometers zullen verbinding maken met verschillende ingangen op de arduino. de ene zal worden aangesloten op de (A0)-stekker en de andere zal worden aangesloten op de (A1)-stekker.

Stap 3: De zaak snijden

De zaak doorsnijden
De zaak doorsnijden
De zaak doorsnijden
De zaak doorsnijden
De zaak doorsnijden
De zaak doorsnijden
De zaak doorsnijden
De zaak doorsnijden

dit onderdeel geeft je de afmetingen en hoeken van wat je moet snijden

****zeer belangrijk***** zorg ervoor dat uw hout een kwart inch dik is (1/4 inch)

ook als u onderdelen uitsnijdt, vergeet dan niet uw onderdelen te labelen

het basisdeel dat moet worden gesneden, wordt gelabeld onder, achter, boven, voor boven, voor onder …. getoond in de foto's aan het begin

onderdeel afmetingen

- Bodem: 13 3/4 inch X 10 1/4 inch

- Achterkant: 13 3/4 inch X 15 1/2 inch

-Bovenkant: 13 3/4 inch X 6 1/2 inch

- Voorkant onderkant: 13 3/4 inch X 4 1/4 inch

- Kiespaneel: 13 3/4 inch X 6 inch

- Binnenste bovenkant: 13 3/4 inch X 3 1/4 inch

- LED gevelbeplating: 6 1/4 inch X 1 inch (knip er twee van)

- LED binnenbodem: 13 1/4 inch X 4 1/2 inch

- LED-paneel aan de achterkant: 13 1/4 inch X 9 inch

- Blokken: 1 inch X 1 inch X 1 inch (snijd 10 blokken)

- Acrylpaneel: 13 3/4 inch X 6 1/2 inch

De afbeeldingen hierboven tonen u de hoeken en afmetingen van het zijpaneelgedeelte. ook moet je twee van dit deel knippen

Stap 4: Montage van de behuizing

Behuizing
Behuizing
Behuizing
Behuizing
Behuizing
Behuizing

Op dit punt in deze instructies bent u bijna klaar met het hele ding. zet je waarschijnlijk denken ik heb al deze onderdelen en uitsparingen wat moet ik ermee doen. In deze laatste stap wordt uitgelegd hoe u uw koffer in elkaar zet.

-Het eerste wat we gaan doen is beginnen met het monteren van de koffer. dit is waar al je houtuitsparingen uit de vorige stap van pas komen.

-Om met de montage te beginnen, hebben we 4 van de 1x1x1 blokken hout nodig, de basis, de twee zijpanelen, de achterkant en de voorkant. plaats de 4 blokken op elke hoek van de bodem en laat een kwart inch tussen de rand en het blok zoals weergegeven in de tweede foto aan het begin van de trede.

-Vervolgens moet je een aantal geleidegaten boren door het hout en de blokken. als je eenmaal die schroef hebt gedaan dan naar beneden.

-Vervolgens gaan we de zijpanelen aanbrengen. Plaats de panelen op de kwart inch opening aan de buitenzijde van het blok. boor een geleidegat door het zijpaneel en het houten blok en schroef de panelen erin. herhaal voor de andere kant.

-Na het voltooien van de zijpanelen. we zullen het voorste onderste paneel plaatsen. plaats het paneel gelijk met de bodem en de zijkanten boor de geleidegaten in de blokken en schroef het paneel vast.

- Eindelijk zullen we de achterkant aantrekken. doe hetzelfde als je deed met het voorste bodempaneel en schroef je er weer in.

-Op dit punt heb je een basis om op voort te bouwen en een begrip over hoe we deze zaak in elkaar zetten.

-Dit volgende deel is een beetje uitdagender omdat je met een kleiner gebied werkt. om te beginnen hebben we alle bovenste delen en 6 blokken nodig.

-Leg wat je tot nu toe hebt gebouwd op zijn rug en plaats de blokken in de hoeken een kwart inch van de bovenkant. (zoals getoond in de derde foto aan het begin)

-boor de geleidegaten voor de zijkanten en achterkant en schroef ze vast.

-nu gaan we de rest van de top monteren

-neem je bovenpaneel en plaats het op de blokken boor de geleidegaten en schroef de bovenkant erin. na je Fins draai je je geheel ondersteboven ***voorzichtig*** en plaats je een blok in elke hoek evenwijdig aan de rand. boor geleidegaten uit de zijpanelen en schroef ze op het blok. draai de behuizing weer rechtop en boor geleidegaten door de bovenkant in de blokken en schroef deze vast.

- dit nestgedeelte is een beetje lastig. je hebt je voorste bovenpaneel en je laatste twee blokken nodig. boor eerst een geleidingsgat in de vorige blokken door je bovenste voorpaneel en schroef die erin. neem nu je laatste twee blokken en plaats ze binnen in de hoek en schroef je zijpaneel en je voorste bovenpaneel aan de blokken. draai de behuizing nogmaals ondersteboven en plaats het binnenste bovenpaneel op het blok en schroef het vast.

-je zou iets als dit moeten hebben (getoond in de eerste afbeelding van deze stap)

de volgende stap zal de rest van de montage uitleggen.

Stap 5: Afwerking van de montage

Afwerking van de montage
Afwerking van de montage
Afwerking van de montage
Afwerking van de montage
Afwerking van de montage
Afwerking van de montage

Op dit punt heb je de case bijna voltooid en de build nog maar een paar dingen om op hun plaats te zetten en je bent klaar.

Nu rest alleen nog het installeren van de elektronica.

-We beginnen met het boren van gaten in uw wijzerplaat voor uw potentiometer. voel je vrij om de gaten te boren waar je denkt dat het comfortabel zou zijn. in mijn geval heb ik de gaten 2 1/2 inch van de bodem en 3 1/2 inch van de zijkant voor beide potentiometers geplaatst.

-Zodra u uw gaten hebt geboord, plaatsen we dit paneel op de behuizing. maar in plaats van het vast te schroeven, lijmen we het gewoon een ruime hoeveelheid lijm langs de rand van de kast en plaats het paneel erop en houd het vast met wat klemmen of iets zwaars.

- Nadat de lijm is opgedroogd, gaan we de elektronische onderdelen plaatsen. Maar eerst zullen we het achterpaneel moeten verwijderen.

-Zodra de achterkant eraf is, raad ik aan om de voorkant van de behuizing naar beneden te plaatsen, waardoor het gemakkelijker wordt om de LED's en andere componenten erin te plaatsen.

-Nu je de achterkant hebt verwijderd, plaatsen we de potentiometer in de behuizing door ze eenvoudig door de gaten te steken die we zojuist hebben geboord en een royale hoeveelheid hete lijm aan te brengen.

***Let op***-Wees uiterst voorzichtig bij het plaatsen van de LED-array, omdat de soldeerpunten kwetsbaar kunnen zijn.

-Nu hebben we het belangrijkste deel bereikt, het plaatsen van de led-array. plaats het bord gewoon zoals weergegeven in de tweede afbeelding.

-Als je eenmaal binnen bent, pak je je led-binnenpaneel en plaats je het in de behuizing direct onder het achterpaneel van de LED-array. dit stuk zou mij een strakke pasvorm. laat het ook drogen voordat u verder gaat.

-Je hebt het laatste deel bereikt. ik raad aan om een kant van dit laatste deel (LED Inner Back) zwart of wit te schilderen voor een contrast tussen de LED's en dit deel.

-We zullen weten dat we dit direct achter de LED-achterkant plaatsen en lichtjes tegen de achterkant van de LED's drukken om te voorkomen dat ze bewegen. eenmaal ingebracht, breng lijm aan langs de rand om te voorkomen dat deze beweegt. weergegeven op de derde foto.

****proficiat dat je de hele montage hebt voltooid !!!

ga verder naar de laatste stap om het spel te coderen

Stap 6: De code

Nogmaals gefeliciteerd dat je zo ver bent gekomen.

in deze sectie zal ik u de code laten zien en hoe u deze kunt laten werken, naast dingen in de code die u kunt wijzigen en personaliseren.

maar voordat we daarop ingaan, heb je de (adafruit_NeoPixel-master) nodig die ik ook aan de download heb gekoppeld.

om de master te installeren, open je je arduino-programma

1. ga naar schets

2. open inclusief bibliotheek

3. klik op (add.zip-bibliotheek)

4.selecteer het (adafruit_NeoPixel-master) bestand en je bent klaar

hieronder heb ik de code voor het spel geplakt.

#erbij betrekken

#erbij betrekken

lange balXabs = 12;

lange balYabs = 4;

int ballX;

int balY;

int balvelX = 1;

int balvelY = 1;

int-index;

int fps = 50;

int peddelbreedte = 3;

int peddelmax = 9 - peddelbreedte + 1;

int knobseg = 1023 / (paddlemax);

int peddel1 = 4;

int peddel2 = 4;

#define NUMPIXELS 260

#definieer pincode 6

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

ongeldige setup() {

pixels.begin();

Serieel.begin(9600);

}

lege lus() {

leeg scherm();

updateBall();

updatePaddle1();

updatePaddle2();

displayBall();

displayPaddle1();

displayPaddle2();

pixels.show();

detectCollision();

vertraging (fps);

}

leegte clearScreen() {

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

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

}

}

ongeldig updateBall() {

ballXabs += ballvelX;

ballYabs += balvelY;

}

void detectCollision() {

Serial.print(ballYabs);

Serieel.print(" ");

Serial.println(paddle1);

if (ballvelX > 0 && ballXabs >= 25) {//botsing rechter muur

Serial.println("CollisionX");

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

}

if (ballvelX <0 && ballXabs <= 0) {//botsing linker muur

Serial.println("CollisionX");

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

}

if (ballvelY> 0 && ballYabs>= 9) {//botsen bovenmuur

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

}

if (ballvelY <0 && ballYabs <= 0) {//botsen onderwand

Serial.println("CollisionY");

balvelY *= -1;

}

// detecteren peddel 2 botsing

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

{ // tegen de rechtermuur botsen

Serial.println("CollisionPaddle");

balvelX *= -1;

}

// detectie peddel 1 botsing

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

{ // tegen de rechtermuur botsen

Serial.println("CollisionPaddle");

balvelX *= -1;

}

}

ongeldig updatePaddle1() {

int-knop = analoog lezen (A0);

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

}

ongeldig updatePaddle2() {

int knop2 = analoog lezen (A1);

paddle2 = ronde ((lange) knop2 / (lange) knopeg);

}

void displayBall() {

ballX = rond (ballXabs);

ballY = rond (ballYabs);

if (ballX % 2 != 0) {

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

if (ballX != 0) {

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

}

if (ballX != 25) { pixels.setPixelColor(ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // rechterkant van balkleur

}

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

}

if (ballY != 0) { pixels.setPixelColor (index + 1, pixels. Color (30, 0, 0)); // bovenzijden van balkleur

}

}

anders {

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

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

}

if (ballX != 25) {

pixels.setPixelColor((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // rechterkant van bal even rij

}

if (balY != 9) {

pixels.setPixelColor (index + 1, pixels. Color (30, 0, 0)); // onderkant van de bal even rij

}

if (ballY! = 0) { pixels.setPixelColor (index - 1, pixels. Color (30, 0, 0)); // bovenzijden van bal even rij

}

}

pixels.setPixelColor(index, pixels. Color(255, 0, 0)); ///centrum van balkleur

}

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

}

}

ongeldige score1() {

resetBall (0);

}

ongeldige score2() {

resetBal(1);

}

ongeldig resetBall (int speler) {

vertraging (1000);

balXabs = 12

; balYabs = 4;

ballvelX = speler ? 1: -1;

balvelY = 1;

leeg scherm();

vertraging (1000);

displayBall();

pixels.show();

vertraging (1000);

displayPaddle1();

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

Stap 7: Afwerking

Afwerking
Afwerking

Nadat je de code hebt geüpload, boor je een gat in het achterpaneel dat groot genoeg is voor je barrel jack-stroomadapter. steek hem in de arduino en monteer tenslotte de achterkant.

Ik heb ook op de onderdelenlijst de LED-diffusor acryl toegevoegd, je kunt die nu over de LED's plaatsen en vastlijmen

Nadat je dit hebt gedaan, ben je klaar om te spelen en te genieten van urenlange competitieve games tegen familie en vrienden.

Als laatste wil ik u feliciteren met het voltooien van het project.

Als je problemen hebt, neem dan hier contact met me op en ik help je graag om het probleem op te lossen.

Aanbevolen: