Isi kandungan:

Mesin Jalur LED Atari Pong Arcade: 8 Langkah
Mesin Jalur LED Atari Pong Arcade: 8 Langkah

Video: Mesin Jalur LED Atari Pong Arcade: 8 Langkah

Video: Mesin Jalur LED Atari Pong Arcade: 8 Langkah
Video: Strange History of Electro Mechanical Pong! Arcade/Console/Pinball EM Pong versions of Video Game 2024, November
Anonim
Mesin Arked Strip Atari Pong LED
Mesin Arked Strip Atari Pong LED

Nama saya Gabriel Podevin dan ini adalah yang pertama saya boleh buat. Saya sekarang ini adalah pelajar sekolah menengah berusia 16 tahun yang gemar membuat dan membina sesuatu sambil sangat berminat dengan elektronik, robotik, litar dan pengaturcaraan. Saya harap anda dapat menganggap ini dapat difahami yang bermanfaat.

Dalam arahan ini saya akan menunjukkan kepada anda bagaimana membuat Atari Pong Game yang bergaya retro di dalam casing retro arcade. Anda dapat melihat video di atas untuk demo projek, anda juga dapat melihat projek yang sudah siap dan kesnya sahaja dan dalam dua gambar. Pada akhir ini, saya akan menyelami lebih mendalam kod dan bagaimana mengeditnya untuk memperibadikannya.

Senarai bahagian asas akan dibahagikan dalam bahagian: Alat, bahagian pemasangan dan komponen

Alat yang anda perlukan merangkumi yang berikut:

- Gerudi

- Besi pematerian

- Pemacu skru (sepadan dengan skru yang anda putuskan untuk digunakan)

- Multi Meter

- gergaji beredar, gergaji pita, atau pemotong laser adakah anda mempunyai akses ke satu

- Pemotong wayar atau gunting

- Pistol gam

Bahagian yang anda perlukan untuk pemasangan akan merangkumi

- Gam kayu

- kayu berukuran 10 satu inci dengan satu inci

- kepingan besar kayu lapis berukuran empat inci atau kayu pilihan

- 24 skru panjang setengah inci

- 14 x 6.5 inci plastik penyebar led (pilihan)

- pita elektrik merah dan biru

Komponen yang anda perlukan adalah:

- 2 potensiometer 100k ohm

- 8 meter jalur Led yang boleh dihubungi secara individu (30 leds per Meter)

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

- wayar beberapa meter atau wayar pelbagai warna

- penyesuai kuasa ac to dc yang mengeluarkan 6v melalui palam jack laras

- 1 arduino Uno R3

jika anda tidak mempunyai akses ke Arduino Uno R3 seperti saya, anda boleh membuatnya seperti yang akan saya gunakan dalam projek ini yang menggunakan pemproses atmel328-pu. Ikuti pautan ini untuk mengetahui cara membina https://www.instructables.com/id/How-to-make-your-own-Arduino-board/ anda sendiri

Sekiranya anda menggunakan arduino uno teruskan ke langkah pertama.

Langkah 1: Membina Array LED

Membina Array LED
Membina Array LED
Membina Array LED
Membina Array LED
Membina Array LED
Membina Array LED

Langkah ini adalah langkah paling memakan masa kerana semua pematerian yang mesti anda lakukan.

-untuk memulakan anda memerlukan sekeping kayu 10 3/4 inci dengan 6 1/2 inci.

-setelah anda mempunyai kayu anda, ambil jalur Led anda dan potong 26 segmen setiap 10 led atau setiap 6 1/2 inci.

-setelah memotong ruasnya, gamkannya ke kayu anda secara menegak seperti ditunjukkan pada gambar berikut yang ditunjukkan pada gambar pertama di atas.

-setelah anda melekatkan helai ke bawah dan membiarkannya mengendap, kami akan mula memateri.

-Anda akan memerlukan tiga wayar berwarna yang berbeza

-mesti disambungkan dengan semua positif yang menyambung ke satu wayar dan semua negatif yang menyambung ke satu wayar sementara wayar terakhir akan mengikat jalur yang dipimpin bersama-sama. Gambar kedua pada awal langkah ini adalah gambarajah yang akan menunjukkan cara menyambungkan wayar.

-Setelah anda menyoldernya, anda hanya akan membungkus sehelai elektrik pada sambungan pateri anda dengan warna yang sesuai. seperti yang ditunjukkan dalam gambar ketiga di atas.

-akhirnya kita akan berhubung dengan Arduino. input digital anda atau wayar tengah anda akan menghubungkan anda dengan pin 6 input digital dan tanah anda dan positif akan menyambung ke rel positif dan negatif di papan tulis.

Langkah 2: Kawalan Paddle

Kawalan Paddle
Kawalan Paddle
Kawalan Paddle
Kawalan Paddle
Kawalan Paddle
Kawalan Paddle

Untuk langkah yang sangat mudah ini, yang perlu anda lakukan ialah memateri tiga wayar ke setiap potensiometer. jika anda memegang potensiometer dengan titik pateri menghadap ke arah anda, serong kiri akan menjadi positif bahawa serong tengah menjadi output dan serong kanan akan dibumikan. seperti yang ditunjukkan dalam rajah di atas

setelah anda memasang kabel, kami akan menyambungkannya ke Arduino. anda positif dan negatif akan bersambung dengan hujan positif dan negatif yang sesuai. anda mengeluarkan kabel pada potensiometer akan menyambung ke input yang berbeza pada arduino. satu akan menyambung ke palam (A0) dan yang lain akan menyambung ke palam (A1).

Langkah 3: Memotong Kes

Memotong Kes
Memotong Kes
Memotong Kes
Memotong Kes
Memotong Kes
Memotong Kes
Memotong Kes
Memotong Kes

bahagian ini akan memberi anda dimensi dan sudut mengenai apa yang perlu anda potong

**** sangat penting ***** pastikan kayu anda setebal seperempat inci (1/4 inci)

juga semasa memotong bahagian ingatlah untuk melabelkan bahagian anda

bahagian asas yang akan dipotong akan dilabel bawah, belakang, atas, atas depan, bawah depan…. ditunjukkan dalam gambar pada awalnya

dimensi bahagian

- Bawah: 13 3/4 inci X 10 1/4 inci

- Belakang: 13 3/4 inci X 15 1/2 inci

- Atas: 13 3/4 inci X 6 1/2 inci

- Bahagian bawah depan: 13 3/4 inci X 4 1/4 inci

- Panel Dail: 13 3/4 inci X 6 inci

- Bahagian dalam: 13 3/4 inci X 3 1/4 inci

- Sisi LED: 6 1/4 inci X 1 inci (potong dua dari ini)

- Bahagian bawah LED: 13 1/4 inci X 4 1/2 inci

- panel LED belakang dalaman: 13 1/4 inci X 9 inci

- Blok: 1 inci X 1 inci X 1 inci (potong 10 blok)

- Panel akrilik: 13 3/4 inci X 6 1/2 inci

Gambar di atas akan menunjukkan sudut dan dimensi bahagian panel sisi. anda juga perlu memotong dua bahagian ini

Langkah 4: Perhimpunan Kes

Perhimpunan Kes
Perhimpunan Kes
Perhimpunan Kes
Perhimpunan Kes
Perhimpunan Kes
Perhimpunan Kes

Pada tahap ini, anda hampir menyelesaikan semuanya. meletakkan pemikiran anda mungkin saya mempunyai semua bahagian dan potongan apa yang saya lakukan dengannya. Langkah terakhir ini akan memberi arahan kepada anda bagaimana mengumpulkan kes anda.

-Perkara pertama yang akan kita laksanakan ialah mula menyusun kes itu. di sinilah semua potongan kayu anda dari langkah sebelumnya sangat berguna.

-Untuk memulakan pemasangan, kita akan memerlukan 4 dari blok kayu 1x1x1 pangkalan, dua panel sisi, belakang dan bahagian bawah depan. letakkan 4 blok di setiap sudut bawah dan tinggalkan seperempat inci di antara tepi dan blok seperti yang ditunjukkan pada gambar kedua pada saat mengemis langkah.

-seterusnya anda perlu menggerudi beberapa lubang pandu dari kayu dan bongkah. setelah anda melakukan skru itu kemudian ke bahagian bawah.

-Seterusnya kita akan memasang panel sisi. Letakkan panel pada celah seperempat inci di bahagian luar blok. gerudi lubang juruterbang melalui panel sisi dan bongkah kayu dan pasangkan panel. ulangi untuk sisi lain.

-Setelah melengkapkan panel sisi. kita akan meletakkan panel bawah depan. letakkan siram panel dengan bahagian bawah dan sisi menggerudi lubang juruterbang ke blok dan pasangkan panel.

- Akhirnya kita akan memberi sokongan. lakukan sama seperti yang anda lakukan dengan panel bawah depan dan pasangkan anda kembali.

-Dengan ini anda mempunyai asas untuk membangun dan pemahaman tentang bagaimana kita menyusun kes ini.

-Bahagian seterusnya sedikit lebih mencabar kerana anda bekerja dengan kawasan yang lebih kecil. untuk memulakan kita memerlukan semua bahagian atas dan 6 blok.

-Biarkan apa yang telah anda buat sejauh ini di belakangnya dan letakkan blok di sudut seperempat inci dari atas. (seperti yang ditunjukkan dalam gambar ketiga di awal)

- lubang lubang pandu untuk sisi dan belakang dan pasangkannya.

-sekarang kita akan mengumpulkan bahagian atas

-keluarkan panel atas anda dan letakkan di blok menggerudi lubang juruterbang dan pasangkan bahagian atasnya. setelah anda Finland yang membalikkan pemasangan anda *** dengan hati-hati *** dan letakkan blok di setiap sudut selari dengan tepi. gerudi lubang pilot dari panel sisi dan skru ke blok. putar kembali kes itu ke atas dan gerudi lubang perintis melalui bahagian atas ke dalam blok dan pasangkannya.

-bahagian sarang ini agak rumit. anda memerlukan panel depan anda dan dua blok terakhir anda. mula-mula gerudi lubang juruterbang ke blok sebelumnya melalui panel depan atas anda dan skru masuk. sekarang bawa anda dua blok terakhir dan letakkan di dalamnya di sudut dan pasangkan panel sisi dan panel depan depan anda ke blok. sekali lagi putar sarung terbalik dan letakkan panel atas dalam pada blok dan pasangkannya.

-Anda harus ditinggalkan dengan sesuatu seperti ini (ditunjukkan pada gambar pertama langkah ini)

langkah seterusnya akan menerangkan sisa perhimpunan.

Langkah 5: Menamatkan Majlis

Selesai Majlis
Selesai Majlis
Selesai Majlis
Selesai Majlis
Selesai Majlis
Selesai Majlis

Pada tahap ini anda hampir selesai menyelesaikan kes dan membina hanya beberapa perkara untuk disiapkan dan anda akan selesai.

Sekarang yang tinggal hanyalah memasang elektronik.

-Kami akan memulakan dengan menggerudi lubang ke panel dail anda untuk potensiometer anda. jangan ragu untuk mengebor lubang di mana anda merasakan ia akan selesa. dalam kes saya, saya meletakkan lubang 2 1/2 inci dari bawah dan 3 1/2 inci dari sisi untuk kedua-dua potensiometer.

-Setelah anda mengebor lubang anda, kami akan meletakkan panel ini ke dalam casing. tetapi bukannya melekatkannya, kita akan melekatkannya dengan meletakkan sebilangan besar gam di tepi casing dan meletakkan panel di atasnya dan memegangnya dengan beberapa penjepit atau sesuatu yang berat.

-Setelah gam selesai mengering, kita akan memasukkan bahagian elektronik. Tetapi pertama-tama kita mesti membuang panel belakang.

-Setelah punggung mati saya cadangkan agar anda meletakkan casing ke depan sehingga lebih mudah meletakkan LED dan komponen lain di dalamnya.

-Sekarang anda sudah mundur, kita akan meletakkan potensiometer di dalam casing dengan memasukkannya ke lubang yang baru saja kita latih dan masukkan sejumlah besar lem panas.

*** berhati-hati *** - Berhati-hati ketika meletakkan susunan LED kerana titik pateri boleh rapuh.

-Sekarang kita telah mencapai bahagian yang paling penting, memasukkan array yang dipimpin. letakkan papan di dalamnya seperti yang ditunjukkan pada gambar kedua.

-Setelah mendapatkan panel dalaman yang dipimpin dan letakkan di dalam casing tepat di bawah panel belakang array LED. potongan ini mungkin saya sesuai. biarkan juga kering sebelum meneruskan.

-Anda telah sampai ke bahagian terakhir. saya cadangkan mengecat satu sisi bahagian akhir ini (LED Inner Back) hitam atau putih untuk perbezaan antara LED dan bahagian ini.

-Kami akan mengetahui tempat ini tepat di belakang penyokong LED dan tekan sedikit ke belakang LED agar tidak bergerak. setelah dimasukkan oleskan gam di tepi untuk mengelakkannya bergerak. ditunjukkan dalam gambar ketiga.

**** selamat anda telah selesai keseluruhan perhimpunan !!!

teruskan ke langkah terakhir untuk membuat kod permainan

Langkah 6: Kodnya

Tahniah sekali lagi kerana berjaya mencapai tahap ini.

dalam bahagian ini saya akan menunjukkan kepada anda kod dan cara membuatnya berfungsi di samping perkara-perkara dalam kod yang anda boleh ubah dan peribadikannya.

tetapi sebelum kita mengetahui bahawa anda memerlukan (adafruit_NeoPixel-master) saya telah menghubungkan muat turunnya juga.

untuk memasang master buka program arduino anda

1. pergi ke lakaran

2. terbuka termasuk perpustakaan

3. klik (perpustakaan add.zip)

4. pilih fail (adafruit_NeoPixel-master) dan selesai

di bawah ini saya telah menampal kod untuk permainan.

#sertakan

#sertakan

bola panjangXabs = 12;

bola panjangYab = 4;

int bolaX;

int bolaY;

int ballvelX = 1;

int ballvelY = 1;

indeks int;

int fps = 50;

int paddlewidth = 3;

int paddlemax = 9 - lebar paddle + 1;

int knobseg = 1023 / (paddlemax);

int paddle1 = 4;

int paddle2 = 4;

#tentukan NUMPIXELS 260

#tentukan PIN 6

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

batal persediaan () {

piksel.begin ();

Serial.begin (9600);

}

gelung kosong () {

clearScreen ();

kemas kiniBall ();

kemas kiniPaddle1 ();

kemas kiniPaddle2 ();

paparanBall ();

paparanPaddle1 ();

paparanPaddle2 ();

piksel.show ();

mengesanCollision ();

kelewatan (fps);

}

kosongkan Skrin () {

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

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

}

}

batal kemas kiniBall () {

ballXabs + = ballvelX;

ballYabs + = ballvelY;

}

kekosongan mengesanCollision () {

Serial.print (ballYabs);

Cetakan bersiri ("");

Serial.println (paddle1);

if (ballvelX> 0 && ballXabs> = 25) {// bertembung di dinding kanan

Serial.println ("CollisionX");

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

}

jika (ballvelX <0 && ballXabs <= 0) {// bertembung di dinding kiri

Serial.println ("CollisionX");

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

}

if (ballvelY> 0 && ballYabs> = 9) {// perlanggar dinding atas

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

}

jika (ballvelY <0 && ballYabs <= 0) {// bertembung di dinding bawah

Serial.println ("CollisionY");

ballvelY * = -1;

}

// mengesan tumbukan dayung 2

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

{// berlanggar dinding kanan

Serial.println ("CollisionPaddle");

ballvelX * = -1;

}

// mengesan tumbukan dayung 1

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

{// berlanggar dinding kanan

Serial.println ("CollisionPaddle");

ballvelX * = -1;

}

}

batal kemas kiniPaddle1 () {

int knob = analogRead (A0);

paddle1 = tombol bulat ((panjang) / (panjang) tombol);

}

batal kemas kiniPaddle2 () {

int knob2 = analogRead (A1);

paddle2 = knobseg bulat ((panjang) / / panjang);

}

batal paparanBall () {

ballX = bulat (ballXabs);

ballY = bulat (ballYabs);

jika (bolaX% 2! = 0) {

indeks = (9 - ballY) + 10 * bolaX;

jika (bolaX! = 0) {

pixels.setPixelColor (ballY + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // bahagian kiri cat bola

}

jika (ballX! = 25) {pixels.setPixelColor (ballY + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // sebelah kanan warna bola

}

jika (ballY! = 9) {pixels.setPixelColor (index - 1, pixels. Color (30, 0, 0)); // bahagian bawah warna bola

}

jika (ballY! = 0) {pixels.setPixelColor (index + 1, pixels. Color (30, 0, 0)); // bahagian atas warna bola

}

}

lain {

indeks = bolaY + 10 * bolaX; jika (bolaX! = 0) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX - 1), pixels. Color (30, 0, 0)); // sebelah kiri bola sama rata

}

jika (bolaX! = 25) {

pixels.setPixelColor ((9 - ballY) + 10 * (ballX + 1), pixels. Color (30, 0, 0)); // sebelah kanan bola sama rata

}

jika (ballY! = 9) {

pixels.setPixelColor (indeks + 1, pixels. Color (30, 0, 0)); // bahagian bawah bola sama rata

}

jika (ballY! = 0) {pixels.setPixelColor (index - 1, pixels. Color (30, 0, 0)); // bahagian atas bola sama rata

}

}

pixels.setPixelColor (indeks, pixel. Color (255, 0, 0)); /// pusat warna bola

}

paparan kosongPaddle1 () {

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

}

}

paparan kosongPaddle2 () {

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

}

}

skor kosong1 () {

resetBall (0);

}

skor kosong2 () {

resetBall (1);

}

batal resetBall (pemain int) {

kelewatan (1000);

bolaXabs = 12

; ballYabs = 4;

ballvelX = pemain? 1: -1;

ballvelY = 1;

clearScreen ();

kelewatan (1000);

paparanBall ();

piksel.show ();

kelewatan (1000);

paparanPaddle1 ();

paparanPaddle2 (); piksel.show (); kelewatan (2000); }

Langkah 7: Penamat

Penamat
Penamat

Setelah memuat naik kod, lubang lubang di panel belakang cukup besar untuk penyesuai kuasa tong tong anda. pasangkannya ke arduino dan akhirnya memasang semula bahagian belakang.

Saya juga memasukkan senarai bahagian akrilik penyebar LED yang kini boleh anda letakkan di atas LED dan lekatkan ke bawah

Setelah anda melakukan ini, anda sudah bersedia untuk bermain dan menikmati permainan persaingan berjam-jam dengan keluarga dan rakan-rakan.

Akhir sekali saya ingin mengucapkan tahniah kepada anda kerana menyelesaikan projek ini.

Sekiranya anda mempunyai masalah, hubungi saya di sini dan saya ingin membantu menyelesaikan masalah ini.

Disyorkan: