Talaan ng mga Nilalaman:

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

Video: LED Strip Atari Pong Arcade Machine: 8 Hakbang

Video: LED Strip Atari Pong Arcade Machine: 8 Hakbang
Video: Atari Pong Table At CES 2019 - Las Vegas 2019, January 8 2024, Hulyo
Anonim
LED Strip Atari Pong Arcade Machine
LED Strip Atari Pong Arcade Machine

Ang pangalan ko ay Gabriel Podevin at ito ang aking kauna-unahan na hindi maipasok. Kasalukuyan akong isang 16 na taong mag-aaral sa hayskul na gustung-gusto ang paglikha at pagbuo ng mga bagay habang interesado ako sa electronics, robotics, circuitry, at programa. Inaasahan kong mahahanap mo ito na hindi maipapasok na kapaki-pakinabang.

Sa itinuturo na ito ay ipapakita ko sa iyo kung paano gumawa ng isang naka-istilong istilong Atari Pong Game sa loob ng isang kaso ng retro arcade. Maaari mong makita ang nasa itaas na video para sa isang demo ng proyekto, maaari mo ring makita ang natapos na proyekto at ang kaso na nag-iisa at sa dalawang larawan. Sa pagtatapos ng ito ay hindi maipasok ako ay diving mas malalim sa code at kung paano i-edit ito upang isapersonal ito.

Ang pangunahing listahan ng bahagi ay hahatiin sa mga seksyon: Mga tool, bahagi ng pagpupulong at mga bahagi

Ang mga tool na kakailanganin mo ay isasama ang mga sumusunod:

- Mag-drill

- Panghinang

- Screw driver (na tumutugma sa mga turnilyo na napagpasyahan mong gamitin)

- Multi Meter

- Paikot na lagari, lagari ng banda, o pamutol ng laser ay may access ka sa isa

-Wire cutter o gunting

- Pandikit baril

Ang mga bahagi na kakailanganin mo para sa pagpupulong ay isasama

- Pandikit ng kahoy

- 10 isang pulgada ng isang pulgada na mga bloke ng kahoy

- Malaking sheet ng quarter inch ply na kahoy o kahoy na pinili

- 24 na turnilyo na kalahating pulgada ang haba

- 14 x 6.5 pulgada ng led diffusing plastic (opsyonal)

- pula at asul na electrical tape

Ang mga sangkap na kakailanganin mo ay:

- 2 100k ohm potentiometers

- 8 metro ng isa-isang address na Led strip (30 leds bawat Meter)

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

- maraming metro ng kawad o maraming kulay ng kawad

- ac to dc power adapter na naglalabas ng 6v sa pamamagitan ng isang plug ng jack jack

- 1 arduino Uno R3

kung wala kang access sa isang Arduino Uno R3 tulad ng aking sarili maaari kang bumuo ng isa tulad ng isang gagamitin ko sa proyektong ito na gumagamit ng isang atmel328-pu processor. Sundin ang link na ito upang malaman kung paano bumuo ng iyong sariling

Kung gumagamit ka ng isang arduino uno magpatuloy sa isang hakbang.

Hakbang 1: Pagbuo ng LED Array

Pagbuo ng LED Array
Pagbuo ng LED Array
Pagbuo ng LED Array
Pagbuo ng LED Array
Pagbuo ng LED Array
Pagbuo ng LED Array

Ang hakbang na ito ay ang pinakasimpleng hakbang sa pag-ubos ng oras dahil sa lahat ng paghihinang na dapat mong gawin.

-upang magsimula kakailanganin mo ang isang 10 3/4 pulgada ng 6 1/2 pulgada na piraso ng kahoy.

-kapag mayroon ka ng iyong piraso ng kahoy, kunin ang iyong Led strip at gupitin ang 26 na segment bawat 10 led o bawat 6 1/2 ng isang pulgada.

-pagkatapos gupitin ang mga segment ay idikit ito sa iyong kahoy patayo tulad ng palabas sa mga sumusunod na larawan na ipinakita sa unang larawan sa itaas.

-kapag nakadikit ka na sa mga piraso at pinapayagan silang tumira magsisimula kaming maghinang.

-kailangan mo ng tatlong magkakaibang kulay na wire

-Dapat itong i-wire sa lahat ng mga positibong pagkonekta sa isang kawad at lahat ng mga negatibong pagkonekta sa isang kawad habang ang huling kawad ay ahas ang mga humantong piraso. Ang pangalawang larawan sa simula ng hakbang na ito ay isang diagram na magpapakita sa iyo kung paano ikonekta ang mga wire.

-Ang panghuli pagkatapos mong ma-solder ang mga ito ibabalot mo lamang ang isang strip ng elektrikal sa iyong mga koneksyon sa solder na may kaukulang mga kulay. tulad ng ipinakita sa pangatlong larawan sa itaas.

-katapos ay makakonekta kami sa Arduino. ang iyong digital input o ang iyong gitnang kawad ay makakonekta sa iyo ng digital input 6 pin at ang iyong lupa at positibo ay kumokonekta sa positibo at negatibong daang-bakal sa board.

Hakbang 2: Ang Mga Pagkontrol ng Paddle

Ang Mga Pagkontrol ng Paddle
Ang Mga Pagkontrol ng Paddle
Ang Mga Pagkontrol ng Paddle
Ang Mga Pagkontrol ng Paddle
Ang Mga Pagkontrol ng Paddle
Ang Mga Pagkontrol ng Paddle

Para sa napakasimpleng hakbang na ito ang kailangan mo lang gawin ay maghinang ng tatlong mga wire sa bawat potensyomiter. kung hinahawakan mo ang potensyomiter na may mga solder point na nakaharap sa iyo ang kaliwang prong ay magiging positibo na ang center prong ay output at ang tamang prong ay babagsak. tulad ng ipinakita sa diagram sa itaas

Kapag na-solder mo na ang mga wire ay ikonekta namin ang mga ito sa Arduino. ka positive at negatives ay kumokonekta doon nararapat na positibo at negatibong pag-ulan. nag-output ka ng mga wire sa potentiometers ay kumokonekta sa iba't ibang mga input sa arduino. ang isa ay kumokonekta sa (A0) plug at ang isa ay kumokonekta sa (A1) plug.

Hakbang 3: Pagputol ng Kaso

Pagputol ng Kaso
Pagputol ng Kaso
Pagputol ng Kaso
Pagputol ng Kaso
Pagputol ng Kaso
Pagputol ng Kaso
Pagputol ng Kaso
Pagputol ng Kaso

ang bahaging ito ay magbibigay sa iyo ng mga sukat at anggulo sa kung ano ang kakailanganin mong i-cut

**** napakahalaga ***** siguraduhin na ang iyong kahoy ay isang isang pulgada ang kapal (1/4 pulgada)

din kapag paggupit ng mga bahagi tandaan na lagyan ng label ang iyong mga bahagi

ang pangunahing bahagi upang i-cut ay may label na ilalim, likod, itaas, harap sa itaas, harap sa ibaba …. ipinakita sa mga larawan sa simula

sukat ng bahagi

- Ibaba: 13 3/4 pulgada X 10 1/4 pulgada

- Balik: 13 3/4 pulgada X 15 1/2 pulgada

- Nangungunang: 13 3/4 pulgada X 6 1/2 pulgada

- Sa harap sa ilalim: 13 3/4 pulgada X 4 1/4 pulgada

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

- Tuktok sa loob: 13 3/4 pulgada X 3 1/4 pulgada

- LED siding: 6 1/4 pulgada X 1 pulgada (gupitin ang dalawa sa mga ito)

- LED Sa ilalim ng ibaba: 13 1/4 pulgada X 4 1/2 pulgada

- Panloob na back LED panel: 13 1/4 pulgada X 9 pulgada

- Mga bloke: 1 pulgada X 1 pulgada X 1 pulgada (gupitin ang 10 bloke)

- Acrylic panel: 13 3/4 pulgada X 6 1/2 pulgada

Ipapakita sa iyo ng mga larawan sa itaas ang mga anggulo at sukat ng bahagi ng bahagi ng panel. Gayundin kakailanganin mong i-cut ang dalawa sa bahaging ito

Hakbang 4: Case Assembly

Kaso Assembly
Kaso Assembly
Kaso Assembly
Kaso Assembly
Kaso Assembly
Kaso Assembly

Sa puntong ito sa mga tagubiling ito halos natapos mo ang buong bagay. ilagay ang iyong marahil iniisip mayroon ako ng lahat ng mga bahagi at gupit na ito kung ano ang ginagawa ko sa kanila. Ang huling hakbang na ito ay magtuturo sa iyo kung paano tipunin ang iyong kaso.

-Ang unang bagay na pupuntahan namin ay magsisimulang tipunin ang kaso. ito ay kung saan lahat ng iyong kahoy na gupit mula sa nakaraang hakbang ay madaling gamitin.

-Upang simulan ang pagpupulong kakailanganin namin ang 4 ng 1x1x1 bloke ng kahoy sa base, ang dalawang panig na panel, ang likod at ang harap na ilalim. ilagay ang 4 na mga bloke sa bawat sulok ng ilalim at mag-iwan ng isang kapat ng pulgada sa pagitan ng gilid at ng bloke tulad ng ipinakita sa pangalawang larawan sa pagmamakaawa ng hakbang.

-susunod kakailanganin mong mag-drill ng ilang mga butas ng piloto mula sa pamamagitan ng kahoy at mga bloke. sa sandaling nagawa mo na ang tornilyo pagkatapos sa ibaba.

-Susunod na paglalagay namin ng mga panel sa gilid. Ilagay ang mga panel sa kuwartong pulgada ng pulgada sa labas na bahagi ng bloke. mag-drill ng isang butas ng piloto sa pamamagitan ng panel ng gilid at ang bloke ng kahoy at i-tornilyo ang mga panel. ulitin para sa kabilang panig.

-Katapos makumpleto ang mga panel ng gilid. ilalagay namin ang front ilalim panel sa. ilagay ang panel flush gamit ang ilalim at ang mga gilid ay drill ang mga butas ng piloto sa mga bloke at i-tornilyo ang panel.

-Ang panghuli ay ilalagay natin ang likod. gawin ang katulad ng ginawa mo sa harap sa ilalim ng panel at i-tornilyo ka pabalik.

Sa pamamagitan ng puntong ito mayroon kang isang pundasyon upang bumuo ng at isang pag-unawa sa kung paano namin tipunin ang kasong ito.

-Ang susunod na bahagi na ito ay medyo mas mahirap dahil sa ang iyong pagtatrabaho sa isang mas maliit na lugar. upang magsimula kakailanganin namin ang lahat ng nangungunang mga bahagi at 6 na mga bloke.

-Lay kung ano ang naitayo mo sa likuran nito at ilagay ang mga bloke sa mga sulok ng isang kapat ng pulgada mula sa itaas. (tulad ng ipinakita sa pangatlong larawan sa simula)

-drill ang mga butas ng piloto para sa mga gilid at likod at iikot ito.

-ngayon ay tipunin natin ang natitirang tuktok

-kunin ang iyong tuktok na panel at ilagay ito sa mga bloke na drill ang mga butas ng piloto at i-tornilyo ang tuktok. pagkatapos mong Finnish na baligtarin ang iyong pagpupulong *** maingat *** at ilagay ang isang bloke sa bawat sulok na parallel sa gilid. mag-drill ng mga butas ng pilot mula sa mga panel ng gilid at i-tornilyo ang mga ito sa bloke. ibalik ang kaso pabalik at i-drill ang mga butas ng piloto sa tuktok sa mga bloke at i-tornilyo ito.

-ang bahaging pugad na ito ay medyo nakakalito. kakailanganin mo sa harap ng tuktok na panel at ang iyong panghuling dalawang bloke. unang mag-drill ng mga butas ng piloto sa nakaraang mga bloke sa pamamagitan ng iyong tuktok na front panel at i-tornilyo iyon. Dadalhin ka sa huling dalawang bloke at ilagay ang mga ito sa loob ng sulok at i-tornilyo ang iyong panel sa gilid at ang iyong front top panel sa mga bloke. sa sandaling muli ibaliktad ang kaso at ilagay ang panloob na tuktok na panel sa bloke at i-tornilyo ito.

-Dapat kang iwanang isang bagay tulad nito (ipinakita sa unang larawan ng hakbang na ito)

ang susunod na hakbang ay magpapaliwanag sa natitirang pagpupulong.

Hakbang 5: Tinatapos ang Assembly

Tinatapos ang Assembly
Tinatapos ang Assembly
Tinatapos ang Assembly
Tinatapos ang Assembly
Tinatapos ang Assembly
Tinatapos ang Assembly

Sa puntong ito halos nakumpleto mo ang kaso at ang pagbuo ng ilang mga bagay lamang upang mailagay at magagawa ka.

Ngayon ang natitira lamang ay ang pag-install ng electronics.

-Simulan kami sa pamamagitan ng pagbabarena ng mga butas sa iyong dial panel para sa iyong potensyomiter. huwag mag-atubiling mag-drill ng mga butas kung saan sa palagay mo ay komportable ito. sa aking kaso ay inilalagay ko ang mga butas na 2 1/2 pulgada mula sa ilalim at 3 1/2 pulgada mula sa gilid para sa parehong potentiometers.

-Kapag na-drill mo ang iyong mga butas ilalagay namin ang panel na ito sa kaso. ngunit sa halip na i-screwing ito sa namin ay ididikit namin ito simpleng maglagay ng isang mapagbigay na halaga ng kola kasama ang gilid ng kaso at ilagay ang panel at hawakan ito ng ilang mga clamp o isang bagay na mabigat.

-After ang pandikit ay tapos na ang pagpapatayo maglalagay kami sa mga elektronikong bahagi. Ngunit kailangan muna nating alisin ang back panel.

-Kung off ang likod inirerekumenda kong ilagay mo ang kaso sa harap na ginagawang mas madali upang ilagay ang mga LED at iba pang mga bahagi sa loob.

-Ngayon mayroon kang back off ilalagay namin ang potensyomiter sa loob ng kaso sa pamamagitan lamang ng paglalagay sa kanila sa mga butas na drill lamang namin at paglalagay ng isang mapagbigay na halaga ng mainit na pandikit.

*** pag-iingat *** - Maging labis na maingat kapag inilalagay ang LED array dahil ang mga solder point ay maaaring maging marupok.

-Ngayon naabot namin ang pinakamahalagang bahagi, paglalagay sa led array. ilagay lamang ang pisara sa tulad ng ipinakita sa pangalawang larawan.

-Kapag nakuha ang iyong humantong panloob na panel at ilagay ito sa loob ng kaso nang direkta sa ilalim ng LED array back panel. piraso na ito ay maaaring sa akin ng isang masikip magkasya. hayaang matuyo din ito bago magpatuloy.

-Nakarating na sa huling bahagi. Inirerekumenda ko ang pagpipinta ng isang bahagi ng huling bahagi na ito (LED Inner Back) na itim o puti para sa isang kaibahan sa pagitan ng mga LED at ng bahaging ito.

-Malalaman natin na ilagay ito nang direkta sa likod ng pag-back ng LED at gaanong pindutin ang likod ng mga LED upang hindi sila gumalaw. sabay lagyan ng lagyan ng pandikit sa gilid upang maiwasang gumalaw. ipinakita sa pangatlong larawan.

**** congrats natapos mo na ang buong pagpupulong !!!

magpatuloy sa huling hakbang upang ma-code ang laro

Hakbang 6: Ang Code

Muli na namang binabati ang pag-abot sa ngayon.

sa seksyong ito ipapakita ko sa iyo ang code at kung paano ito gagana bilang karagdagan sa mga bagay sa code na maaari mong baguhin at isapersonal ito.

ngunit bago kami makapunta sa kakailanganin mo ang (adafruit_NeoPixel-master) na-link ko rin ang pag-download.

upang mai-install ang master buksan ang iyong arduino program

1. pumunta sa sketch

2. buksan isama ang silid aklatan

3. click (add.zip library)

4. piliin ang (adafruit_NeoPixel-master) file at iyong tapos na

sa ibaba nito ay na-paste ko ang code para sa laro.

# isama

# isama

mahabang ballXabs = 12;

mahabang bolaYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int ballvelY = 1;

int index;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - paddlewidth + 1;

int knobseg = 1023 / (paddlemax);

int sagwan1 = 4;

int paddle2 = 4;

# tukuyin ang NUMPIXELS 260

# tukuyin ang PIN 6

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

walang bisa ang pag-setup () {

pix.begin ();

Serial.begin (9600);

}

void loop () {

malinaw na screen();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

pix.show ();

detectCollision ();

antala (fps);

}

walang bisa clearScreen () {

para sa (int i = 0; i <NUMPIXELS; i ++) {

pix.setPixelColor (i, mga pixel. Kulay (0, 0, 0));

}

}

walang bisa ang updateBall () {

ballXabs + = ballvelX;

ballYabs + = ballvelY;

}

walang bisa angCollision () {

Serial.print (ballYabs);

Serial.print ("");

Serial.println (sagwan1);

kung (ballvelX> 0 && ballXabs> = 25) {// bumangga sa kanang pader

Serial.println ("CollisionX");

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

}

kung (ballvelX <0 && ballXabs <= 0) {// nakabangga sa kaliwang pader

Serial.println ("CollisionX");

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

}

kung (ballvelY> 0 && ballYabs> = 9) {// collide top wall

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

}

kung (ballvelY <0 && ballYabs <= 0) {// bumangga sa ilalim ng pader

Serial.println ("CollisionY");

ballvelY * = -1;

}

// tuklasin ang sagwan 2 banggaan

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

{// bumangga sa kanang pader

Serial.println ("CollisionPaddle");

ballvelX * = -1;

}

// tuklasin ang sagwan 1 banggaan

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

{// bumangga sa kanang pader

Serial.println ("CollisionPaddle");

ballvelX * = -1;

}

}

walang bisa ang updatePaddle1 () {

int knob = analogRead (A0);

paddle1 = bilog ((haba) knob / (haba) knobseg);

}

walang bisa ang updatePaddle2 () {

int knob2 = analogRead (A1);

sagwan2 = bilog ((haba) knob2 / (haba) knobseg);

}

walang bisa ang displayBall () {

ballX = bilog (ballXabs);

ballY = bilog (ballYabs);

kung (ballX% 2! = 0) {

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

kung (ballX! = 0) {

pixel.setPixelColor (ballY + 10 * (ballX - 1), mga pixel. Color (30, 0, 0)); // kaliwang bahagi ng ballcolor

}

kung (ballX! = 25) {pix.setPixelColor (ballY + 10 * (ballX + 1), mga pixel. Kulay (30, 0, 0)); // kanang bahagi ng kulay ng bola

}

kung (ballY! = 9) {pix.setPixelColor (index - 1, pix. Color (30, 0, 0)); // ilalim na mga gilid ng kulay ng bola

}

kung (ballY! = 0) {pix.setPixelColor (index + 1, pix. Color (30, 0, 0)); // tuktok na mga gilid ng kulay ng bola

}

}

iba pa {

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

pix.setPixelColor ((9 - ballY) + 10 * (ballX - 1), mga pixel. Color (30, 0, 0)); // kaliwang bahagi ng bola kahit na hilera

}

kung (ballX! = 25) {

pix.setPixelColor ((9 - ballY) + 10 * (ballX + 1), mga pixel. Color (30, 0, 0)); // kanang bahagi ng bola kahit na hilera

}

kung (ballY! = 9) {

pix.setPixelColor (index + 1, pixel. Color (30, 0, 0)); // ilalim na mga gilid ng bola kahit na hilera

}

kung (ballY! = 0) {pix.setPixelColor (index - 1, pix. Color (30, 0, 0)); // itaas na gilid ng bola kahit na hilera

}

}

pix.setPixelColor (index, pix. Color (255, 0, 0)); /// gitna ng kulay ng bola

}

walang bisa ang displayPaddle1 () {

para sa (int i = 0; i <paddlewidth; i ++) {pix.setPixelColor (paddle1 + i, pixel. Color (0, 0, 255));

}

}

walang bisa ang displayPaddle2 () {

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

}

}

walang bisa ang iskor1 () {

resetBall (0);

}

walang bisa na iskor2 () {

resetBall (1);

}

void resetBall (int player) {

pagkaantala (1000);

ballXabs = 12

; ballYabs = 4;

ballvelX = player? 1: -1;

ballvelY = 1;

malinaw na screen();

pagkaantala (1000);

displayBall ();

pix.show ();

pagkaantala (1000);

displayPaddle1 ();

displayPaddle2 (); pix.show (); pagkaantala (2000); }

Hakbang 7: Pagtatapos

Tinatapos na
Tinatapos na

Sa sandaling na-upload mo ang code drill ng isang butas sa likod ng panel sapat na malaki para sa iyong barong jack adapter. isaksak ito sa arduino at sa wakas ay muling pagsama-samahin ang likod.

Isinama ko rin sa listahan ng bahagi ang LED diffuser acrylic maaari mo na ngayong ilagay iyon sa mga LED at idikit ito

Matapos mong magawa ito handa ka nang maglaro at masiyahan sa mga oras ng mapagkumpitensyang laro laban sa pamilya at mga kaibigan.

Panghuli nais kong batiin ka sa pagkumpleto ng proyekto.

Kung mayroon kang anumang mga isyu makipag-ugnay sa akin dito at nais kong makatulong na malutas ang isyu.

Inirerekumendang: