Iklan

Natal ada di sini lagi, dan apakah itu liburan favorit Anda tahun ini atau membuat Anda berkeringat dingin, dekorasi mulai naik. Tahun ini, mengapa tidak memasukkan beberapa teknologi DIY ke dalam dekorasi Anda untuk membuatnya menonjol?

Dalam proyek ini kita akan membangun matriks LED 8 x 8 tahan cuaca dari gerakan... untuk di bawah $ 20. Ini dirancang agar pas di tengah-tengah karangan bunga pintu Natal standar, meskipun dapat digunakan di mana saja di sekitar rumah. Dan karena itu bertenaga baterai, di mana saja dari rumah juga!

Daftar Bagian

Untuk proyek ini Anda perlu:

  • Arduino.
    • Saya menggunakan Nano untuk ukurannya yang kecil, tetapi Anda bisa menggunakan hampir semua Mikrokontroler yang kompatibel dengan Arduino Arduino Buying Guide: Papan Yang Seharusnya Anda Dapatkan?Ada begitu banyak jenis papan Arduino di luar sana, Anda akan dimaafkan karena bingung. Yang mana yang harus Anda beli untuk proyek Anda? Biarkan kami membantu, dengan panduan pembelian Arduino ini! Baca lebih banyak .
  • instagram viewer
  • 64 x LED merah.
  • 8 x 220 Ohm resistor.
  • Sensor gerak PIR.
    • Banyak Kit starter Arduino Apa Yang Termasuk Dalam Kit Starter Arduino? [MakeUseOf Menjelaskan]Saya sebelumnya telah memperkenalkan perangkat keras open-source Arduino di MakeUseOf di sini, tetapi Anda akan membutuhkan lebih dari sekadar Arduino yang sebenarnya untuk membangun sesuatu darinya dan benar-benar memulai. Arduino "starter kit" adalah ... Baca lebih banyak datang dengan ini. Saya membeli beberapa paket dari Amazon seharga $ 10.
  • 1 buah papan prototyping.
    • Yang digunakan di sini adalah 9 x 7 cm, meskipun Anda dapat menggunakan ukuran apa pun yang Anda inginkan.
  • Baterai 7-12v.
    • Paket baterai sederhana digunakan di sini untuk alasan anggaran, tetapi a charger bank seluler Bank Daya Pokemon Go TerbaikPokemon Go mengalahkan baterai ponsel. Meremas jus yang lebih banyak menangkap Pokemon dari ponsel Anda memerlukan bank daya. Tapi apa baterai terbaik di luar sana? Baca lebih banyak dapat bertahan lebih lama.
  • Aneka potongan kawat pendek.
  • Kotak Tupperware atau kandang tahan cuaca serupa.
    • Pastikan itu akan cukup besar untuk memuat semua komponen Anda di dalamnya!
  • Karangan bunga Natal.
    • Apa pun akan dilakukan, pastikan kotak enklosur akan masuk ke dalamnya.
  • Besi solder dan solder.

Meskipun tidak sepenuhnya diperlukan karena Anda bisa menyolder komponen langsung ke Nano, saya juga menemukan papan tempat memotong roti kecil sangat berguna saat pengujian. Pistol lem panas juga membantu menyatukan semua bagian.

karangan bunga natal dipimpin bagian matriks

Proyek ini membutuhkan penyolderan yang cukup banyak, dan sebagai pemula mungkin terasa menakutkan. Saya pribadi masih sangat pemula dalam menyolder dan merasa tidak terlalu menantang atau menghabiskan waktu seperti yang terlihat. Jika Anda juga baru menyolder di sini ada beberapa tips bagus untuk membantu Pelajari Cara Menyolder, dengan Tip dan Proyek Sederhana IniApakah Anda sedikit terintimidasi oleh pemikiran besi panas dan logam cair? Jika Anda ingin mulai bekerja dengan elektronik, Anda harus belajar menyolder. Biarkan kami membantu. Baca lebih banyak .

Jika Anda benar-benar tidak tertarik pada gagasan penyolderan, proyek ini juga memungkinkan Strip LED Proyek Akhir Pekan: Bangun Tampilan Pixel LED RaksasaSaya suka piksel LED: cerah, mudah dikendalikan, murah, dan sangat fleksibel. Hari ini, kita akan mengubahnya menjadi tampilan piksel besar yang dapat digantung di dinding. Baca lebih banyak , atau matriks LED siap pakai yang mungkin Anda miliki di starter kit Anda. Beberapa penyesuaian kode akan diperlukan jika Anda memutuskan untuk pergi rute itu.

Menyiapkan Arduino

Kami akan mulai dengan diagram sirkuit untuk Arduino dan kabel yang akan kami lampirkan pada sensor PIR dan matriks LED kami.

fritzing karangan bunga

Di dalam Matriks

Sekarang untuk membuat matriks LED 8 x 8 kami. Ini adalah ide yang baik untuk memulai dengan membuat satu baris dan satu kolom dari matriks, untuk memastikan itu tepat di tempat yang Anda inginkan pada papan prototyping.

menguji di mana harus meletakkan led

Pada foto di atas, semua LED ditempatkan sehingga anoda (semakin panjang, kaki positif) mengarah ke atas protoboard. Ini penting, karena kita akan membuat kolom anoda bersama dengan menggabungkannya bersama, dan baris katoda umum (kaki pendek, negatif). Mendapatkan ini sekarang akan menghemat sakit kepala nanti!

Kita akan membangun matriks baris katoda umum, diagram ini menunjukkan bagaimana semuanya terhubung.

keraguan diag

Ini mungkin terlihat sedikit menakutkan pada awalnya, tetapi ini adalah konfigurasi yang cukup sederhana. Di setiap baris, semua katoda digabungkan dari kanan ke kiri, dan kemudian pasang ke salah satu pin Arduino kami. Setelah ini, kami melakukan hal yang sama untuk setiap kolom anoda. Dengan cara ini, tergantung pada kolom tempat kami menerapkan daya, dan baris tempat kami bergabung dengan ground, kami dapat menyalakan setiap LED individual dalam array.

Biarkan Solder Mulai

Mulailah dengan menempatkan baris pertama LED Anda. Pastikan semua anoda menghadap ke atas, dan balikkan. Saya menemukan bahwa menambahkan LED lain di setiap sudut, dan memasang sepotong protoboard di atasnya menggunakan tali elastis membantu menahan semua yang ada di tempatnya.

proto elastis

Sekarang satu per satu tekuk kaki katoda (pendek) dari setiap LED ke kiri sehingga semuanya saling tumpang tindih. Paling mudah untuk memulai dari sisi kiri dan bekerja dengan benar. Jika Anda menggunakan potongan protoboard yang lebih besar, Anda dapat menyoldernya terlebih dahulu ke papan dan menghubungkannya menggunakan bantalan. Berhati-hatilah untuk tidak menyambungkan salah satu katoda ke jalur lain apa pun di papan atau anoda mana pun!

solder lipatan katoda

Ulangi proses ini untuk semua delapan baris, dan ketika Anda selesai Anda harus memiliki sesuatu yang terlihat seperti ini:

gambar baris jadi

Jumping Anodes!

Kolom anoda sedikit lebih fiddly. Dalam diagram di atas, kurva anoda setiap kali mereka melintasi deretan katoda. Ini karena mereka tidak dapat menyentuh baris sama sekali. Kita harus menekuk anoda di atas baris katoda dan melampirkannya satu sama lain. Anda mungkin menemukan bahwa menggunakan pena untuk menekuk kaki sangat membantu.

anoda solder

Lakukan ini untuk setiap baris anoda, dan pasang resistor ke setiap anoda atas. Anda mungkin akan menemukan lebih mudah untuk meletakkan resistor di lubang berikutnya di protoboard dan bergabung dengan bantalan menggunakan solder. Anda sekarang harus memiliki sesuatu seperti ini:

penyolderan selesai

Selamat! Matriks LED selesai. Periksa solder Anda secara menyeluruh pada tahap ini untuk memastikan tidak ada jeda dan tidak ada kolom yang menyentuh baris. Jangan khawatir jika itu tidak terlihat cantik, kami hanya perlu bekerja! Anda dapat memeriksa setiap LED secara terpisah sekarang dengan melampirkan 5v ke salah satu ujung kolom, dan ground ke salah satu ujung baris.

matriks pengujian

Asalkan semuanya baik-baik saja, pasang kabel pengait ke setiap kolom dan setiap baris, dan pasangkan ke Arduino Anda seperti yang ditunjukkan pada diagram di atas.

Mari Dapatkan Pengodean

Buka IDE Arduino dan pilih board dan port Anda. Jika Anda baru mengenal Arduino, lihat ini panduan memulai. Memulai Dengan Arduino: A Beginner's GuideArduino adalah platform prototipe elektronik sumber terbuka yang didasarkan pada perangkat keras dan lunak yang fleksibel dan mudah digunakan. Ini ditujukan untuk seniman, perancang, penggemar, dan siapa pun yang tertarik untuk menciptakan objek atau lingkungan interaktif. Baca lebih banyak

Masukkan kode ini ke editor. Ini kode yang cukup padat jika Anda tidak terbiasa dengan itu, tetapi tersedia sini sepenuhnya dijelaskan untuk membantu memahami cara kerjanya.

baris konstan int [8] = {2,3,4,5,6,7,8,9}; const int col [8] = {10,11,12,14,15,16,17,18}; int pirPin = 19; int pirState = RENDAH; int val = 0; bool pirTrigger = false; const int pirLockTime = 12000; int pirCountdown = pirLockTime; int piksel [8] [8]; refresh int constSpeed ​​= 500; int countDown = refreshSpeed; int currentCharIndex = 0; mengetik bool CHAR_MAP_NAME [8] [8]; const CHAR_MAP_NAME blank = {{0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0,}, {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const CHAR_MAP_NAME threedownthreein = {{0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, }; const int noOfFrames = 5; const CHAR_MAP_NAME * charMap [noOfFrames] = { & blank, & threedownthreein, & blank, & blank, & threedownthreein. }; void setup () {for (int i = 0; i <8; i ++) {pinMode (baris [i], OUTPUT); pinMode (col [i], OUTPUT); // sensor gerak pinMode (pirPin, INPUT); digitalWrite (col [i], LOW); } } membatalkan screenSetup () {const CHAR_MAP_NAME * thisMap = charMap [currentCharIndex]; untuk (int x = 0; x <8; x ++) {for (int y = 0; y <8; y ++) {bool on = (* thisMap) [x] [y]; if (on) {piksel [x] [y] = TINGGI; } else {piksel [x] [y] = RENDAH; }}} currentCharIndex ++; if (currentCharIndex> = noOfFrames) {currentCharIndex = 0; }} membatalkan refreshScreen () {untuk (int currentRow = 0; currentRow <8; currentRow ++) {digitalWrite (baris [currentRow], LOW); untuk (int currentCol = 0; currentCol <8; currentCol ++) {int thisPixel = piksel [currentRow] [currentCol]; digitalWrite (col [currentCol], thisPixel); if (thisPixel == HIGH) {digitalWrite (col [currentCol], LOW); }} digitalWrite (baris [currentRow], HIGH); }} void loop () {val = digitalRead (pirPin); if (val == HIGH) {pirTrigger = true; } lain jika (val == LOW && pirCountdown <= 0) {pirTrigger = false; pirCountdown = pirLockTime; } if (pirTrigger == true && pirCountdown> 0) {refreshScreen (); countDown--; pirCountdown--; if (countDown <= 0) {countDown = refreshSpeed; screenSetup (); } } }

Bagian penting untuk dipahami adalah:

Itu refreshSpeed variabel. Variabel ini menentukan bagaimana waktu antara setiap layar disegarkan. Jumlah yang lebih besar berarti menunggu lebih lama.

Const CHAR_MAP_NAMEs. Di sinilah Anda meletakkan setiap peta karakter (atau bingkai jika lebih mudah memikirkannya seperti itu) yang ingin Anda tampilkan.

Itu noOfFrames variabel. Ini menentukan berapa banyak frame yang ditampilkan dalam satu pemutaran penuh. Perhatikan bahwa ini bisa berbeda dengan jumlah peta karakter. Misalnya jika Anda ingin menampilkan "A CAT" Anda hanya perlu mendefinisikan empat frame yang berbeda: kosong, sebuah SEBUAH, Sebuah C dan a T.

Sekarang, ketika sensor gerak mendeteksi gerakan, layar LED harus mengedipkan LED tiga ke bawah dan tiga dari kiri atas. Jika tidak ditampilkan dengan benar, periksa kembali kabel Anda untuk memastikan semuanya ada di tempat yang tepat! Saat Anda menambahkan gambar atau pesan Anda sendiri, mungkin terputus lebih awal, atau diputar terlalu lama. Coba ubah pirLockTime variabel hingga diputar untuk jumlah waktu yang Anda inginkan.

Proses menambahkan setiap frame ke tampilan LED bisa sedikit membosankan, jadi kami buat spreadsheet ini untuk membuatnya sedikit lebih mudah untuk membuat teks dan gambar untuk matriks LED Anda (buat salinan Google Sheet sehingga Anda dapat mengeditnya).

Dengan menggunakan spreadsheet, Anda dapat menyalin kreasi Anda langsung ke dalam kode.

Buatlah Berani Elemen

Sekarang kami memiliki matriks LED yang berfungsi, kami membutuhkan cara agar dapat bertahan dari cuaca musim dingin. Meskipun metode ini mungkin tidak tahan terhadap badai tropis atau tenggelam di kolam, itu harus cukup untuk menjaga semua elektronik aman dari unsur-unsur.

Saya menggunakan kotak Tupperware bundar dengan diameter 15 cm dan kedalaman 6 cm karena pas dengan komponen saya. Potong jendela di tutupnya sedikit lebih besar dari matriks LED Anda, dan pasang film plastik bening untuk itu, pastikan untuk tidak meninggalkan ruang untuk cairan masuk. Plastik yang kokoh dari beberapa kemasan akan bekerja dengan baik, tetapi hanya ini yang saya miliki. Anda juga bisa memasang beberapa dudukan untuk protoboard, meskipun kedua pekerjaan dapat dengan mudah dilakukan dengan selotip yang kuat.

bukti cuaca

Selanjutnya, buat lubang kecil di bawah jendela, lalu dengan hati-hati dan perlahan-lahan memperlebarnya sampai sensor PIR Anda hanya bisa masuk. Anda ingin itu pas pas mungkin.

memotong lubang

Pasang sensor PIR Anda, dan isi semua celah yang bisa Anda lihat dengan selotip atau lem panas.

lem pir

Bersihkan semua selotip atau lem yang dapat menghentikan kotak agar tidak menutup dengan benar, dan tambahkan semua komponen Anda ke dalam kotak bersama dengan baterai Anda. Di sini, paket baterai AA sederhana digunakan, dicolokkan langsung ke pin VCC Nano. Beberapa potong gabus kecil ditambahkan ke bagian luar selungkup untuk membantu menggantung bangunan di tengah karangan bunga.

Dan Kami Selesai

Setelah kotak itu disegel, gantunglah dengan karangan bunga Natal Anda, dan tunggu reaksi pengunjung Anda terhadap sambutan pribadi teknologi tinggi $ 20 Anda! Anda bahkan bisa melangkah lebih jauh dan menciptakan yang luar biasa Dekorasi DIY Dekorasi Natal 3D-Dicetak untuk Liburan Geeky SempurnaMengapa tidak menghemat uang Natal ini dan 3D mencetak perhiasan meriah untuk rumah Anda? Baca lebih banyak untuk tempat lain di sekitar rumah juga!

jadi led matrix natal karangan bunga diy

Dalam proyek ini kami telah membangun sistem matriks LED mandiri dari awal, yaitu gerak yang diaktifkan dan dapat bertahan hidup di luar kecuali cuaca yang paling buruk. Bangunan ini akan berguna lama setelah musim liburan berakhir di proyek lain, dan teknik yang sama dapat digunakan untuk membuat lampiran tahan cuaca yang murah untuk proyek lain juga.

Sudahkah Anda membangun sesuatu untuk memberikan sentuhan DIY pada Natal Anda? Apakah Anda merencanakan hadiah Natal bertema DIY tahun ini? Beri tahu kami di komentar di bawah!

Ian Buckley adalah jurnalis lepas, musisi, pemain dan produser video yang tinggal di Berlin, Jerman. Ketika dia tidak menulis atau di atas panggung, dia mengutak-atik elektronik atau kode DIY dengan harapan menjadi ilmuwan gila.