Daftar Isi:

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

Video: Mesin LED Strip Atari Pong Arcade: 8 Langkah

Video: Mesin LED Strip 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 LED Strip Atari Pong Arcade
Mesin LED Strip Atari Pong Arcade

Nama saya Gabriel Podevin dan ini adalah instruksi pertama saya. Saat ini saya adalah siswa sekolah menengah berusia 16 tahun yang suka membuat dan membangun sesuatu sambil sangat tertarik dengan elektronik, robotika, sirkuit, dan pemrograman. Saya harap Anda dapat menemukan intructable ini menemukan ini bermanfaat.

Dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana membuat Game Atari Pong bergaya retro di dalam kotak arcade retro. Anda dapat melihat video di atas untuk demo proyek, Anda juga dapat melihat proyek yang sudah selesai dan kasingnya sendiri dan dalam dua gambar. Di akhir instruksi ini saya akan menyelam lebih dalam ke kode dan cara mengeditnya untuk mempersonalisasikannya.

Daftar bagian dasar akan dibagi menjadi beberapa bagian: Alat, bagian perakitan, dan komponen

Alat-alat yang Anda perlukan akan mencakup yang berikut ini:

- Mengebor

- Besi Solder

- Obeng (sesuai dengan sekrup yang Anda putuskan untuk digunakan)

- Multimeter

- gergaji bersirkulasi, gergaji pita, atau pemotong laser apakah Anda memiliki akses ke satu?

-Pemotong kawat atau gunting

- Lem tembak

Bagian yang Anda perlukan untuk perakitan akan mencakup:

- Lem kayu

- 10 balok kayu berukuran satu inci kali satu inci

- lembar besar kayu lapis seperempat inci atau kayu pilihan

- 24 sekrup setengah inci panjangnya

- 14 x 6,5 inci plastik difusi led (opsional)

- pita listrik merah dan biru

Komponen yang akan Anda butuhkan adalah:

- 2 potensiometer 100k ohm

- 8 meter strip Led yang dapat dialamatkan secara individual (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-

- beberapa meter kawat atau beberapa warna kawat

- adaptor daya ac ke dc yang menghasilkan 6v melalui colokan jack barel

- 1 arduino uno r3

jika Anda tidak memiliki akses ke Arduino Uno R3 seperti saya, Anda dapat membuatnya seperti yang akan saya gunakan dalam proyek ini yang menggunakan prosesor atmel328-pu. Ikuti tautan ini untuk mempelajari cara membuat https://www.instructables.com/id/How-to-make-your-own-Arduino-board/ Anda sendiri

Jika Anda menggunakan arduino uno lanjutkan ke langkah pertama.

Langkah 1: Membangun Array LED

Membangun Array LED
Membangun Array LED
Membangun Array LED
Membangun Array LED
Membangun Array LED
Membangun Array LED

Langkah ini adalah langkah paling sederhana yang memakan waktu karena semua penyolderan harus Anda lakukan.

-untuk memulai, Anda membutuhkan sepotong kayu berukuran 10 3/4 inci kali 6 1/2 inci.

-setelah Anda memiliki sepotong kayu, ambil strip Led Anda dan potong 26 segmen setiap 10 led atau setiap 6 1/2 inci.

-setelah memotong segmen rekatkan ke kayu Anda secara vertikal seperti yang ditunjukkan pada gambar berikut yang ditunjukkan pada gambar pertama di atas.

-setelah Anda menempelkan strip dan membiarkannya mengendap, kami akan mulai menyolder.

-Anda akan membutuhkan tiga kawat berwarna berbeda

-itu harus disambungkan dengan semua positif yang terhubung ke satu kabel dan semua negatif terhubung ke satu kabel sementara kabel terakhir akan menyatukan strip yang dipimpin. Gambar kedua di awal langkah ini adalah diagram yang akan menunjukkan cara menyambungkan kabel.

-Akhirnya setelah Anda menyoldernya, Anda cukup membungkus strip listrik pada sambungan solder Anda dengan warna yang sesuai. seperti yang ditunjukkan pada gambar ketiga di atas.

-terakhir kita akan terhubung ke Arduino. input digital Anda atau kabel tengah Anda akan terhubung ke input digital Anda 6 pin dan ground Anda dan positif akan terhubung ke rel positif dan negatif di papan tulis.

Langkah 2: Kontrol Dayung

Kontrol Dayung
Kontrol Dayung
Kontrol Dayung
Kontrol Dayung
Kontrol Dayung
Kontrol Dayung

Untuk langkah yang sangat sederhana ini yang harus Anda lakukan adalah menyolder tiga kabel ke setiap potensiometer. jika Anda memegang potensiometer dengan titik solder menghadap jauh dari Anda, cabang kiri akan positif, cabang tengah menjadi output dan cabang kanan akan di-ground. seperti yang ditunjukkan pada diagram di atas

setelah Anda menyolder kabel, kami akan menghubungkannya ke Arduino. Anda positif dan negatif akan terhubung ke sana sesuai hujan positif dan negatif. Anda output kabel pada potensiometer akan terhubung ke input yang berbeda pada arduino. satu akan terhubung ke steker (A0) dan yang lainnya akan terhubung ke steker (A1).

Langkah 3: Memotong Kasing

Memotong Kasus
Memotong Kasus
Memotong Kasus
Memotong Kasus
Memotong Kasus
Memotong Kasus
Memotong Kasus
Memotong Kasus

bagian ini akan memberi Anda dimensi dan sudut pada apa yang perlu Anda potong

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

juga saat memotong bagian, ingatlah untuk memberi label pada bagian Anda

bagian dasar yang akan dipotong akan diberi label bottom, back, top, front top, front bottom…. ditunjukkan pada gambar di awal

dimensi bagian

- 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

- Depan bawah: 13 3/4 inci X 4 1/4 inci

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

- Atasan bagian dalam: 13 3/4 inci X 3 1/4 inci

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

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

- Panel LED belakang bagian dalam: 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 bagian panel samping. Anda juga perlu memotong dua bagian ini

Langkah 4: Perakitan Kasus

Perakitan Kasus
Perakitan Kasus
Perakitan Kasus
Perakitan Kasus
Perakitan Kasus
Perakitan Kasus

Pada titik ini dalam instruksi ini Anda hampir menyelesaikan semuanya. menempatkan Anda mungkin berpikir saya memiliki semua bagian ini dan guntingan apa yang harus saya lakukan dengan mereka. Langkah terakhir ini akan menginstruksikan Anda cara merakit kasing Anda.

-Hal pertama yang akan kita lakukan adalah mulai merakit kasing. di sinilah semua potongan kayu Anda dari langkah sebelumnya berguna.

-Untuk memulai perakitan kita akan membutuhkan 4 balok kayu berukuran 1x1x1 sebagai alasnya, dua panel samping, bagian belakang dan bagian bawah depan. letakkan 4 balok di setiap sudut bawah dan sisakan seperempat inci di antara tepi dan balok seperti yang ditunjukkan pada gambar kedua di awal langkah.

-selanjutnya Anda perlu mengebor beberapa lubang pilot melalui kayu dan balok. setelah Anda melakukan sekrup itu kemudian ke bawah.

-Selanjutnya kita akan memasang panel samping. Tempatkan panel pada celah seperempat inci di sisi luar blok. bor lubang pilot melalui panel samping dan balok kayu dan kencangkan panel. ulangi untuk sisi lainnya.

-Setelah menyelesaikan panel samping. kami akan memasang panel bawah depan. tempatkan panel rata dengan bagian bawah dan sisi bor lubang pilot ke dalam blok dan kencangkan panel.

-Akhirnya kita akan memakai kembali. lakukan hal yang sama seperti yang Anda lakukan dengan panel bawah depan dan kencangkan kembali.

-Pada titik ini Anda memiliki dasar untuk membangun dan pemahaman tentang bagaimana kami merakit kasus ini.

-Bagian selanjutnya ini sedikit lebih menantang karena Anda bekerja dengan area yang lebih kecil. untuk memulai kita akan membutuhkan semua bagian atas dan 6 blok.

-Letakkan apa yang telah Anda bangun sejauh ini di punggungnya dan letakkan balok di sudut seperempat inci dari atas. (seperti yang ditunjukkan pada gambar ketiga di awal)

-bor lubang pilot untuk sisi dan belakang dan kencangkan.

-sekarang kita akan merakit sisa bagian atas

-ambil panel atas Anda dan letakkan di blok bor lubang pilot dan kencangkan bagian atasnya. Setelah Anda Finlandia, putar rakitan Anda terbalik ***hati-hati*** dan letakkan blok di setiap sudut sejajar dengan tepi. bor lubang pilot dari panel samping dan kencangkan ke blok. balikkan casing ke atas dan bor lubang pilot melalui bagian atas ke dalam balok dan kencangkan.

-Bagian sarang ini sedikit rumit. Anda akan membutuhkan panel atas depan dan dua blok terakhir Anda. pertama bor lubang pilot ke blok sebelumnya melalui panel depan atas Anda dan kencangkan. Sekarang ambil dua blok terakhir dan letakkan di dalam di sudut dan kencangkan panel samping dan panel atas depan Anda ke blok. sekali lagi balikkan casing dan letakkan panel atas bagian dalam pada blok dan kencangkan.

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

langkah selanjutnya akan menjelaskan sisa perakitan.

Langkah 5: Menyelesaikan Majelis

Menyelesaikan Majelis
Menyelesaikan Majelis
Menyelesaikan Majelis
Menyelesaikan Majelis
Menyelesaikan Majelis
Menyelesaikan Majelis

Pada titik ini Anda hampir menyelesaikan kasing dan membangun hanya beberapa hal yang harus dilakukan dan Anda akan selesai.

Sekarang yang tersisa hanyalah memasang elektronik.

-Kami akan mulai dengan mengebor lubang ke panel dial Anda untuk potensiometer Anda. jangan ragu untuk mengebor lubang di mana Anda merasa akan nyaman. dalam kasus saya, saya telah menempatkan lubang 2 1/2 inci dari bawah dan 3 1/2 inci dari samping untuk kedua potensiometer.

-Setelah Anda mengebor lubang, kami akan memasang panel ini ke kasing. tetapi alih-alih memasangnya, kami akan menempelkannya cukup dengan menempelkan sejumlah besar lem di sepanjang tepi kasing dan letakkan panel di atas dan tahan dengan beberapa klem atau sesuatu yang berat.

-Setelah lem selesai mengering, kami akan memasukkan komponen elektronik. Tapi pertama-tama kita harus melepas panel belakang.

-Setelah bagian belakang terlepas, saya sarankan Anda meletakkan kasing di bagian depan agar lebih mudah untuk meletakkan LED dan komponen lain di dalamnya.

-Sekarang Anda memiliki bagian belakang, kami akan menempatkan potensiometer di dalam kasing dengan hanya memasukkannya melalui lubang yang baru saja kami bor dan menempatkan banyak lem panas.

***hati-hati***-Berhati-hatilah saat memasang rangkaian LED karena titik solder bisa rapuh.

-Sekarang kita telah mencapai bagian terpenting, memasukkan array yang dipimpin. cukup tempatkan papan seperti yang ditunjukkan pada gambar kedua.

-Setelah masuk, ambil panel dalam yang dipimpin dan letakkan di dalam kasing langsung di bawah panel belakang array LED. bagian ini mungkin cocok untuk saya. juga biarkan kering sebelum melanjutkan.

-Anda telah mencapai bagian terakhir. saya sarankan mengecat satu sisi bagian akhir ini (LED Belakang Dalam) hitam atau putih untuk kontras antara LED dan bagian ini.

-Kita akan tahu tempat ini tepat di belakang dukungan LED dan tekan ringan di bagian belakang LED agar tidak bergerak. setelah dimasukkan, oleskan lem di sepanjang tepi untuk mencegahnya bergerak. ditunjukkan pada gambar ketiga.

**** selamat Anda telah menyelesaikan seluruh perakitan !!!

lanjutkan ke langkah terakhir untuk mengkodekan game

Langkah 6: Kode

Selamat sekali lagi karena berhasil sejauh ini.

di bagian ini saya akan menunjukkan kepada Anda kode dan cara membuatnya berfungsi selain hal-hal dalam kode yang dapat Anda ubah dan sesuaikan.

tetapi sebelum kita masuk ke itu, Anda akan memerlukan (adafruit_NeoPixel-master) saya telah menautkan unduhan juga.

untuk menginstal master buka program arduino Anda

1. pergi ke sketsa

2. buka termasuk perpustakaan

3. klik (tambahkan perpustakaan zip)

4.pilih file (adafruit_NeoPixel-master) dan selesai

di bawah ini saya telah menempelkan kode untuk permainan.

#termasuk

#termasuk

bola panjangXab = 12;

bola panjangYabs = 4;

int bolaX;

int bola;

int ballvelX = 1;

int ballvelY = 1;

int indeks;

intfps = 50;

int lebar dayung = 3;

int paddlemax = 9 - lebar dayung + 1;

int knobseg = 1023 / (paddlemax);

int dayung1 = 4;

int dayung2 = 4;

#tentukan NUMPIXELS 260

#tentukan PIN 6

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

batalkan pengaturan() {

piksel.mulai();

Serial.begin(9600);

}

lingkaran kosong() {

jelasLayar();

updateBola();

updatePaddle1();

updatePaddle2();

tampilanBola();

tampilanPaddle1();

tampilanPaddle2();

piksel.tampilkan();

mendeteksi Tabrakan();

penundaan (fps);

}

batal hapus layar() {

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

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

}

}

batalkan updateBall() {

ballXabs += ballvelX;

ballYabs += ballvelY;

}

batal mendeteksi Collision() {

Serial.print(ballYabs);

Serial.print("");

Serial.println(dayung1);

if (ballvelX > 0 && ballXabs >= 25) { //tabrakan tembok kanan

Serial.println("TabrakanX");

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

}

if (ballvelX < 0 && ballXabs <= 0) { //tabrakan tembok kiri

Serial.println("TabrakanX");

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

}

if (ballvelY > 0 && ballYabs >= 9) { //tabrakan tembok atas

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

}

if (ballvelY < 0 && ballYabs <= 0) { //tabrakan dinding bawah

Serial.println("TabrakanY");

ballvelY *= -1;

}

//mendeteksi tabrakan dayung 2

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

{ //tabrakan tembok kanan

Serial.println("Tabrakan Paddle");

ballvelX *= -1;

}

//mendeteksi tabrakan dayung 1

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

{ //tabrakan tembok kanan

Serial.println("Tabrakan Paddle");

ballvelX *= -1;

}

}

batalkan updatePaddle1() {

int kenop = analogRead(A0);

dayung1 = putaran((panjang)kenop / (panjang)kenop);

}

batalkan updatePaddle2() {

int knob2 = analogRead(A1);

dayung2 = putaran((panjang)kenop2 / (panjang)kenop);

}

batal tampilanBola() {

bolaX = bulat(bolaXab);

bolaY = bulat(bolaYabs);

if (bolaX % 2 != 0) {

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

jika (bolaX != 0) {

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

}

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

}

if (bola != 9) { pixels.setPixelColor(indeks - 1, pixels. Color(30, 0, 0)); //sisi bawah warna bola

}

if (bola != 0) { pixels.setPixelColor(indeks + 1, pixels. Color(30, 0, 0)); //sisi atas bola warna

}

}

lain {

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

pixels.setPixelColor((9 - ballY) + 10 * (ballX - 1), pixels. Color(30, 0, 0)); //sisi kiri bola baris genap

}

jika (bolaX != 25) {

pixels.setPixelColor((9 - ballY) + 10 * (ballX + 1), pixels. Color(30, 0, 0)); //sisi kanan bola baris genap

}

jika (bolaY != 9) {

piksel.setPixelColor(indeks + 1, piksel. Warna(30, 0, 0)); //sisi bawah bola baris genap

}

if (bola != 0) { pixels.setPixelColor(indeks - 1, pixels. Color(30, 0, 0)); //sisi atas bola baris genap

}

}

piksel.setPixelColor(indeks, piksel. Warna(255, 0, 0)); ///pusat warna bola

}

batalkan tampilanPaddle1() {

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

}

}

batalkan tampilanPaddle2() {

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

}

}

batal skor1() {

resetBall(0);

}

batal skor2() {

resetBall(1);

}

void resetBall(pemutar int) {

penundaan (1000);

bolaXab = 12

; bolaYabs = 4;

ballvelX = pemain ? 1: -1;

bolaY = 1;

jelasLayar();

penundaan (1000);

tampilanBola();

piksel.tampilkan();

penundaan (1000);

tampilanPaddle1();

tampilanPaddle2(); piksel.tampilkan(); penundaan(2000); }

Langkah 7: Menyelesaikan

Menyelesaikan
Menyelesaikan

Setelah Anda mengunggah kode, bor lubang di panel belakang yang cukup besar untuk adaptor daya jack barel Anda. tancapkan ke arduino dan akhirnya pasang kembali.

Saya juga menyertakan pada daftar bagian akrilik diffuser LED Anda sekarang dapat menempatkannya di atas LED dan merekatkannya

Setelah Anda melakukan ini, Anda siap untuk bermain dan menikmati jam pertandingan kompetitif melawan keluarga dan teman.

Terakhir saya ingin mengucapkan selamat kepada Anda karena telah menyelesaikan proyek ini.

Jika Anda memiliki masalah hubungi saya di sini dan saya akan senang untuk membantu menyelesaikan masalah.

Direkomendasikan: