Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Oleh dmtinkdevIkuti Lainnya oleh penulis:
Proyek Fusion 360 »
Setelah membuat lampu Minecraft untuk anak saya yang berusia 7 tahun, adiknya menginginkan sesuatu yang serupa. Dia lebih menyukai SuperMario daripada Minecraft, jadi lampu malamnya akan menampilkan sprite videogame.
Proyek ini didasarkan pada proyek The Neoboard, tetapi bagian dapat dicetak 3d dan arduino tidak memerlukan kartu SD untuk membaca gambar (mereka dapat disimpan di dalam memori flash).
Perlengkapan
- 1x papan arduino (Uno atau Nano baik-baik saja)
- 2x filamen (hitam untuk bodi utama dan transparan untuk diffuser). Bahkan jika Anda menginginkan warna yang berbeda untuk stand Anda, Anda masih membutuhkan filamen hitam untuk bagian separator led. Saya telah menggunakan PLA.
- 1 tombol tekan
- 1 resistor 300-500 ohm (untuk pin input data strip)
- 1x 1000 F kapasitor (untuk melindungi strip dari perubahan arus yang tiba-tiba)
- 1 panel matriks led 16x16
- Bahan pembuat tipikal (lem, kabel dupont, konektor self-solder, sekrup M4, dll)
Langkah 1: Unduh Kode dan Proses Gambar Anda
Anda bisa mendapatkan kode dari repositori GitHub.
Sudah ada profil Platformio untuk papan Arduino Uno dan Nano di dalamnya.
Untuk memproses gambar, kami akan menggunakan Processing (GUI atau cli-tool akan berfungsi). Kode pemrosesan akan membaca gambar 16x16, dan mengonversi semua warna piksel ke array uint8 yang diurutkan seberapa biasanya matriks yang dipimpin terhubung.
Dalam 99% kasus untuk memproses gambar Anda dengan benar, Anda hanya perlu:
- Ubah nilainya menjadi variabel inputFilename dan outputFilename
- Salin konten file outputFilename dan tempelkan di dalam /src/sprite.h
Di dalam kode arduino Anda juga perlu mengubah
- Nilai untuk LEDS_PIN, BUTTON_PIN dan TOTAL_SPRITES
- Mungkin tipe led di konstruktor strip … tetapi seharusnya tidak umum
- Dan 'switch' di dalam fungsi changeSprite() untuk menampilkan semua gambar Anda
Seperti yang Anda lihat dalam deklarasi array, kami menggunakan kata kunci PROGMEM untuk menyimpan data dalam flash, bukan SDRAM. Dengan cara ini, kita tidak memerlukan SDCard untuk menyimpan informasi warna gambar.
Seperti yang Anda lihat pada gambar di atas, menyimpan kode dan 10 gambar SuperMario hanya membutuhkan sekitar 11kbyte, jadi ada banyak ruang untuk lebih banyak gambar (dan bahkan lebih jika Anda menggunakan papan MEGA2650).
Langkah 2: Cetak Semua Bagian
Saya telah merancang bagian-bagiannya menggunakan Fusion360. Anda dapat mengunduhnya dari:
Atau jika Anda hanya menginginkan file STL, tersedia di Thingiverse:
Penutup belakang tidak terlalu sulit untuk dicetak, dan dudukan hanya membutuhkan penyangga (tetapi tergantung bagaimana Anda menempatkannya, Anda akan memerlukan lebih banyak penyangga atau kombinasi printer/filamen yang dapat mencetak jembatan besar).
Untuk diffuser awalnya saya pikir menggunakan lembaran berlapis halus dan pola kurva Hilbert akan memberikan hasil terbaik, tetapi saya telah menguji berbagai kombinasi lapisan, resolusi, lembaran dan pola dan saya mendapatkan hasil terbaik menggunakan PLA transparan filamen dari BQ dengan pengaturan ini:
- lembar: lembar berlapis bubuk
- lapisan: 3
- resolusi: 0.2
- pola: bujursangkar
Tapi, tergantung pada filamen Anda, produsen led dalam matriks Anda, jarak dari diffuser ke led dan jika ada pemisahan penuh antara led Anda, hasil Anda mungkin berbeda. Jangan tanya kenapa saya jadi ahli di micro-niche ini:)
Saya telah menggunakan opsi PrusaSlicer untuk mengubah warna secara manual selama pencetakan untuk beralih antara filamen transparan dan hitam, jadi saya memiliki diffuser dan pemisah led di satu bagian (tidak perlu merekatkannya).
Langkah 3: Hubungkan Semuanya
Menghubungkan semua bagian menjadi lebih mudah: nyalakan papan dan matriks led dengan kabel USB 5V, dan sambungkan tombol tekan dan input strip ke port papan yang ditentukan.
Ingatlah bahwa untuk menghindari kerusakan matriks, disarankan untuk menambahkan kapasitor dan resistor pada sambungannya.
Jika semuanya dilakukan dengan benar, Anda akan melihat penguin bahagia di matriks Anda:)
Untuk memeriksa apakah semuanya berfungsi dengan baik:
- Gambar harus memiliki blackground gradien biru
- Sudutnya memiliki panah hijau
- Panah pojok kiri bawah telah diperpanjang dengan 2 piksel merah