Mündəricat:

LED Strip Atari Pong Arcade Maşını: 8 addım
LED Strip Atari Pong Arcade Maşını: 8 addım

Video: LED Strip Atari Pong Arcade Maşını: 8 addım

Video: LED Strip Atari Pong Arcade Maşını: 8 addım
Video: COC JUNE 2019 UPDATE CLOUDS ARE DISAPPEARING? 2024, Iyul
Anonim
LED Strip Atari Pong Arcade Maşını
LED Strip Atari Pong Arcade Maşını

Adım Gabriel Podevin və bu mənim ilk girilməz sözlərimdir. Hal -hazırda elektronika, robototexnika, sxem və proqramlaşdırma ilə çox maraqlanarkən şeylər yaratmağı və qurmağı sevən 16 yaşında bir lisey şagirdiyəm. Ümid edirəm ki, bu köməkçi tapacaqsınız.

Bu təlimatda sizə retro arcade qutusu içərisində retro üslublu Atari Pong Oyununun necə ediləcəyini göstərəcəyəm. Layihənin bir demosu üçün yuxarıdakı videoya baxa bilərsiniz, həm də bitmiş layihəni və işi tək və iki şəkildə görə bilərsiniz. Bu çətinliyin sonunda kodu daha dərindən araşdıracağam və onu fərdiləşdirmək üçün onu necə düzəldəcəyimi öyrənəcəyəm.

Əsas hissələrin siyahısı bölmələrə bölünəcək: Alətlər, montaj hissələri və komponentlər

Ehtiyac duyacağınız vasitələrə aşağıdakılar daxildir:

- Qazma

- Lehimleme dəmir

- Tornavida (istifadə etməyə qərar verdiyiniz vintlərə uyğun)

- Çox sayğac

- sirkulyasiya edən mişar, şerit testere və ya lazer kəsici ilə birindən istifadə edə bilərsiniz

-Tel kəsici və ya qayçı

- Yapışqan silah

Montaj üçün ehtiyac duyacağınız hissələr daxildir

- Taxta yapışqan

- 10 düymlük bir düymlük taxta bloklar

- dörddə bir düymlük taxta və ya seçilmiş ağacdan böyük bir təbəqə

- Yarım düym uzunluğunda 24 vida

- 14 x 6.5 düymlük LED yayıcı plastik (isteğe bağlı)

- qırmızı və mavi elektrik lenti

Lazım olan komponentlər bunlardır:

- 2 100k ohm potensiometr

- 8 metr ayrı -ayrı ünvanlı Led şeridi (Metr başına 30 led)

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

- bir neçə metr tel və ya çox rəngli tel

- 6v -ni bir yuva fişindən çıxaran dc güc adapteri

- 1 arduino Uno R3

mənim kimi bir Arduino Uno R3-ə çıxışınız yoxdursa, atmel328-pu prosessoru istifadə edən bu layihədə istifadə edəcəyim kimi qura bilərsiniz. Özünüzü necə quracağınızı öyrənmək üçün bu linki izləyin

Bir arduino uno istifadə edirsinizsə, birinci addıma davam edin.

Addım 1: LED Arrayının qurulması

LED Arrayının qurulması
LED Arrayının qurulması
LED Arrayının qurulması
LED Arrayının qurulması
LED Arrayının qurulması
LED Arrayının qurulması

Bu addım, etməli olduğunuz bütün lehimləmə səbəbiylə ən çox vaxt aparan bir addımdır.

-Başlamaq üçün 10 3/4 düym 6 1/2 düym taxta parçasına ehtiyacınız olacaq.

-Bir dəfə taxta parçanız varsa, Led şeridinizi tutun və hər 10 leddən və ya hər 6 1/2 düymdən 26 seqment kəsin.

-seqmentləri kəsdikdən sonra yuxarıdakı birinci şəkildə göstərilən aşağıdakı şəkillərdəki kimi şaquli olaraq ağacınıza yapışdırın.

-Şeritləri aşağı yapışdırıb həll etmələrinə icazə verdikdən sonra lehimləməyə başlayacağıq.

-Üç fərqli rəngli telə ehtiyacınız olacaq

-bütün pozitivlər bir telə bağlanmalı və bütün neqativlər bir telə bağlanmalı, son tel isə şeridləri birləşdirəcəkdir. Bu addımın əvvəlindəki ikinci şəkillər, telləri necə bağlayacağınızı göstərəcək bir diaqramdır.

-Nəhayət, onları lehimlədikdən sonra, uyğun rənglərlə lehim əlaqələrinizə bir elektrik şeridi saracaqsınız. yuxarıdakı üçüncü şəkildə göstərildiyi kimi.

-sonda Arduinoya qoşulacağıq. rəqəmsal girişiniz və ya orta teliniz sizə rəqəmsal giriş 6 pin və yeriniz və pozitiviniz lövhədəki müsbət və mənfi raylara bağlanacaq.

Addım 2: Paddle Controls

Paddle Controls
Paddle Controls
Paddle Controls
Paddle Controls
Paddle Controls
Paddle Controls

Bu çox sadə bir addım üçün, hər potansiyometrə üç tel lehimləmək kifayətdir. Əgər potansiyometrini lehim nöqtələrini özünüzə baxan vəziyyətdə tutsanız, sol ucu müsbət olar, mərkəzi diş çıxır və sağ ucu yerə qoyulur. yuxarıdakı diaqramda göstərildiyi kimi

telləri lehimlədikdən sonra Arduinoya bağlayacağıq. ehtimal və mənfi cəhətlər ora uyğun olaraq müsbət və mənfi yağışlar bağlayacaq. potansiometrlərdəki telləri arduino üzərindəki fərqli girişlərə bağlayacaqsınız. biri (A0) fişinə, digəri isə (A1) fişinə qoşulacaq.

Addım 3: Kassanın kəsilməsi

Davanın kəsilməsi
Davanın kəsilməsi
Davanın kəsilməsi
Davanın kəsilməsi
Davanın kəsilməsi
Davanın kəsilməsi
Davanın kəsilməsi
Davanın kəsilməsi

bu hissə sizə lazım olan ölçüləri və açıları verəcəkdir

**** çox vacib ***** ağacınızın dörddə bir düym qalın olduğundan əmin olun (1/4 düym)

Parçaları kəsərkən hissələrinizi etiketləməyi unutmayın

kəsiləcək əsas hissə alt, arxa, üst, ön üst, ön alt kimi etiketlənəcək…. başında şəkillərdə göstərilmişdir

hissə ölçüləri

- Alt: 13 3/4 düym X 10 1/4 düym

- Arxa: 13 3/4 düym X 15 1/2 düym

- Üst: 13 3/4 düym X 6 1/2 düym

- Ön alt: 13 3/4 düym X 4 1/4 düym

- Dial Panel: 13 3/4 düym X 6 düym

- Daxili üst: 13 3/4 düym X 3 1/4 düym

- LED siding: 6 1/4 düym X 1 düym (bunlardan ikisini kəsin)

- Daxili LED alt: 13 1/4 düym X 4 1/2 düym

- daxili arxa LED paneli: 13 1/4 düym X 9 düym

- Bloklar: 1 düym X 1 düym X 1 düym (10 blok kəsilmiş)

- Akril panel: 13 3/4 düym X 6 1/2 düym

Yuxarıdakı şəkillər sizə yan panel hissəsinin açılarını və ölçülərini göstərəcəkdir. Ayrıca bu hissədən ikisini kəsməlisiniz

Addım 4: Kassa Montajı

Kassa Məclisi
Kassa Məclisi
Kassa Məclisi
Kassa Məclisi
Kassa Məclisi
Kassa Məclisi

Bu təlimatlarda bu nöqtəyə qədər demək olar ki, hər şeyi bitirdiniz. Yəqin ki, bütün bu hissələrə və kəsiklərə sahib olduğumu düşünürsənsə, onlarla nə edim. Bu son addım, çantanızı necə yığacağınızı sizə göstərəcək.

-Edəcəyimiz ilk şey, işi yığmağa başlamaqdır. əvvəlki addımdan kəsdiyiniz bütün ağac parçaları burada faydalıdır.

-Montajı başlamaq üçün 1x1x1 ölçülü taxta bloklardan 4 -ə, iki yan panelə, arxa və ön dibə ehtiyacımız olacaq. 4 bloku dibinin hər küncünə qoyun və ikinci addımda göstərildiyi kimi kənar ilə blok arasında dörddə bir düym buraxın.

-Bundan sonra ağacdan və bloklardan bir neçə deşik açmalısınız. bu vidanı bir dəfə etdikdən sonra dibinə.

-Bundan sonra yan panelləri taxacağıq. Panelləri blokun kənarındakı dörddə bir düymlük boşluğa yerləşdirin. yan paneldən və taxta blokdan bir pilot çuxuru qazın və panelləri vidalayın. digər tərəf üçün də təkrarlayın.

-Yan panelləri tamamladıqdan sonra. ön alt paneli taxacağıq. paneli alt ilə eyni hizaya qoyun və tərəflər pilot delikləri bloklara qazın və paneli vidalayın.

-Nəhayət, arxa plana keçəcəyik. Ön alt panellə etdiyiniz kimi eyni şeyi edin və geri vidalayın.

-Bu nöqtədə quracağınız bir təməl və bu işi necə yığdığımız barədə bir anlayışınız var.

-Bu sonrakı hissə daha kiçik bir sahə ilə çalışmağınız səbəbindən bir az daha çətindir. Başlamaq üçün bütün üst hissələrə və 6 bloka ehtiyacımız olacaq.

-İndiyə qədər tikdiyinizi arxasına qoyun və blokları yuxarıdan dörddə bir düym künclərə qoyun. (üçüncü şəklin əvvəlində göstərildiyi kimi)

-Yan və arxa tərəfdəki pilot delikləri qazın və vidalayın.

-İndi yuxarı hissənin qalan hissəsini yığacağıq

-üst panelinizi götürün və blokların üzərinə qoyun, pilot delikləri qazın və üst hissəni vidalayın. Montajınızı diqqətlə aşağıya çevirdiyiniz Fin dilindən sonra *** kənarına paralel olaraq hər küncdə bir blok qoyun. yan panellərdən pilot deliklər qazın və bloka vidalayın. kassanı dik çevirin və yuxarıdan bloklara deliklər qazın və vidalayın.

-Bu yuva hissəsi bir az çətindir. ön panelinizə və son iki blokunuza ehtiyacınız olacaq. Əvvəlcə üst panelinizdən əvvəlki bloklara bir deşik qazın və vidalayın ki, indi son iki bloku götürün və içəriyə küncə qoyun və yan panelinizi və ön üst panelinizi bloklara vidalayın. bir daha çantanı alt -üst edin və daxili üst paneli bloka yerləşdirin və vidalayın.

-Sizə belə bir şey qalmalıdır (bu addımın ilk şəkilində göstərilmişdir)

növbəti addım məclisin qalan hissəsini izah edəcək.

Addım 5: Məclisin tamamlanması

Məclisin bitməsi
Məclisin bitməsi
Məclisin bitməsi
Məclisin bitməsi
Məclisin bitməsi
Məclisin bitməsi

Bu vaxta qədər işi və quruluşu demək olar ki, tamamlamısınız və yerinə yetirmək üçün bir neçə şeyi tamamlayacaqsınız.

İndi elektronikanı quraşdırmaq qalır.

-Potansiyometriniz üçün dial panelinizə deliklər qazmaqla başlayacağıq. rahat olacağını düşündüyünüz yerlərdə deliklər açmaqdan çekinmeyin. mənim vəziyyətimdə hər iki potansiyometr üçün altdan 2 1/2 düym və tərəfdən 3 1/2 düym olan deliklər qoymuşam.

-Dərilərinizi qazdıqdan sonra bu paneli kasanın üzərinə qoyacağıq. onu vidalamaq əvəzinə yapışdıracağıq, işin kənarına bol miqdarda yapışqan qoyun və paneli yerləşdirin və bir az sıxac və ya ağır bir şeylə tutun.

-Yapışqan quruduqdan sonra elektron hissələrə qoyacağıq. Ancaq əvvəlcə arxa paneli sökməliyik.

-Arxası söndükdən sonra, LED -ləri və digər komponentləri içəriyə qoymağı asanlaşdırmaq üçün kassanı aşağıya endirməyi məsləhət görürəm.

-İndi arxa tərəfinizdə olduğu üçün potensialiometrini sadəcə qazdığımız deliklərdən keçirərək və bol miqdarda isti yapışqan qoyaraq korpusun içərisinə yerləşdirəcəyik.

*** ehtiyatlılıq ***-Led nöqtələri kövrək ola biləcəyi üçün LED dizisini qoyarkən son dərəcə diqqətli olun.

-İndi ən önəmli hissəyə çatdıq, led dizisini qoyaraq. lövhəni ikinci şəkildə göstərildiyi kimi yerləşdirin.

-Led daxili panelinizi əldə etdikdən sonra onu LED -lərin arxa panelinin altına qoyun. bu parça mənə çox uyğun ola bilər. davam etməzdən əvvəl qurumasına icazə verin.

-Son hissəyə çatmısınız. LEDlər və bu hissə arasındakı ziddiyyət üçün bu son hissənin bir tərəfini (LED Daxili Arxa) qara və ya ağ rənglə boyamağı məsləhət görürəm.

-Bunu birbaşa LED dəstəyinin arxasına yerləşdirəcəyik və hərəkət etməmək üçün LED -lərin arxasına yüngülcə basacağıq. Bir dəfə hərəkət etməməsi üçün kənarına yapışqan tətbiq edin. üçüncü şəkildə göstərilir.

**** bütün məclisi bitirdiyiniz üçün sizi təbrik edirəm !!!

oyunu kodlaşdırmaq üçün son addıma davam edin

Addım 6: Kod

Bu günə qədər bir daha təbrik edirəm.

bu bölmədə kodu dəyişdirə və fərdiləşdirə biləcəyiniz koda əlavə olaraq necə işlədiyini göstərəcəyəm.

amma işə başlamazdan əvvəl yükləməni əlaqələndirdiyim (adafruit_NeoPixel-master) proqramına ehtiyacınız olacaq.

Master qurmaq üçün arduino proqramınızı açın

1. eskizə getmək

2. açıq kitabxana daxildir

3. vurun (add.zip kitabxanası)

4. (adafruit_NeoPixel-master) faylını seçin və bitirdiniz

Bunun altına oyunun kodunu yapışdırmışam.

#daxil edin

#daxil edin

uzun ballXabs = 12;

uzun topYabs = 4;

int ballX;

int ballY;

int ballvelX = 1;

int ballvelY = 1;

int indeksi;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - avar genişliyi + 1;

int knobseg = 1023 / (paddlemax);

int paddle1 = 4;

int paddle2 = 4;

260

#PIN 6 təyin edin

Adafruit_NeoPixel pikselləri = Adafruit_NeoPixel (NUMPIXELS, PIN6, NEO_GRB + NEO_KHZ800);

boş quraşdırma () {

piksel.begin ();

Serial.begin (9600);

}

boşluq döngəsi () {

clearScreen ();

updateBall ();

updatePaddle1 ();

updatePaddle2 ();

displayBall ();

displayPaddle1 ();

displayPaddle2 ();

piksel.show ();

detectCollision ();

gecikmə (fps);

}

void clearScreen () {

üçün (int i = 0; i <NUMPIXELS; i ++) {

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

}

}

etibarsız updateBall () {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

void detectCollision () {

Serial. çap (ballYabs);

Serial.print ("");

Serial.println (avar1);

if (ballvelX> 0 && ballXabs> = 25) {// sağ divar toqquşur

Serial.println ("CollisionX");

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

}

if (ballvelX <0 && ballXabs <= 0) {// sol divar toqquşur

Serial.println ("CollisionX");

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

}

if (ballvelY> 0 && ballYabs> = 9) {// üst divarı toqquşdurur

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

}

if (ballvelY <0 && ballYabs <= 0) {// alt divar toqquşur

Serial.println ("CollisionY");

ballvelY *= -1;

}

// avar 2 toqquşmasını aşkar edin

if ((ballvelX> 0 && ballXabs == 24) && ((ballYabs> = avar2) && (ballYabs <= paddle2 + avar genişliyi - 1)))

{// sağ divara vuruşun

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

// avar 1 toqquşmasını aşkar edin

əgər ((ballvelX = avar1) && (ballYabs <= avar1 + avar genişliyi - 1)))

{// sağ divara vuruşun

Serial.println ("CollisionPaddle");

ballvelX *= -1;

}

}

etibarsız updatePaddle1 () {

int düyməsi = analogRead (A0);

avar1 = yuvarlaq ((uzun) topuz / (uzun) düymə);

}

etibarsız updatePaddle2 () {

int knob2 = analogRead (A1);

avar2 = yuvarlaq ((uzun) topuz2 / (uzun) düymə);

}

boş DisplayBall () {

ballX = yuvarlaq (ballXabs);

topY = yuvarlaq (topYabs);

əgər (topX % 2! = 0) {

indeks = (9 - topY) + 10 * ballX;

əgər (ballX! = 0) {

piksel.setPixelColor (ballY + 10 * (ballX - 1), piksel. Color (30, 0, 0)); // top rənginin sol tərəfi

}

if (ballX! = 25) {piksel.setPixelColor (ballY + 10 * (ballX + 1), piksel. Color (30, 0, 0)); // top rənginin sağ tərəfi

}

if (ballY! = 9) {piksel.setPixelColor (indeks - 1, piksel. Color (30, 0, 0)); // top rənginin alt tərəfləri

}

if (ballY! = 0) {piksel.setPixelColor (indeks + 1, piksel. Color (30, 0, 0)); // top rənginin yuxarı tərəfləri

}

}

başqa {

indeks = topY + 10 * ballX; əgər (ballX! = 0) {

piksel.setPixelColor ((9 - ballY) + 10 * (ballX - 1), piksel. Color (30, 0, 0)); // topun sol sırası

}

əgər (ballX! = 25) {

piksel.setPixelColor ((9 - ballY) + 10 * (ballX + 1), piksel. Color (30, 0, 0)); // topun cərgəsinin sağ tərəfi

}

əgər (topY! = 9) {

piksel.setPixelColor (indeks + 1, piksel. Color (30, 0, 0)); // topun cərgəsinin alt tərəfləri

}

if (ballY! = 0) {piksel.setPixelColor (indeks - 1, piksel. Color (30, 0, 0)); // topun üst cərgəsinin yuxarı tərəfləri

}

}

piksel.setPixelColor (indeks, piksel. Color (255, 0, 0)); /// top rənginin mərkəzi

}

boş displeyPaddle1 () {

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

}

}

boş displeyPaddle2 () {

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

}

}

etibarsız hesab1 () {

resetBall (0);

}

boş hesab 2 () {

resetBall (1);

}

void resetBall (int player) {

gecikmə (1000);

ballXabs = 12

; topYabs = 4;

ballvelX = oyunçu? 1: -1;

ballvelY = 1;

clearScreen ();

gecikmə (1000);

displayBall ();

piksel.show ();

gecikmə (1000);

displayPaddle1 ();

displayPaddle2 (); piksel.show (); gecikmə (2000); }

Addım 7: Bitirmə

Bitir
Bitir

Kodu yüklədikdən sonra arxa paneldə barel jakı güc adapteriniz üçün kifayət qədər böyük bir delik açın. Arduinoya qoşun və nəhayət arxasını yenidən yığın.

Parça siyahısına indi LED -lərin üzərinə yerləşdirib yapışdıra biləcəyiniz LED diffuzor akrilini də daxil etdim.

Bunu etdikdən sonra ailənizə və dostlarınıza qarşı rəqabətli oyun saatlarını oynamağa və zövq almağa hazırsınız.

Sonda layihəni başa vurmağınız münasibətilə sizi təbrik etmək istəyirəm.

Hər hansı bir probleminiz varsa mənimlə əlaqə saxlayın və problemin həllinə kömək etmək istərdim.

Tövsiyə: