Halo, Habr! Saya membawa perhatian Anda pada terjemahan dari artikel
“DIY Smart Lamp” oleh
Maciej Matuszewski .
Panduan langkah demi langkah tentang cara beralih dari ide yang ditemukan ke produk yang berfungsi.

Menunggu Melawan Realitas

Pernahkah Anda bertanya pada diri sendiri pertanyaan-pertanyaan berikut?
- Bisakah lem panas memperbaiki segala hal?
- Apakah peralatan pintar sulit dibuat?
- Bisakah Anda menuangkan beton ke dalam bentuk kardus?
Jika tidak, mungkin sudah waktunya. Tetapi jika Anda melakukannya, selamat datang di klub! Baru-baru ini kami memiliki hackathon internal di
EL Passion , dan saya punya ide yang sulit. Membuat lampu!
Lampu pintar.
Lampu pintar terbuat dari beton.
Kayu pintar / lampu beton dengan strip LED RGB ...
DAN BLUETOOTH!
Dalam dua hari singkat hackathon (dengan sedikit biaya overhead) kami melakukan semuanya!
Semuanya dimulai dengan elektronik
Sekitar dua bulan lalu, saya mulai bermain dengan elektronik. Saya ingin memperluas wawasan saya, mencari tahu kabel mana yang harus dipotong jika terjadi pemberontakan mesin cerdas, dan melampaui pengetahuan saya tentang Frontend Engineering. Saya pikir sebagian besar dari Anda mungkin serupa.
Saya mulai dengan dasar-dasarnya, mendapat beberapa komponen, melihat tutorial, dan kemudian saya tidak bisa memutuskan apa yang harus dilakukan selanjutnya.
Setelah sekitar dua bulan, saya ingat bahwa hackathon sedang dipersiapkan!
Saya juga baru-baru ini melihat
Stephanie Nemeth berbicara di sebuah konferensi di mana dia menunjukkan hal-hal fantastis yang dapat Anda lakukan dengan Arduino dan lampu latar RGB. Jadi saya memutuskan untuk melakukan sesuatu yang serapi ini.
Tetapi saya ingin melakukan sesuatu yang bermanfaat, fungsional, dan membutuhkan keterampilan dalam DIY, pemrograman, dan elektronik.
Saya memilih hal yang paling jelas yang bisa dilakukan dengan bantuan lampu - lampu. Dan saya menemukan perakitan DIY sempurna yang ingin saya tiru.

Lampu DIY dari tutorial youtube DIY Creators
Saya sudah punya ide. Sekarang saya butuh tim.
Pitching - Membangun Tim
Tiga hari sebelum hackathon, kami biasanya mengadakan presentasi di mana kami mempresentasikan ide-ide kami ke seluruh perusahaan dan mengumpulkan orang-orang yang akan mengerjakan proyek kami. Saya bukan penjual besar, jadi milik saya terdengar seperti ini:
Hmmm, jadi ya, saya ingin membuat lampu pintar beton. Terima kasih banyak
Meskipun kurangnya informasi, tim saya memiliki lima orang yang tertarik untuk bergabung! Kami memiliki serangkaian keterampilan yang mengesankan:
- Maciej - Saya adalah CEO grup. Saya merencanakan pertemuan, memastikan bahwa kami memiliki semua yang kami butuhkan, dan membantu menyatukan semua bagian (kiasan dan kiasan).
- Wojtek - ia mengambil alih jabatan kepala departemen elektronik. Dia merencanakan sirkuit, membuat prototipe, dan bekerja dengan Yakub (iOS) untuk memastikan Bluetooth berfungsi. Dia juga memastikan bahwa kami tidak membakar gedung.
- Ula - Kepala beton bengkel pertukangan dan lem panas. Dia memastikan bahwa kami melakukan segalanya dengan benar, memenuhi tenggat waktu, dan mengerjakan perumahan lampu dari kayu.
- Ya - Tim Handyman. Itu muncul ketika kami sangat membutuhkannya, dan memastikan bahwa bagian "manual" dari perakitan kami akan bekerja.
- Yakub adalah kepala departemen pengembangan ponsel. Pastikan bahwa kami memiliki platform lintas platform yang luar biasa, asli, tetapi sebenarnya satu-satunya aplikasi ios, karena yang menggunakan android untuk mengontrol lampu.
Berbelanja
Mari kita lihat daftar belanjaannya . Saya hanya mendaftar apa yang kami gunakan dan terus-menerus dimasukkan ke dalam lampu. Semua peralatan tambahan, Arduino (prototyping, memuat kode ke AVR) dan komponen yang kami retas tidak diperhitungkan.
Total biaya: 159 zlotys (sekitar 43 dolar AS).
Anda bisa mendapatkan semua barang dengan harga lebih rendah, tetapi dalam kasus kami itu cukup mendesak.

Papan, beton, kertas amplas dan hal-hal berguna lainnya.
Bagian 1: Pondasi beton

Fase konstruksi proyek adalah ujian yang mengasyikkan. Dua jam pertama kami habiskan untuk membahas cara membuat fondasi untuk beton yang akan memenuhi persyaratan berikut:
- Sisakan ruang di bagian bawah untuk elektronik
- Sisakan dua lubang untuk kenop warna dan saturasi
- Tinggalkan ruangan untuk tangan kayu
Kami datang dengan sesuatu seperti ini:

Ini terlihat sederhana, tetapi itu tidak mudah dilakukan. Untuk membuat dasar, kami menggunakan kotak kardus, banyak pita abu-abu, kotak "tikus ajaib 2", dua sedotan plastik dan beberapa lem panas.

Kemudian kami mencampur dan menambahkan beton.

Bukan untuk orang dengan intoleransi laktosa, maaf.
Kami tidak ingin pembalut rusak, jadi kami menggunakan lebih banyak selotip dan empat liter susu. Kami juga meletakkan dasar kayu di beton sehingga kami memiliki tempat untuk itu nanti (meskipun kami hampir melupakannya). Semua ini setara dengan "perbaikan cepat" dalam sistem produksi, tetapi seperti yang mereka katakan:
Jika terlihat bodoh tetapi berhasil, itu tidak bodoh
Orang pintar
Kutipan ini telah menjadi moto kami untuk seluruh majelis.
Saya tidak punya gambar pangkalan segera setelah mengeluarkannya dari plester, tapi ini dia setelah sedikit penggilingan dan sudah dengan tuas kayu terpasang. Kami juga menambahkan kaki silikon untuk mencegah beton menggaruk meja.

Bagian 2: Tangan Kayu

Braket terdiri dari dua bagian yang terpisah: bagian atas lampu dan alas dengan kabel di dalamnya. Kami menghubungkan mereka dengan sekrup besar, yang kami bor lubang di bagian atas dan bawah.

Ajaibnya, kami tidak membakar kantor.

Ternyata mengukur hal-hal yang benar itu sulit.
Kami mulai dengan membuat lengan atas.

Tampilan penuh.

Bagian atas agak rumit karena membutuhkan kerja keras dengan besi solder, tapi mari kita mulai dengan dasar-dasarnya. Kami membuatnya dari tiga potong kayu, dua tipis (samping) dan persegi. Pertama, kami menempelkan semuanya bersama-sama, membuat lubang untuk sekrup besar yang menyatukan bagian atas dan bawah. Setelah beberapa penggilingan, untuk mengimbangi kenyataan bahwa papan sedikit melengkung, Ula mengecat tangannya, dan ketika kering, saya melanjutkan dan mulai memasang strip LED di atasnya.
Hal pertama yang saya lakukan adalah menentukan cara memotong strip LED. Kami tidak ingin meletakkan satu bagian yang panjang di dalam, karena tidak akan memberikan banyak cahaya, oleh karena itu, mengukur seberapa banyak kami cocok, saya memotong menjadi tiga strip, yang masing-masing memiliki ukuran 35 cm. Kemudian saya menyolder kabel utama dengan bagian pertama Strip LED dan menggunakan tabung panas untuk mengamankan koneksi.

Tabung panas menyusut dan sambungan solder menghubungkan dua strip LED.
Setelah menempelkan strip pertama ke pohon, saya menyadari bahwa saya lupa kabel mana yang saya hubungkan ke output Merah, Hijau, Biru dan 12V +. Itu adalah kemunduran kecil, tapi untungnya, kami memiliki multimeter yang memungkinkan kami memeriksa koneksi.
Hal berikutnya yang perlu saya lakukan adalah menyolder dua strip LED secara seri dengan bagian pertama. Butuh beberapa waktu, tetapi saya berhasil melakukannya, meskipun ada $ 8 solder dengan ujung, yang berkurang setiap kali digunakan. Kami menguji ini dengan menghubungkan kabel ke papan tempat memotong roti dan menggunakan salah satu rotary encoders untuk mengubah warna.

Lengan bawah, seperti yang ditunjukkan pada gambar di atas, juga cukup kompleks


Bagian bawah lengan itu rumit karena kami harus memasukkan kabel di dalamnya. Kami berpikir untuk memotongnya menjadi dua, mengalokasikan sedikit ruang, dan kemudian melipatnya bersama-sama, tetapi itu akan rentan kesalahan dan memakan waktu. Pada akhirnya, kami memutuskan untuk merekatkan tiga potongan kayu tambahan untuk memberi ruang bagi kabel, seperti yang ditunjukkan pada grafik. Ini juga alasan mengapa bagian di dalam pangkalan sedikit lebih sempit.
Kami tidak memiliki beberapa bagian, potongan kayu dan sekrup yang dapat menyatukan tangan kami. Kami beristirahat sejenak dari pekerjaan dan pergi ke toko untuk membeli semua barang ini.
Warna pinus alami tidak begitu baik, jadi Ula mengecat bagian atas dan bawah lampu sehingga menjadi sedikit lebih gelap. Kami membiarkannya kering untuk malam itu, dan hari berikutnya kami memasangnya, dan itu tampak hebat!

Proses melukis.

Lokasi kabel di dalam lampu.
Bagian 3: perangkat lunak aplikasi iOS
Saya tidak terlibat dalam proses pembuatan aplikasi iOS, jadi saya tidak bisa memberikan pemahaman yang lebih dalam tentang kode. Yakub memimpin dan mengirimkan aplikasi yang bekerja sampai akhir hari pertama. Pada hari kedua, ia memperluasnya dengan menambahkan fitur yang lebih luar biasa, seperti dukungan Ambilight, ketika lampu menyinkronkan warna dengannya selama pemutaran video (demo di akhir artikel).
Ada beberapa masalah dengan koneksi Bluetooth, lebih tepatnya, satu modul Bluetooth terhubung ke iOS, tetapi tidak ke Android, dan yang lainnya sebaliknya. Sekarang lampu hanya bekerja dengan iOS, tetapi untuk MVP ini sudah cukup. Dan modul Bluetooth dapat dengan mudah diaktifkan jika perlu, karena tidak disolder di tempat.
Kode aplikasi IOS
Berdasarkan pengalaman saya, saya dapat mengatakan bahwa aplikasi tersebut terlihat mengesankan, dan kecepatan yang diberikan Yakub juga luar biasa!

Kode Arduino / ATmega
Semua kode sumber terbuka di GitHub . Anda bisa melalui ini. Saya tidak akan membahas detail teknis mendalam tentang cara kerjanya. Wojtek, yang menulis sebagian besar kode, akan lebih baik untuk ini, jadi saya membuat tinjauan umum tentang bagaimana semuanya bekerja. Algoritma yang disederhanakan adalah sebagai berikut:
Algoritma perangkat lunak lampu yang disederhanakan
Pindah dari Arduino ke ATmega
Wojtek menulis versi pertama kode untuk Arduino, dan kemudian saya memperbaruinya untuk bekerja pada chip ATmega biasa. Perbedaannya minimal karena saya hanya memperkenalkan dua perubahan besar:
Saya menghapus salah satu koneksi serial - sebelumnya kami memiliki satu koneksi serial, yang kami gunakan untuk debugging (mencetak ke konsol di komputer), dan yang lainnya untuk Bluetooth. Ketika kami beralih ke ATmega, kami tidak lagi membutuhkan debug, yang membebaskan dua pin dan menyederhanakan koneksi.
Saya mengubah lokasi pin - untuk menempatkan segala sesuatu pada tata letak dengan lebih baik, saya mengubah lokasi fisik, yang memerlukan perubahan pada pin referensi dalam kode.
Jika Anda tertarik, Anda dapat melihat permintaan tanda terima, yang berisi perbedaan semua perubahan.
Bagian 4: Elektronik
Rencana kami cukup ambisius untuk waktu yang singkat, tetapi, untungnya, Wojtek cukup pintar dan terbiasa bermain dengan elektronik, jadi ia adalah "pemimpin" di bagian ini.

Kami mulai dengan langkah anak-anak, menguji berbagai solusi dengan coba-coba. Wojtek bekerja pada kode dan sirkuit pada saat yang sama dan memeriksa cara kerjanya. Bagian elektronik dari lampu terdiri dari:
- Mikrokontroler - Otak
- Dua tombol dengan tombol untuk mengontrol kecerahan, rona dan saturasi
- Modul Bluetooth untuk kontrol nirkabel
- Strip LED untuk cahaya
Pertama, kami menggunakan Arduino alih-alih mikrokontroler yang berdiri sendiri, dan menempatkan semuanya pada tata letak untuk menyederhanakan proses pengembangan. Pada akhir hari kedua, kami memiliki semua yang terkait dengan papan prototipe. Bluetooth, rotary encoders dan Arduino. Begini caranya pada sesi demo:

Kami juga berhasil membakar satu chip Bluetooth ...
Bagian 5: Mari kita buat lebih kecil!
Setelah hackathon, saya ingin meluangkan waktu dan memeras barang elektronik agar pas di dalam lampu sehingga perakitan selesai. Untuk mengompresi elektronik, saya harus:
- Ganti Arduino dengan ATmega328
- Rencanakan koneksi pada kardus
- Solder soket AVR sehingga kami dapat menggantinya jika perlu
- Elemen solder yang tidak dapat dilepas (transistor, soket DC, dll.)
- Kumpulkan semuanya
Saya mulai dengan mengganti Arduino. Untuk melakukan ini, saya perlu menginstal bootloader pada AVme ATmega (sama seperti di Arduino). Saya melihat beberapa tutorial tentang cara menginstal bootloader dan cara menggunakan Arduino sebagai programmer ISP (memungkinkan Anda untuk mengunduh perangkat lunak ke mikrokontroler tanpa perangkat keras tambahan). Setelah itu saya memperbarui kode untuk menggunakan kontak dan voila yang sedikit berbeda!

Arduino berhasil diputus!
Kemudian saya harus menyolder semuanya di atas karton kecil.
Ini adalah pertama kalinya saya bekerja dengan kartu pita, dan saya tidak dapat menemukan perangkat lunak sederhana yang akan membantu dengan desain sirkuit fisik, jadi saya pergi ke sekolah tua dan merencanakannya secara manual. Saya mencetak selembar kertas dengan kisi-kisi bertitik, di mana titik-titiknya berlubang di dalam kardus. Lalu saya menggambar semua koneksi dan bagaimana mereka harus cocok berdasarkan skema tata letak saat ini.

Merencanakan sirkuit sirkuit itu sendiri memakan waktu lebih dari satu jam.
Untuk membuatnya lebih mudah dimengerti dan terlihat, saya membuat grafik yang mewakili diagram pada karton.

Representasi skema yang dibuat. Dalam membangun nyata, saya harus menyesuaikannya sedikit agar sesuai dengan semua komponen, tetapi terlihat 90% lebih tinggi.
Setelah sekitar sepuluh jam menyolder (masih pemula) dan dua jari terbakar (jangan menyentuh komponen jika ada sesuatu yang bau), saya berhasil membuatnya bekerja! Semuanya berjalan lebih baik dari yang diharapkan.


Semua bagian digabungkan. Kabel putih adalah pegangan, kabel kecil dengan isolasi hitam adalah koneksi LED

Lihat dari bawah. Saya menggunakan kawat tembaga tipis untuk menghubungkan sambungan

Jika Anda melihat cukup dekat, Anda dapat melihat semua lem yang kami gunakan.

Produk siap!
Tonton demo lengkap di mana saya akan berbicara tentang semua fitur lampu ini. Meskipun ada beberapa masalah, misalnya, tombol-tombol putar melengkung dan tampilan warna yang salah, ini berhasil!


Bagi saya dan, saya harap, untuk anggota tim lainnya, ini adalah salah satu proyek hackathon yang paling menyenangkan. Baik proses dan hasilnya luar biasa, kami bersenang-senang, dan kami belajar banyak tentang bekerja dengan kayu, beton, dan elektronik.
Jika seseorang ingin membuat lampu yang serupa atau membutuhkan informasi lebih rinci, jangan ragu untuk berkomentar dan bertanya sesuatu kepada saya!