Proses manufaktur
| × | 1 |
|
Pendahuluan
Pertama, katakan yang sudah jelas:kami suka membuat kostum keluarga.
Tahun lalu kami membuat "alien" luar angkasa yang benar-benar lebih mirip orang yang berpakaian perak dengan aksen strip LED. Kami sangat menyukai LED karena unik dan membuat anak-anak mudah dilihat saat mereka berlarian di malam hari. Kami memutuskan untuk melakukan sesuatu yang menyala lagi, tetapi tidak yakin apa. Putri saya yang menyarankan Pac-Man, karena dia baru saja memainkan permata Namco di arena bowling beberapa minggu sebelumnya. Hanya saran itu yang kami butuhkan. Itu adalah ide bagus dan kami harus mewujudkannya.
Perencanaan
Langkah pertama selalu perencanaan, tapi perlu diperhatikan, terutama jika Anda ingin melakukan karakter 8-bit yang berbeda.
Kami memilih karakter Pac-Man untuk keluarga. Pac-Man, Ms. Pac-Man, dan hantu Blinky dan Pinky. Saya ingin itu akurat dan autentik dengan karakter 8-bit asli, jadi saya mulai dengan mencari sprite game asli.
Ini membantu memastikan kami mendapatkan tata letak piksel piksel yang benar dan menunjukkan setiap bingkai animasi. Misalnya, Anda dapat melihat bingkai yang berbeda dari kaki hantu dan mulut Pac-Man pada sprite di atas.
Saya kemudian meletakkan setiap bingkai animasi di Excel sehingga kami tahu di mana jumlah LED dan tata letak keseluruhan setiap papan. Nomor individu LED diperlukan nanti untuk memprogram papan Arduino.
Anda dapat melihat dari tata letak bahwa Ghosts memiliki tinggi 14 piksel dengan lebar 14 piksel. Pac-Man berukuran 13x13 dan Ms.Pac-Man berukuran 14x14.
Setelah kita mengetahui lebar dan tinggi dengan piksel, kita harus memutuskan seberapa besar kita ingin membuat panel. Saya ingin mereka semua memiliki ukuran yang sama relatif satu sama lain. Artinya setiap piksel akan memiliki ukuran yang sama pada setiap kostum. Untuk mengukurnya dengan benar, kami mulai dengan memastikan ukurannya tepat untuk anggota keluarga terkecil, putraku. Saya mengukurnya dan mengangkat beberapa potongan karton untuk melihat ukuran berapa dia masih bisa dengan nyaman meletakkan tangannya dan masih berjalan. Kami berakhir di 22" sebagai ukuran tinggi dan lebar hantu.
Itu mengatur skala kami 22" / 14 piksel =1,57"/piksel.
Bahan
Kami ingin kostumnya relatif mudah dipakai, jadi kami memilih bahan yang ringan daripada yang tahan lama.
Pangkalan
Untungnya saya memiliki akses ke pemotong laser, jadi saya tahu saya akan menggunakannya untuk membuatnya. Anda tidak perlu pemotong laser Anda sendiri. Anda dapat mengirimkannya untuk dipotong oleh perusahaan yang melakukan pemotongan laser, atau Anda dapat menggunakan rute manual dan mencetak PDF dan meletakkannya di atas karton dan memotongnya dengan tangan.
Alasnya terbuat dari lembaran karton berukuran 1/8" yang dibeli dari toko seni/hobi setempat. Pemotong laser kami memiliki tempat tidur 32"x18", jadi saya meminta mereka memotong seprai hingga ukuran tersebut.
Panel Panel terdiri dari beberapa bagian utama:alas, bilah, penutup, dan tali. Bagian dasar menahan LED, papan tulis memberikan piksel dan stabilitas keseluruhan panel, penutup menyebarkan cahaya, dan tali membuatnya portabel.
Pemodelan
Untuk membuat file untuk pemotong laser, saya membuat model dasarnya menggunakan Rhino. Saya memodelkan semua bagian panel dengan sangat akurat agar pemotong laser bekerja semaksimal mungkin.
Saya membuat setiap panel sehingga masing-masing sirip vertikal dan horizontal akan saling bergeser dan mereka akan berlekuk juga ke alasnya. Menyetelnya dengan cara ini memungkinkan bagian-bagian panel saling bergeser dan membentuk takik tanpa perlu banyak lem, sekaligus memastikan kita akan mendapatkan kotak yang sempurna untuk piksel.
Pemotongan Laser
Seperti disebutkan sebelumnya pemotong laser kami adalah 32"x18" sehingga file CAD yang saya buat untuk melakukan pemotongan laser diatur pada ukuran itu. Saya telah menambahkan file .dwg untuk kostum Ghost. Anda dapat menggunakannya untuk memotong sendiri dengan laser, atau Anda dapat mencetaknya dan menggunakannya sebagai template untuk memotong karton dengan tangan.
Jika Anda akan melakukannya dengan tangan, Anda dapat dengan mudah meletakkannya dan memotong potongan karton. Anda dapat mengukurnya sendiri, pikselnya sekitar 1,5" persegi dan kedalaman 2" dengan lubang 12mm di tengah untuk LED. Anda juga dapat menggunakan PDF yang disediakan sebagai template untuk memotong.
Perakitan
Basis harus dipotong menjadi dua bagian karena ukuran kecil tempat tidur pemotong laser kami adalah 18", yang lebih kecil dari dimensi alas 22" x 22". Saya menggunakan selotip yang bagus pada sambungan untuk menyatukannya pada awalnya. Ini benar-benar untuk mempertahankannya saat menambahkan LED dan slat. Setelah slat ditambahkan ke alas, mereka memberikan dukungan dan stabilitas nyata.
Setiap bilah diberi label dengan memberi skor "H#" atau "V#" untuk Horizontal (H) dan Vertikal (V) dan nomor (#) yang berurutan. Bilah meluncur bersama dengan baik karena kami menambahkan jarak tambahan 1/32". Pengujian pertama saya menyisakan lebih sedikit ruang di mana mereka meluncur bersama dan membuat tidak mungkin untuk menyatukan semuanya. Setelah semua digeser bersama, kami meletakkan bilah di alas Mereka berlekuk di mana tanda plus berbentuk lubang di pangkalan. Setelah itu di pangkalan, saya menempelkan bilah ke alas di ujungnya. Kemudian saya menambahkan manik kecil lem panas di sudut kiri atas tempat bilah bertemu untuk menjaganya tetap di tempatnya dan memastikannya tidak tergelincir.
Takik untuk bilah memanjang melalui alas sehingga ada tab kecil di bagian belakang alas. Saya juga menambahkan manik lem panas ke tab ini untuk menjaga bilah tetap aman di alasnya.
Setelah dipikir-pikir
Seperti yang Anda lihat dalam diagram model 3d, saya tidak merencanakan penutup di bagian belakang panel. Ini adalah kesalahan! Saya melihat ini beberapa jam sebelum centang-atau-perawatan dan saya buru-buru memotong 2,5" karton strip dan menambahkannya ke bagian belakang panel. untuk memberikan sesuatu selain kabel LED untuk bersandar pada tubuh.
Ini membantu, tetapi sebenarnya itu seharusnya tertutup sepenuhnya. Saat berjalan-jalan dengan panel dengan bagian belakang terbuka, LED cenderung masuk. Anda dapat melihat di beberapa gambar di mana piksel tidak lagi benar-benar piksel, tetapi lampu titik. Di sinilah LED didorong atau jatuh. Saya menghentikan keluarga beberapa kali untuk memperbaikinya sepanjang malam atau mencentang-atau-mengobati.
Tata Letak LED
Perencanaan untuk string LED terjadi di Excel di mana saya meletakkan 170 LED individu dalam urutan 0-169 untuk Ghosts.
Tata Letak Excel
Hal penting yang perlu diperhatikan adalah jarak antara piksel dan titik awal.
Jika Anda tidak ingin memotong dan memasang kembali lampu yang sudah dipasang sebelumnya, Anda perlu memastikan bahwa Anda dapat menjangkau dari satu lubang ke lubang lainnya secara berurutan. Dalam kasus saya, jarak antara masing-masing LED pada bundel yang dipasang sebelumnya adalah sekitar 3 inci (75mm). Ini berarti piksel harus berdekatan satu sama lain saat meletakkannya.
Untuk titik awal, pastikan lokasinya dekat dengan tempat Anda dapat memasang Arduino dan catu daya.
Menempatkan LED
Mengikuti pola yang ada di Excel, kami mendorong LED dari belakang ke tempatnya di karton.
LED memiliki flensa kecil yang membuat mereka tetap di tempatnya. Saya menemukan bahwa kardusnya agak tipis sehingga LED sedikit bergerak ketika berjalan-jalan. Jika Anda ingin menyimpannya di tempatnya dengan lebih aman, Anda bisa mengoleskan lem panas di atasnya.
Pengkabelan
Sumber Daya
Cara terbaik untuk menyalakannya adalah dengan baterai isi ulang 5V DC (alias:pengisi daya telepon portabel). Kemudian gunakan adaptor USB ke DC untuk dicolokkan ke lampu Anda yang sekarang harus disambungkan dengan adaptor DC perempuan.
Saya membuat kesalahan dan menggunakan Paket Baterai 8xAA dengan sakelar Nyala/Mati yang saya miliki dari kostum tahun sebelumnya. Hanya saat menulis ini saya menyadari itu memiliki output 12V dan saya menggunakan LED 5V. (Saya bukan ahli bedah roket tapi saya pikir ini buruk). Karena saya memiliki baterai, saya hanya mengambilnya dan mencolokkannya dan semuanya bekerja dan saya tidak menebaknya \_(ツ)_/¯
Cukup menarik bahwa paket baterai yang saya gunakan hanya memberi kami waktu sekitar 2 jam. Setelah mengetahui bahwa itu adalah catu daya yang salah untuk panel, saya menguji panel dengan pengisi daya telepon portabel 5VDC yang benar dan itu bertahan lebih lama.
Saya menguji pengisi daya portabel 2200 mAh dan 7800 mAh dan panel masing-masing berjalan selama 3 jam 40 m dan 12 jam 43 m. Artinya, dengan "pengisi daya lipstik" yang murah, Anda bisa mendapatkan hampir 4 jam tepat waktu.
LED
Saya menggunakan string 12mm WS2811 LED yang dapat dialamatkan secara individual untuk signage luar ruangan. Saya membelinya di Amazon dan jumlahnya berjumlah 50.
Pengkabelan
Pengkabelan daya ke lampu dan kemudian ke papan dilakukan seperti yang ditunjukkan pada diagram dan foto.
Lead LED pada string pertama memiliki daya dalam sambungan, ada dua kabel (panas/merah dan ground/putih). Ini terhubung ke adaptor colokan listrik wanita. Catu daya dicolokkan ke adaptor ini. Kemudian kita sambungkan daya, ground, dan data dari LED pertama yang terhubung ke koneksi 5v dan GND di Arduino dan kabel DATA (tengah) terhubung ke 3 PIN di board.
Pastikan Anda memeriksa rangkaian LED Anda sebelum memasangnya. Kabel LED saya berwarna Merah(5V), Hijau (DATA), Putih(GND), tetapi kabel Anda mungkin berbeda.
Kode
Setelah Anda memasang semua kabel, lampu tidak akan melakukan apa pun saat Anda mencolokkannya. Mungkin lampu akan berkedip sebentar. Mereka perlu diberi tahu apa yang harus dilakukan terlebih dahulu dan beginilah cara saya melakukannya.
Saya tidak membahas cara memprogram papan Arduino. Jika Anda tidak tahu bagaimana melakukannya, ada artikel bagus di Situs Web Arduino:Memulai dengan Arduino
LED Cepat
Saya menggunakan perpustakaan FastLED untuk ini. Mudah digunakan dan mudah untuk menemukan contoh untuk membantu mencari tahu semuanya. Sangat berguna bahwa mereka menggunakan Warna Web sehingga Anda dapat menyetel LED apa pun ke warna apa pun dengan menggunakan namanya.
Kode Saya
Di bawah ini adalah kode Ghost, saya juga sudah mengupload file kode Arduino.
Garis dasar logika adalah untuk mengisi semua LED dengan warna utama, kemudian mengubah warna, dan mematikan set LED individu untuk membuat setiap "bingkai". Setelah kami memiliki satu set untuk setiap "bingkai" animasi, kami mengulanginya dengan kecepatan X X beberapa kali untuk membuat keseluruhan animasi. Mungkin ada cara yang lebih cerdas untuk melakukan ini, tetapi inilah cara saya melakukannya dan berhasil untuk saya.
Tambahkan Sampul
Saya sarankan meninggalkan penutup sampai akhir karena terbuat dari kertas dan dapat robek. Juga berguna untuk menjangkau LED dari depan saat Anda memasangnya atau melakukan penyesuaian.
Saya menggunakan gulungan kertas kalkir yang saya miliki tergeletak di sekitar. Saya cukup yakin itu vellum, tapi mungkin mylar. Apa pun yang Anda inginkan, gunakan kertas tembus pandang yang cukup lebar untuk menutupi semuanya sehingga Anda tidak perlu berurusan dengan jahitan. Anda bisa mendapatkan gulungan kertas kalkir di toko seni atau online.
Untuk menjaga kertas tetap di tempatnya, saya meletakkan garis lem Elmers tua biasa di sepanjang tepi atas sirip vertikal. Saya tidak melakukan yang horizontal karena yang Anda butuhkan hanyalah kertas tetap di tempatnya. Menjaga kertas tetap menempel memastikan kisi-kisi terbaca dan membuat panel terlihat seperti piksel individu.
Setelah Anda mendapatkan lem, letakkan kertas di atasnya dan letakkan buku atau sesuatu yang berat di atasnya agar lem tetap di tempatnya dan biarkan lem menempel.
Setelah lem mengeras, Anda dapat memotong sisa kertas. Sisakan sedikit kertas di sekitar tepinya untuk dilipat dan direkatkan, ini membantu memastikan tepinya tidak terkelupas atau terlepas.
Siap Jalan
Untuk langkah-langkah penyelesaian, kami menyiapkannya untuk digunakan di jalan.
Untung
Setelah semuanya selesai, Anda dapat mengirim keluarga 8-bit Anda ke lingkungan sekitar untuk mengesankan para tetangga dan mengumpulkan keuntungan permen manis Anda.
Terima kasih sudah membaca! Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya!
//ANIMATED PACMAN GHOST LED#include "FastLED.h"#define NUM_LEDS 170#define DATA_PIN 3CRGB leds[NUM_LEDS];void setup() { delay(2000); FastLED.addLeds(led, NUM_LEDS); FastLED.setBrightness(40); //Nomor 0-255 FastLED.clear();}//melihat ke kiriint eyes_pixels_l[] ={17, 20, 21, 24, 37, 38, 39, 40, 41, 47, 48, 49, 94, 102, 103, 106, 119, 120, 121, 122, 123, 129, 130, 131};int pupil_pixels_l[] ={15, 16, 22, 23, 92, 93, 104, 105};//tampak kananint eyes_pixels_r[ ] ={38, 39, 40, 46, 47, 48, 49, 50, 63, 66, 67, 75, 120, 121, 122, 128, 129, 130, 131, 132, 145, 148, 149, 152 };int pupil_pixels_r[] ={64, 65, 76, 77, 146, 147, 153, 154};//menghapus piksel di sekitar kakiint void_pixels_1[] ={8, 29, 30, 31, 83, 84, 85, 86, 138, 139, 140, 161};int void_pixels_2[] ={7, 31, 55, 56, 57, 112, 113, 114, 138, 162};int sad_ghost[] ={11, 26, 35, 48, 49, 53, 60, 64, 65, 80, 89, 104, 105, 109, 116, 120, 121, 134, 143, 158};int eyes_seconds =2;int reg_ghost_seconds =10;int feet_delay =120; //penundaan dalam ms b/w kaki v1 v2int eye_loop =(eyes_seconds*1000)/feet_delay; // berapa kali melihat ke kiri dan ke kanan sebelum beralih int reg_ghost_loop =reg_ghost_seconds/eyes_seconds; int sad_ghost_loop =50;int sad_ghost_blink_loop =10;void loop() { for(int i =0; i MsPacmanArduino
//ANIMATED MS PACMAN LED#termasuk "FastLED.h"#menentukan NUM_LEDS 151#menentukan DATA_PIN 3CRGB leds[NUM_LEDS];void setup() { delay(2000); FastLED.addLeds(led, NUM_LEDS); FastLED.setBrightness(40); //Nomor 0-255 FastLED.clear();}int void_pixels_opened[] ={6,7,22,23,24,25,26,27,28,29,30,43,44,45,46,47 ,48,49,50, 51,52,53,54,55,56,57,58,68,69,70,71,72,73,74,75,76,77, 78,79,80,81 ,82,83,84,85,86,98,99,100,101,102,103,104, 105,106,107,108,109,127.128,129,130,131,132};int void_pixels_mid[] ={5,150,45,46,47,48,49,50,51,52,53,54,55,56, 57,58,68,69,70,71,72, 73,74,75,76,77,78,79,80,81,82,83,84,85,100,101,102,103,104};int void_pixels_closed[] ={5,150}; int red_opened [] ={92,93,115,116,117,118,119,121,137,138,140,141,142,143,144,145,5,8,133,150}; int red_mid [] ={92,93,115,116,117,118,119,121,137,138,140,141,142,143,144,145,27,26,105,106}; int red_closed [] ={92,93,115,116,117,118,119,121,137,138,140,141,142,143,144,145,50,76,77,78}; int blue_opened[] ={120,139,96};int blue_mid[] ={120,139,97};int blue_closed[] ={120,139};int black_opened[] ={40,95,111,112,124};int black_mid[] ={40,96,110,111 };int black_closed[] ={40,95,96,97,98};int frame_rate_ms =100;void loop() {//----MULUT TERBUKA- ---////fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow);//hapus mulut untuk (int i =0; saya <64; i++){ leds[void_pixels_opened[i]] =CRGB::Black;}//set redfor (int i =0; i <20; i++){ leds[red_opened[i]] =CRGB::Red;}// set bluefor (int i =0; i <3; i++){ leds[blue_opened[i]] =CRGB::Blue;}//set blackfor (int i =0; i <5; i++){ leds[black_opened[ i]] =CRGB::Ungu;}FastLED.show();delay(frame_rate_ms);//----MOUTH MID----////fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow); //hapus mouthfor (int i =0; i <39; i++){ leds[void_pixels_mid[i]] =CRGB::Black;}//set redfor (int i =0; i <20; i++){ leds[ red_mid[i]] =CRGB::Red;}//set bluefor (int i =0; i <3; i++){ leds[blue_mid[i]] =CRGB::Blue;}//set blackfor (int i =0; i <4; i++){ leds[black_mid[i]] =CRGB::Ungu;}FastLED.show();delay(frame_rate_ms);//----MULUT TUTUP----/// /fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow); //mouthfor (int i =0; i <2; i++){ leds[void_pixels_closed[i]] =CRGB::Black;}//set redfor (int i =0; i <20; i++){ leds[red_closed [i]] =CRGB::Red;}//set bluefor (int i =0; i <2; i++){ leds[blue_closed[i]] =CRGB::Blue;}//set blackfor (int i =0; i <5; i++){ leds[black_closed[i]] =CRGB::Ungu;}FastLED.show();delay(frame_rate_ms);//----MOUTH MID----//// isi bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow);//hapus mouthfor (int i =0; i <39; i++){ leds[void_pixels_mid[i]] =CRGB::Black;}//set redfor (int i =0; i <20; i++){ leds[red_mid[i]] =CRGB::Red;}//set bluefor (int i =0; i <3; i++){ leds[blue_mid[i]] =CRGB::Blue;}//set blackfor (int i =0; i <4; i++){ leds[black_mid[i]] =CRGB::Purple;}FastLED.show();delay(frame_rate_ms);} PacmanArduino
//ANIMATED PACMAN LED#termasuk "FastLED.h"#menentukan NUM_LEDS 137#menentukan DATA_PIN 3CRGB leds[NUM_LEDS];void setup() { delay(2000); FastLED.addLeds(led, NUM_LEDS); FastLED.setBrightness(40); //Nomor 0-255 FastLED.clear();}int void_pixels_opened[] ={19,20,21,22,23,24,25,26,27,28,29,42,43,44,45,46 ,47,48,49,50,51,52,53,54,55, 56,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80 ,81,82,94,95,96,97,98,99,100, 101,102,103,104,105,121,122,123,124,125,126};int void_pixels_mid[] ={46,47,48,49,50,51,52,53,54,66,67,68, 69,70,71,72,73,74,75,76,77,78,79,80,98,99,100};int frame_rate_ms =100;void loop() {//----MULUT TERBUKA--- -////fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow);//hapus mouthfor (int i =0; i <61; i++){ leds[void_pixels_opened[i]] =CRGB::Black;}FastLED .show();delay(frame_rate_ms);//----MOUTH MID----////fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow); //hapus mouthfor (int i =0; i <27; i++){ leds[void_pixels_mid[i]] =CRGB::Black;}FastLED.show();delay(frame_rate_ms);//----MULUT TUTUP ----////fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow); FastLED.show();delay(frame_rate_ms);//----MOUTH MID----////fill bodyfill_solid(leds, NUM_LEDS, CRGB::Yellow); //hapus mulut untuk (int i =0; i <27; i++){ leds[void_pixels_mid[i]] =CRGB::Black;}FastLED.show();delay(frame_rate_ms);} Suku cadang dan penutup khusus
File untuk memotong kostum hantu dengan laser dari karton 1/8". Ini disiapkan untuk ukuran tempat tidur pemotong laser 32" x 18". ghostlaser-1_8th_v5_feTmMAM4r0.dwgFile DWG pemotong laser untuk Ms. Pacman dan Pacman pacman-mspacman-laser_KVFskMrPk4.dwgSkema
Cara memasang LED, Ardunio, dan daya portabel
Proses manufaktur
Komponen dan persediaan Arduino Yun × 1 Arduino UNO atau papan Arduino lainnya × 1 Sensor Ultrasonik - HC-SR04 (Generik) × 1 DS3231 RTC Jam Waktu Nyata × 1 LED (generik) 1 x LED Merah, 1 x LED Kuning, 1 x LED Hijau × 3 Resistor 330 ohm × 3
Komponen dan persediaan Arduino Nano R3 × 1 Maxim Integrated DS3231M - ±5ppm, I2C Real-Time Clock × 1 Sakelar Tombol Tekan, Sesaat × 2 Modul matriks led 32x8 × 1 Alat dan mesin yang diperlukan Besi solder (generik) Aplikasi dan layan
Komponen dan persediaan Arduino Nano R3 × 1 LED 5 mm:Merah × 1 LED 5 mm:Hijau × 1 LED (generik) × 1 Resistor 2K × 1 Kabel × 1 Alat dan mesin yang diperlukan Besi solder (generik) Pistol lem panas (generik)
Panel sentuh kapasitif banyak digunakan pada smartphone sejak Apple meluncurkan iPhone 4. Selama bertahun-tahun, panel sentuh tumbuh lebih cepat dari yang kami duga. Ada beberapa perkembangan baru di bidang panel sentuh. Dan beberapa dari mereka mungkin menjadi titik balik kehidupan kita sehari-har