Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Kubus LED 5x5x5

Komponen dan persediaan

Arduino Mega 2560
× 1
LED Biru
× 125
Transistor NPN NTE85
× 5
kawat tembaga kaleng 22 gauge
Digunakan untuk mengikat lapisan bersama-sama dan membawa lapisan katoda ke papan utama
× 1
Resistor 180 ohm, 1/4 watt
× 25
papan prototipe 9 cm x 15 cm
× 1
resistor 330 ohm, 1/4 watt
× 5
Opsional - catu daya 9 volt untuk MEGA
Kabel USB akan memberi daya pada kubus ini dengan baik, tetapi jika Anda ingin mencolokkannya, berikut adalah persediaannya
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)
Pistol lem panas (generik)
Blue Tack
Digunakan untuk menahan LED pada tempatnya selama penyolderan

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

PENDAHULUAN

Kebanyakan orang menyukai kubus LED, tetapi kubus besar, seperti 8x8x8, membutuhkan banyak pekerjaan untuk membangun dan memprogram. Yang kecil (3x3x3 atau 4x4x4) mudah dibuat, baik karena tidak memerlukan LED dalam jumlah besar, tetapi juga karena tidak memerlukan perangkat keras eksternal seperti register geser dan driver sisi tinggi untuk mengelola kubus. Tapi mereka benar-benar tidak sama dengan kubus besar.

Tujuan saya sejak awal proyek ini adalah untuk membuat kubus yang mudah dibuat dan kemudian membuat perangkat lunak yang cukup keren untuk memungkinkan Anda menikmati nuansa kubus besar tanpa semua pekerjaan yang diperlukan untuk membangun kubus besar. Jadi ini adalah kubus 5x5x5 yang dapat ditenagai langsung oleh Arduino Mega tanpa register geser dari perangkat keras tambahan apa pun selain 5 transistor (digunakan untuk menarik seluruh lapisan - katoda dari 25 LED, ke ground). Mengapa saya ingin menghindari register geser? Karena mereka benar-benar mengerikan untuk menangani kawat. (Saya sudah mencobanya.) Anda benar-benar perlu mendesain dan membuat papan PC jika ingin menggunakannya.

Saya telah menulis banyak kode untuk kubus besar di masa lalu, jadi saya telah mengadaptasi banyak animasi kubus yang ada untuk dijalankan pada kubus 5x5x5 ini.

Ini sebenarnya yang pertama dari tiga proyek seperti ini. Yang ke-2 ada di sini. Ini adalah kubus RGB 5x5x5, sangat mirip dalam desain dengan kubus ini, tetapi lebih sulit untuk dibangun. Yang ketiga ada di sini - kubus warna tunggal 8x8x8, sekali lagi dengan perangkat keras eksternal minimum.

CATATAN:Sebelum saya melangkah lebih jauh di sini, saya bukan orang pertama yang menyarankan kubus 5x5x5 bertenaga MEGA. MEGA DAS menerbitkan proyek serupa di sini pada tahun 2017. Perangkat keras di kedua proyek hampir identik. Saya belum melihat sebelumnya sampai saya memulai penulisan ini, jadi pinout saya berbeda, dan resistor nilai adalah berbeda, tetapi sebaliknya, perangkat kerasnya hampir sama. Saya menerbitkan ini sebagian besar karena saya memiliki banyak pengalaman menulis perangkat lunak kubus. Saya berharap perangkat lunak saya akan meyakinkan beberapa orang untuk membuat kubus yang mungkin tidak!

Video di atas adalah fungsi gelombang sinus dimana amplitudo berada pada sumbu z dan waktu direpresentasikan sebagai jarak horizontal dari pusat kubus. Ini klasik yang mengagumkan di kubus besar, tapi tidak terlalu buruk di 5x5x5 ini!

Saya menyertakan dua video lainnya. Keduanya adalah hal yang sama - 14 animasi untuk kubus 5x5x5. Saya tidak yakin mana yang lebih baik, jadi saya menyertakan keduanya. Dan jika tidak jelas, kubus terlihat jauh lebih keren secara langsung daripada di video!

PERANGKAT KERAS

Mega memiliki banyak pin IO digital. Kami menggunakan 5 untuk menarik katoda untuk setiap lapisan rendah, dan 25 lebih untuk mendorong anoda tinggi untuk masing-masing dari 25 LED dalam lapisan. Menggunakan pendekatan ini, Mega sebenarnya memiliki cukup pin IO untuk membuat kubus 6x6x6. Tapi pertimbangan lain, jika kita mencoba untuk tetap sederhana ini adalah kekuatan. Batas Mega saat ini adalah 40 ma per pin, dan total 200 ma pada semua pin. LED biru memiliki penurunan maju sekitar 3 volt, transistor katoda umum kami turun lagi 0,7 volt. Jadi dengan suplai 5 volt dan resistor 180 ohm, setiap LED akan menarik 7,2 ma. 25 LED/lapisan menarik 180ma jika semuanya menyala sekaligus. Kami hanya menyalakan satu lapisan pada satu waktu, jadi kami memenuhi semua batasan Mega saat ini, selama kami menggunakan transistor NPN untuk menarik semua katoda dalam satu lapisan ke ground. Arus basis ke salah satu transistor itu menambah 5 ma lagi ke total beban pada Mega, tetapi kami mempertahankan totalnya di bawah 200 ma. sekitar 185 ma. Jadi, untuk semua alasan di atas, saya memilih resistor 180 ohm untuk dipasangkan dengan LED kami.

Bagan di atas menunjukkan bagaimana pin digital Mega terhubung ke kubus. Pin 22 - 26 adalah 5 pin yang menggerakkan transistor yang menghubungkan katoda LED ke ground. Pin 27-51 melewati resistor 180 ohm ke anoda dari 25 LED dalam satu lapisan.

Anda mungkin bertanya-tanya mengapa pengaturan pinout ini terlihat sedikit membingungkan. Perangkat lunak saya menggunakan akses port langsung daripada digitalWrites untuk mengonfigurasi anoda, yaitu, untuk mengatur masing-masing dari 25 LED dalam satu lapisan, hidup atau mati. Ini menghemat banyak waktu dan berarti LED menyala lebih lama daripada jika Anda menghabiskan banyak waktu melakukan digitalWrites. Jadi pinouts diatur sedemikian rupa untuk membantu mengatur referensi ke port digital ini daripada nomor pin yang sebenarnya. Lebih lanjut tentang semua itu ketika kita masuk ke perangkat lunak.

KONSTRUKSI KUBUS

Ada banyak pendapat tentang cara membuat kubus, terlepas dari ukurannya. Tugasnya membosankan tidak peduli apa pendekatan Anda. Dan Anda harus melatih perhatian dan kesabaran untuk mendapatkan hasil yang baik. Saya akan menunjukkan kepada Anda bagaimana saya membuat yang ini, tetapi ada instruksi lain secara online jika Anda mau.

Konstruksi kubus ini dimulai dengan membentuk timah dan menyolder LED bersama dalam 5 kolom. Kemudian panel dibentuk dengan menyolder bersama 5 kolom, dan terakhir kubus dibentuk dengan menyolder bersama 5 panel. Orang yang belum pernah membuat kubus tidak menyadari betapa sulitnya membangun kubus yang sempurna. Kesalahan kecil dalam sudut timah dengan cepat menumpuk dan bahkan perbedaan kecil dalam jarak dapat terlihat dengan mudah. Jadi langkah pembentukan timbal sangat penting. Jika Anda meluangkan waktu dan melakukannya dengan benar, Anda tidak akan mendapatkan kubus yang sempurna, tetapi Anda akan mendapatkan kubus yang terlihat masuk akal.

Anoda adalah ujung LED yang lebih panjang dan turun, tetapi harus ditekuk ke samping LED sehingga barisan vertikal anoda LED dapat disolder bersama. Offset anoda dan kabel katoda harus saling bersudut 90 derajat, seperti yang ditunjukkan dalam foto ini.

Saya pribadi menemukan pembentukan timah membosankan dan keras di tangan, jadi saya memimpin membentuk 25 LED dan kemudian membangun sebuah panel. Anda akan membutuhkan semacam jig untuk membuat kolom dan panel. Saya melakukan jigging ini menggunakan BlueTack, perekat yang dapat digunakan kembali. LED dapat ditekan ke BlueTack dan tetap di tempatnya saat kolom dan panel disolder. Lekukan memungkinkan Anda untuk mengulangi proses ini dengan jarak yang sama persis. Penting pertama kali melalui untuk mengukur semuanya dengan sangat hati-hati. Saya menggunakan jarak 0,6 inci antara LED di ketiga arah, memungkinkan kubus jadi saya untuk dimasukkan ke papan dengan jarak lubang standar 0,1 inci.

Catatan tentang menyolder LED bersama :Setiap mimpi buruk pembuat kubus adalah membuat kubus semua dibangun dan kemudian menemukan sambungan solder dingin di bagian dalam kubus di mana Anda tidak bisa melakukannya lagi! Berhati-hatilah saat Anda pergi untuk memastikan sambungan solder baik pada setiap kolom LED yang Anda buat.

Ketika Anda menyelesaikan setiap panel, sekarang saatnya untuk mengujinya. Sekali lagi, kami melakukan ini karena mengetahui tentang sambungan solder dingin atau LED yang buruk saat kubus Anda selesai akan menjadi bencana!

Dalam perangkat lunak, saya telah menyertakan sketsa kecil yang menguji panel. Untuk melakukan pengujian ini, Anda perlu menghubungkan 5 ujung anoda vertikal ke 5 resistor (330 ohm atau sejenisnya) dan kemudian resistor tersebut ke pin 40-44 (kolom 0 pin anoda). Kemudian sambungkan 5 pin katoda ke pin yang biasanya digunakan untuk menggerakkan katoda, pin 22-26. Panel yang bagus akan terlihat seperti video di atas. (Sebagai catatan, kami belum menggunakan transistor untuk menggerakkan katoda, jadi tes rutin kecil ini mendorong katoda rendah untuk menyalakan LED. Setelah transistor dipasang, kami akan melakukan yang sebaliknya, yaitu menggerakkan katoda tinggi untuk memutar pada transistor yang kemudian menarik katoda rendah.)

Ketika kami memiliki 5 panel yang dibangun dan diuji, kami siap untuk merakit kubus, tetapi pertama-tama, kami harus menyiapkan papan dengan memasukkan dan menghubungkan semua resistor dan transistor yang diperlukan.

Saya menempatkan resistor 180 ohm tepat di sebelah setiap kolom anoda dan transistor katoda dan resistor dasarnya di ruang antara kubus dan Mega. Sekali lagi, jarak antar kolom anoda adalah 0,6 inci di kedua arah, jadi 5 lubang kosong di papan antara setiap lubang dengan kolom anoda.

Sekarang adalah saat yang tepat untuk memasang Arduino di papan tulis. Itu dapat dipasang di kebuntuan jika Anda memilikinya. Saya sebenarnya hanya menggunakan sepotong kecil plastik dan sedikit lem untuk menempelkan Mega saya sekitar 1/4 inci di atas papan.

Panel masing-masing terpasang ke papan utama pada titik ini. Pastikan setiap kolom anoda benar-benar berada di lubang yang benar sebelum Anda menyolder, karena kesalahan satu lubang pun akan terlihat di kubus jadi Anda. Dan pastikan untuk menjaga semua panel menghadap ke arah yang sama, mis. semua kabel katoda keluar dari sisi yang sama.

Selanjutnya kita perlu menghubungkan panel satu sama lain di setiap lapisan, sehingga semua katoda di lapisan tertentu terhubung. Ini dilakukan dengan sepotong kawat tembaga kaleng yang diluruskan yang menghubungkan lima garis katoda dalam satu lapisan.

Selanjutnya, kami siap untuk menghubungkan katoda dari setiap lapisan ke papan utama. Lingkaran pada gambar di atas menunjukkan di mana katoda dari setiap lapisan terhubung dan dibawa ke kolektor transistor. Sekali lagi, kami menggunakan sepotong kawat tembaga kaleng yang diluruskan.

Setelah Anda menghubungkan semua kabel dari resistor ke Mega, kami akhirnya siap untuk menguji kubus yang sudah jadi. Dalam perangkat lunak, saya telah menyediakan sketsa untuk menguji kubus. Ini akan secara singkat menyalakan setiap LED dalam kubus secara berurutan. Karena Anda telah menguji setiap panel, masalah apa pun yang Anda lihat pada saat ini kemungkinan besar akan melibatkan koneksi katoda baru-baru ini. Jadi Anda mungkin menemukan satu lapisan tidak berfungsi atau bagian dari satu lapisan. Sekali lagi, kemungkinan besar Anda akan mengalami sambungan solder dingin jika ada masalah.

PERANGKAT LUNAK

Status setiap LED dalam kubus ditentukan oleh array byte global 5x5x5 yang disebut kubus[ ][ ][ ]. A 1 menandakan bahwa LED menyala, 0 artinya mati. Jadi semua animasi kubus dibuat dengan menempatkan 1 dan 0 dalam kubus[ ][ ][ ].

Inti dari setiap perangkat lunak kubus adalah interupsi waktunya yang menyegarkan kubus. Rutin interupsi saya dimulai di setup() dan kemudian berada di akhir program. Itu dipanggil setiap 10 mdtk. dan membutuhkan waktu sekitar 6 msec. untuk menyegarkan kubus. Itu menyisakan 4 mdtk. antara setiap penyegaran untuk eksekusi hal-hal di loop utama.

Selama penyegaran, setiap lapisan dihidupkan selama 1,2 mdtk. Penyegaran terjadi 100 kali per detik. Jadi setiap LED individu yang dihidupkan akan menyala selama 120ms/detik atau siklus kerja 12%. 100 kali per detik cukup cepat untuk membuat mata manusia melihatnya terus menerus, dan siklus kerja 12% sudah cukup untuk membuat lampu LED cukup terang, tidak sebanyak jika menyala terus menerus, tetapi secara mengejutkan mendekati itu .

Untuk menjaga siklus penyegaran sesingkat mungkin dan untuk memaksimalkan waktu LED menyala, kami menghindari membuang-buang waktu perintah digitalWrite dan menggunakan akses port langsung untuk mengonfigurasi pin. Jika Anda melihat kode dalam rutin interupsi, Anda akan melihat 25 baris terpisah di mana port langsung ini digunakan, yang tidak terlihat sangat cantik, tetapi sebenarnya, jauh, jauh lebih cepat daripada beberapa baris kode yang mungkin digunakan untuk mengatur pin dengan digitalWrite.

Loop() hanya memanggil setiap animasi, menelusuri daftar dan kemudian memulai dari awal. Animasi masing-masing dalam subrutin sendiri. Beberapa rutinitas animasi memanggil rutinitas lainnya. Lihat kode itu sendiri untuk penjelasan berbagai animasi. Ada juga beberapa rutinitas utilitas yang digunakan oleh semua animasi, seperti clearCube() yang mematikan semua LED, atau copyDown(); yang menggeser konten setiap lapisan ke bawah ke lapisan di bawahnya, lalu menghapus lapisan atas.

Ada tiga sketsa berbeda yang dapat Anda unduh. Yang utama berisi 15 animasi yang Anda lihat di video. Tes panel dan sketsa tes kubus hanya digunakan untuk menguji kubus Anda selama konstruksi.

Kode

  • Perangkat Lunak Kubus 5x5x5
Perangkat Lunak Cube 5x5x5Arduino
Berisi 3 sketsa:Uji Panel, Uji Kubus,
dan Pertunjukan dengan 15 animasi
Tanpa pratinjau (hanya unduhan).

Suku cadang dan penutup khusus

Benar-benar opsional, tetapi Anda memiliki akses ke printer 3D dan menginginkan kotak yang Anda lihat di video saya, ini dia:

Skema

Skema dasar-dasarnya Menampilkan hubungan yang tepat antara kubus dan Mega

Proses manufaktur

  1. Papan Setrika
  2. Kubus Rubik
  3. Papan Sirkuit Cetak
  4. Papan selancar
  5. Light-Emitting Diode (LED)
  6. RaspiRobot Board V2
  7. Jam Kata Sederhana (Arduino)
  8. Coffin Dance Melody
  9. Papan Sakelar Sentuh Cerdas
  10. Arduino dengan Bluetooth untuk Mengontrol LED!