Daftar Isi:

Meja Kopi LED Arduino yang Dikendalikan Bluetooth: 10 Langkah (dengan Gambar)
Meja Kopi LED Arduino yang Dikendalikan Bluetooth: 10 Langkah (dengan Gambar)

Video: Meja Kopi LED Arduino yang Dikendalikan Bluetooth: 10 Langkah (dengan Gambar)

Video: Meja Kopi LED Arduino yang Dikendalikan Bluetooth: 10 Langkah (dengan Gambar)
Video: Membuat Running Text P10 dengan arduino nano #arduino #arduinoproject #runningtext 2024, Juli
Anonim
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth
Meja Kopi LED Arduino yang Dikendalikan Bluetooth

Ini adalah proyek Arduino nyata pertama saya dan juga merupakan instruksi pertama saya jadi berbaik hati di komentar:) Saya ingin mencoba dan menjawab pertanyaan yang membutuhkan waktu untuk mencari tahu dan memberikan instruksi terperinci jadi jika Anda sangat akrab dengan penghobi elektronik maka Anda mungkin dapat menelusuri setiap langkah tetapi jika Anda baru dalam hal ini, itu akan memberi Anda semua yang Anda butuhkan.

Tujuan dari proyek ini adalah untuk membuat layar 12 x 12 piksel di meja kopi yang dapat dikontrol melalui bluetooth dan digunakan sebagai lampu ruangan yang sejuk/bermain game di atasnya.

Untuk membangun ini Anda akan membutuhkan bagian-bagian ini:

  1. Arudino Mega (atau tiruan) -
  2. Perisai Kartu micro SD Arduino (saya menggunakan yang ini dan menyolder headernya) -
  3. Kartu Micro SD - Ukuran apa pun bisa digunakan tetapi harus diformat dalam FAT32
  4. 5m WS2812B Strip LED yang dapat disesuaikan -
  5. Modul Bluetooth HC05 -
  6. Catu daya 5 V 6 Amp - (Saya menggunakan ini tetapi ada seratus lainnya di ebay)
  7. Ikea LACK table (penghobi klasik) -
  8. Akses ke pemotong laser untuk kayu lapis 3 mm (atau tangan yang sangat stabil). Anda dapat memesan bagian potong laser secara online di berbagai tempat (misalnya
  9. Cat semprot putih
  10. Bagian T aluminium 2 m (1 1/2 x 1 1/2 x 1/8) -
  11. 450 mm x 450 mm x 6 mm kaca atas (kebanyakan tukang kaca lokal dapat memotong potongan khusus untuk Anda, tetapi saya menggunakan orang-orang ini
  12. 1x100 mikro Farad Kapasitor
  13. 2x1k resistor
  14. 1x2k resistor
  15. 1 x potensiometer putar linier
  16. Berbagai jumper (mungkin selusin selama pembuatan prototipe)
  17. Setidaknya tiga warna kabel yang relatif tebal untuk menyolder (ini dapat menarik beberapa arus besar jadi saya tidak akan merekomendasikan kabel jumper untuk daya)
  18. Stripboard untuk sirkuit internal (jangan khawatir itu sangat sederhana)

Alat yang dibutuhkan:

  1. Besi solder + solder
  2. Sepasang snips
  3. penari telanjang kawat
  4. Sebuah Dremel atau jigsaw dari beberapa jenis untuk meretas meja terpisah. Saya menggunakan ini https://www.amazon.co.uk/gp/product/B0078LENZC/ref… dengan mata potong spiral

Langkah 1: Tes dan Tata Letak Awal

Tes Awal dan Tata Letak
Tes Awal dan Tata Letak
Tes Awal dan Tata Letak
Tes Awal dan Tata Letak
Tes Awal dan Tata Letak
Tes Awal dan Tata Letak

Port panggilan pertama adalah memotong strip LED menjadi panjang yang Anda butuhkan. Strip LED ini sangat mudah digunakan karena hanya memiliki 3 pin dan membuat Arduino bekerja secara nyata. Saya memotong gulungan menjadi 12 bagian masing-masing dengan panjang 12 LED seperti yang ditunjukkan pada gambar dan meletakkannya di bagian belakang meja untuk membantu saya memvisualisasikan ke mana saya akan pergi dengan ini.

Saya kemudian memiliki beberapa LED yang tersisa jadi saya menghubungkannya ke Arduino UNO yang harus saya uji apakah mereka berfungsi (Anda juga dapat menggunakan Mega yang disebutkan dalam garis besar proyek). Untuk melakukan ini, saya memotong dan melepas beberapa header male to male dan menyoldernya ke bantalan di ujung strip LED. Pada strip WS2812 saya menggunakan kabel 5V berwarna merah, ground berwarna putih dan data berwarna hijau. Pastikan Anda memperhatikan panah arah yang tercetak pada strip WS2812B agar Anda tidak mencoba dan mengirim data ke arah yang salah. Saya menghubungkan jalur 5V ke 5V di Arduino, Ground ke GND dan Data ke pin 6 dengan resistor 1k secara seri. Ingatlah bahwa skema Fritzing dari LED WS2812B sedikit berbeda dengan yang saya kirimkan - cukup untuk mengatakan, pastikan data terhubung ke pin 6, Gnd terhubung ke ground dan 5 terhubung ke 5V.

Dengan begitu sedikit LED (5 atau lebih), Arduino seharusnya baik-baik saja untuk menyediakan daya; namun Anda tidak dapat memberi daya banyak karena ketika mereka berada di putih penuh LED menarik hingga 60mA masing-masing dan dapat dengan cepat membanjiri Arduino.

Dengan asumsi Anda memiliki Arduino IDE (jika tidak mengunduh dan menginstalnya) atur jenis chipset ke Arduino yang Anda miliki dan atur port COM ke port yang menunjukkan Arduino dalam opsi. Sekarang unduh pustaka FastLED dan instal (https://fastled.io/). Buka contoh striptest.h dan atur jumlah LED dalam sketsa sebanyak yang Anda miliki (saya punya 5 yang tersisa). Tekan verifikasi dan (dengan asumsi semuanya berjalan dengan baik) unggah ke Arduino dan Anda akan melihat lampu di strip kecil menyala dan berubah warna.

Langkah 2: Menyolder Matrix dan Stripboard

Menyolder Matriks dan Papan Strip
Menyolder Matriks dan Papan Strip
Menyolder Matriks dan Papan Strip
Menyolder Matriks dan Papan Strip
Menyolder Matriks dan Papan Strip
Menyolder Matriks dan Papan Strip

Sekarang saatnya untuk mulai membuat matriks LED.

Potong 11 panjang pendek masing-masing dari tiga warna kawat yang Anda miliki. Pastikan mereka cukup panjang untuk pergi dari ujung satu strip ke awal yang berikutnya. Saat meletakkan strip LED, Anda perlu memastikan bahwa panah aliran data mengikuti ular. Setelah ini ditata, dengan hati-hati solder setiap baris yang dipimpin ke yang berikutnya seperti yang ditunjukkan pada gambar. Ini jauh lebih mudah jika Anda menggunakan warna yang sama untuk setiap jenis koneksi.

Sekarang, lebih banyak penyolderan, kita perlu membuat stripboard yang akan menangani daya dari catu daya utama. Saya menyolder dua kolom pada stripboard bersama-sama untuk 5V dan GND sehingga menangani arus dengan lebih baik. Lihat skema terlampir untuk sirkuit yang perlu Anda buat. Saat menyolder kapasitor, pastikan ujung negatif terpasang ke rel GND, bukan yang 5V. Setelah stripboard selesai, kita perlu menghubungkan +VE dan GND ke strip LED dan juga menggunakan setengah jumper yang kita potong sebelumnya untuk menghubungkan Arduino ke catu daya dan stripboard. Sekarang adalah saat yang tepat untuk menambahkan papan breakout SD ke Arduino sehingga kita dapat menyimpan file ke dalamnya dan membacanya nanti. Setelah papan breakout SD terpasang, kita dapat menghubungkan rel 5V ke pin Vin dan GND ke pin GND apa pun di Arduino.

Terakhir, kita dapat menghubungkan potensiometer ke input analog A0 seperti yang ditunjukkan sehingga kita memiliki cara untuk mengontrol kecerahan LED.

Setelah semua ini selesai, kita dapat mengunggah sketsa striptest lagi dengan mengubah jumlah LED menjadi 144. Pastikan catu daya Anda aktif sebelum mengunggah sketsa ini. Mudah-mudahan semua LED harus menyala dalam pola sketsa striptest sehingga kita tahu semuanya bekerja.

Langkah 3: Integrasi Modul Bluetooth

Integrasi Modul Bluetooth
Integrasi Modul Bluetooth

Bagian terakhir dari kabel sekarang, unit HC05 terhubung ke Arduino Mega seperti yang ditunjukkan pada skema. Pastikan unit HC05 terhubung ke port Rx1 dan Tx1 pada mega - ini membuat lebih mudah untuk memprogram dan menghindari penggunaan perpustakaan "serial perangkat lunak".

catatan Unit HC05 akan mengambil 5V masuk atau 3.3V dan umumnya beroperasi pada logika 3.3V jadi saya menghubungkannya ke rel 3.3V. Beberapa instruksi lain telah menunjukkan Tx (pada Arduino) ke Rx (pada unit HC05) dengan rangkaian pembagi potensial untuk mengetuk logika 5 V dari Arduino ke tingkat asli untuk modul HC05. Inilah alasan saya memiliki resistor 1k dan 2k di daftar bagian; namun, saya tidak repot dan sepertinya sangat senang di meja saya:)

Langkah 4: Peretasan Tabel

Peretasan Meja
Peretasan Meja
Peretasan Meja
Peretasan Meja
Peretasan Meja
Peretasan Meja

Sekarang kita perlu mulai memotong meja untuk memberi LED dan elektronik kita rumah baru.

Pertama-tama tandai kotak berukuran 450 mm x 450 mm di tengah bagian atas meja LACK. Dengan menggunakan Dremel (atau gergaji ukir) potong persegi sebaik mungkin agar tetap lurus. Sekarang kita dapat melepas bagian atas dan bagian dalam karton meninggalkan Anda dengan bagian atas meja yang berlubang seperti yang ditunjukkan pada gambar. Dengan menggunakan Dremel lagi, kita dapat mengebor lubang di sudut bagian bawah meja sehingga kita memiliki tempat untuk merutekan kabel listrik.

Setelah tabel disiapkan, kita dapat menempelkan LED di posisi yang kira-kira tepat sebelum kita melanjutkan ke langkah berikutnya. Saya merasa berguna untuk memastikan bahwa elektronik tepat setelah setiap langkah, jadi cobalah sketsa striptest lagi.

Setelah Anda merasa nyaman semuanya berada di tempat yang tepat maka Anda dapat mengebor beberapa lubang kecil untuk memasang catu daya di dalam tepi meja menggunakan baut kecil. Saya memilih untuk memasang Arduino di luar meja sehingga saya dapat memprogram ulang dengan mudah jika saya mau tetapi dipasang terbalik ke bagian bawah meja dan tidak mudah terlihat. Saya juga memasang potensiometer melalui bagian bawah meja sehingga kontrol kecerahan terlihat bagus dan profesional.

Langkah 5: Bagian Potong Laser

Bagian Potong Laser
Bagian Potong Laser
Bagian Potong Laser
Bagian Potong Laser
Bagian Potong Laser
Bagian Potong Laser

Sekarang kita perlu memperkenalkan bagian potongan laser yang membentuk matriks bujur sangkar sehingga kita telah mendefinisikan piksel. Saya telah menyertakan file dxf untuk bagian potongan laser yang membentuk matriks kayu dan juga gambarnya sehingga Anda tahu seperti apa bentuknya. Mereka terbuat dari dua bagian yang terpisah, satu melewati setiap baris LED dan yang lainnya melintasinya. Bagian yang bersilangan memiliki celah setinggi 10 mm yang dipotong di bagian bawah untuk memungkinkan kabel melewatinya. Celah ini dapat dikurangi menjadi 5 mm karena saya tampaknya memiliki sedikit kebocoran cahaya dari satu piksel ke piksel berikutnya.

11 salinan dari kedua bagian harus dipotong laser dari kayu lapis 3mm dan kemudian dirakit untuk memastikannya pas. Setelah Anda puas, pisahkan matriks lagi dan semprotkan dengan warna putih untuk meningkatkan karakteristik reflektif meja. Saat kering, pasang kembali dan letakkan di atas LED. Mungkin sedikit lebih sulit untuk menyatukannya setelah disemprotkan karena sekarang sedikit lebih tebal, tetapi jangan khawatir, cukup ketuk dengan lembut ke tempatnya sebelum Anda meletakkan matriks ke dalam meja.

Langkah 6: Glediator

Glediator
Glediator
Glediator
Glediator

Sekarang kita memiliki semua perangkat keras yang diimplementasikan, kita dapat mulai melihat perangkat lunak. Saya mengunduh dan menginstal perangkat lunak bernama Glediator untuk membuat animasi untuk LED (https://www.solderlab.de/index.php/software/glediat…). Petunjuk penginstalan bisa sedikit rumit tetapi ikuti situs webnya dengan cermat dan Anda akan baik-baik saja. Kita juga perlu mengunduh sketsa dari situs web Glediator untuk diunggah ke Arduino (https://www.solderlab.de/index.php/downloads/catego…). Kami menggunakan LED WS2812B jadi pastikan Anda mengunduh yang benar (WS2812 Glediator Interface). Setelah Anda membuka sketsa ini, ubah NUMBER_OF_PIXELS menjadi 144 dan unggah ke Arduino.

Setelah Glediator terinstal, kita dapat mulai memainkan animasi di atas meja. Pertama kita perlu mengatur ukuran matriks menjadi 12 x 12 di perangkat lunak Glediator dan juga mengatur jenis output ke HSBL - Horizontal Snake (mulai) Kiri Bawah karena ini adalah cara kita memasang LED dan mengubah urutan warna menjadi GRB (untuk itulah LED mengambil data). Pada tab output, buka port COM dan matriks LED akan mulai menampilkan pola LED di layar tengah perangkat lunak Glediator.

Anda dapat membuat animasi dan merekamnya ke file.dat yang dapat kami unggah ke kartu SD yang berarti animasi favorit Anda dapat ditampilkan di atas meja tanpa perlu terhubung ke PC. Ada beberapa tutorial online tentang ini (https://hackaday.io/project/5714-glediator-from-sd… misalnya). Saya telah memodifikasi beberapa sumber kode yang berbeda agar berfungsi untuk ini sehingga kode saya akan baik-baik saja.

Saat menyimpan animasi Anda, pastikan Anda menyimpannya sebagai "animX.dat" di mana X adalah angka dari 1-15. Anda dapat menerapkan lebih banyak dengan mengubah beberapa baris dalam kode saya.

NB- Saat merekam file Glediator, perangkat lunak memiliki bug di dalamnya yang berarti tidak ingat bagaimana Anda memasang strip LED. Dalam kode saya, saya telah menerapkan fungsi sederhana untuk membalikkan urutan baris bernomor genap yang berarti semuanya ditampilkan dengan benar

Langkah 7: Kontrol Serial Bluetooth

Kontrol Serial Bluetooth
Kontrol Serial Bluetooth
Kontrol Serial Bluetooth
Kontrol Serial Bluetooth

Menyiapkan komunikasi bluetooth antara smartphone dan Arduino terbukti sangat rumit tetapi ada beberapa langkah sederhana yang akan membuat ini lebih mudah. Pertama, Anda perlu mengunduh aplikasi untuk ponsel cerdas Anda. Saya menggunakan https://play.google.com/store/apps/details?id=com…. tetapi mungkin ada iPhone yang setara (yang harus Anda bayar;p)

Anda mungkin telah memperhatikan bahwa modul HC05 memiliki saklar kecil di atasnya. Jika Anda menyalakannya dengan sakelar ini ditekan, ia memasuki mode AT yang berarti Anda dapat menginterogasi parameter di atasnya dan mengubahnya jika Anda mau.

Unggah sketsa terlampir ke Mega dan atur kecepatan serial pada PC Anda ke 9600. Putuskan sambungan daya ke unit HC05 lalu tekan tombol di atasnya saat Anda menyambungkannya kembali. Kedipan seharusnya sekarang kira-kira sekali setiap dua detik - sekarang HC05 dalam mode AT.

Sekarang di monitor serial kita dapat mengirim perintah ke HC05 dan melihat responsnya. Ketik "AT" dan tekan kirim dan Anda akan melihat "OK" kembali di monitor serial - sekarang kita tahu itu mendengarkan. Nama bluetooth perangkat dapat diubah dengan mengetikkan "AT+NAME=XYZPQR" di mana XYZPQR adalah modul yang Anda inginkan untuk dipanggil. Saya menelepon LightWave milik saya. Kode sandi default untuk modul bluetooth adalah 1234 (atau 0000) tetapi ini juga dapat diubah dengan mengirimkan "AT+PSWD=9876" misalnya. Terakhir, kita dapat mengubah kecepatan komunikasi HC05 dengan mengirimkan "AT+UART=38400". Ini adalah tingkat default untuk sebagian besar modul HC05 tetapi milik saya diatur secara berbeda sehingga praktik yang baik untuk mengaturnya untuk memastikan. Ada banyak detail lebih lanjut tentang perintah ini di sini: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… dan ada juga instruksi tentang langkah ini yang memiliki lebih banyak detail https://www.instructables.com/id/Modify -The-HC-05-…

Sekarang kita dapat mencoba mengirim perintah ke modul melalui perangkat bluetooth. Pertama-tama lepaskan daya ke modul HC05 dan kemudian sambungkan kembali. Anda akan melihat bahwa tingkat kedipan LED jauh lebih cepat - ini berarti sekarang menunggu untuk dipasangkan. Di ponsel cerdas Anda, buka aplikasi Arduino Bluetooth Controller dan temukan modul HC05. Jika Anda belum mengubah nama itu kemungkinan akan disebut HC05 atau serupa. Ketika diberi pilihan bagaimana Anda ingin terhubung, pilih mode Terminal. Sekarang coba kirim beberapa nomor dan teks dan lihat apakah monitor serial pada PC melaporkan bahwa mereka telah diterima. Mudah-mudahan mereka memilikinya sehingga kami dapat melanjutkan, jika tidak ada banyak instruksi yang mungkin memberi Anda beberapa petunjuk (https://www.instructables.com/id/Bluetooth-Hc-05-W… misalnya).

Hal terakhir yang harus dilakukan di sini adalah memetakan input pengontrol ke angka yang dapat dilakukan oleh Arduino. Saya menggunakan nilai-nilai berikut:

Naik = 1, Bawah = 2, Kiri = 3, Kanan = 4, Mulai = 5, Pilih = 6.

Langkah 8: Permainan

permainan
permainan

Saya tidak mengambil kredit untuk kode permainan. Saya menggunakan kode sumber yang ditemukan di sini https://github.com/davidhrbaty/IKEA-LED-Table yang ditulis oleh davidhrbaty. Namun, saya telah memodifikasinya dengan beberapa cara berbeda:

  1. Saya menambahkan fungsi batasan kecerahan berdasarkan nilai potensiometer sehingga kami dapat mengubah kecerahan
  2. Saya menghapus permainan batu bata karena saya tidak bisa mengkompilasinya
  3. Saya mengubah kode warna blok tetris sehingga warnanya berbeda
  4. Saya memesan ulang menu
  5. Saya menerapkan opsi untuk memutar animasi dari kartu SD
  6. Saya menambahkan pelacakan skor tinggi dan opsi tampilan skor tinggi di menu

Kode terlampir seharusnya langsung berfungsi tetapi jika tidak, saran saya adalah menghapus game yang tampaknya menyebabkan pesan kesalahan dan memverifikasi kode lagi sampai Anda mengetahui di mana masalahnya. Kemudian secara bertahap tambahkan kembali dengan lebih banyak kompleksitas.

Penulis asli kode ini melakukan pekerjaan luar biasa dalam membangun sesuatu yang benar-benar modular dan mudah ditambahkan. Tidak sulit untuk menambahkan case tambahan untuk menambahkan lebih banyak fungsi ke dalam tabel.

Pilihan dalam menu adalah:

  1. Kartu SD - Memutar animasi yang disimpan di kartu SD
  2. Tetris
  3. Ular
  4. pong
  5. Dadu - Generator angka acak antara 1 dan 6
  6. Animation - Kumpulan animasi dari perpustakaan FastLED
  7. Stars Animation - EDIT - Sekarang saya telah mengimplementasikan Conway's Game of Life alih-alih animasi ini
  8. Animasi Pelangi
  9. Skor Tinggi - Menampilkan skor tinggi untuk tetris dan ular

Sebelum Anda mulai bermain, Anda perlu membuat dua file txt pada kartu SD, satu disebut "teths.txt" dan yang lainnya disebut "snkhs.txt". Di kedua file ini letakkan angka 0 lalu simpan di folder root kartu SD. Ini adalah file pelacakan skor tinggi dan akan diperbarui setiap kali skor tinggi dikalahkan. Jika Anda ingin meresetnya, ubah saja nilainya kembali ke 0 di PC.

Setelah Anda mengunggah program LED_table ke Arduino, Anda dapat membuka monitor serial dan Anda seharusnya dapat melihat perintah bluetooth saat Anda mengirimnya - dengan cara ini Anda tahu semuanya bekerja dengan baik.

Langkah 9: Nikmati

Menikmati
Menikmati
Menikmati
Menikmati
Menikmati
Menikmati

Yang tersisa untuk dilakukan adalah mengunggah kode tabel LED utama ke Mega dan kemudian menikmati bermain dan beri tahu saya skor tinggi Anda!

Saya masih menunggu bagian atas meja tiba (bagian Aluminium T dan kaca) tetapi meja sekarang berfungsi dengan baik dan saya bisa bermain game di atasnya.

Beri tahu saya jika Anda memiliki komentar, pengeditan, atau menemukan kesalahan yang saya buat.

Langkah 10: Perbarui

Image
Image
Memperbarui
Memperbarui
Memperbarui
Memperbarui

Sekarang sudah benar-benar selesai!:)

Saya akhirnya menerima pengiriman bagian T aluminium untuk tepi dan melakukan pekerjaan terbaik saya dalam memasang sambungan (ternyata 45 derajat adalah salah satu sudut yang lebih sulit) tetapi hampir sepenuhnya persegi. Untuk bagian atas saya memutuskan untuk mendapatkan lembaran kaca yang lebih tebal (425 x 425 x 8mm) dan saya memoles bagian bawah menggunakan semprotan frosting kaca Rustoleum. Saya menggunakan dempul biasa (silikon sealant) untuk menyambung bagian atas dan potongan sudut sehingga ada sedikit kelenturan pada sambungan jika diperlukan.

Pembaruan yang diperbarui. Sekarang saya telah menambahkan Conway's Game of Life sebagai opsi 7 di menu daripada animasi bintang karena saya tidak pernah menggunakannya. Jika Anda tidak tahu apa permainan ini, Google itu, tetapi pada dasarnya ini adalah permainan tanpa pemain yang menunjukkan evolusi berdasarkan tiga aturan sederhana. Permainan Kehidupan Conway

Perbarui^3. Saya telah membuat beberapa modifikasi pada kode sehingga sekarang termasuk perbaikan bug mengenai peredupan LED merah dan juga menyertakan animasi pohon Natal sebagai Opsi 11 di Menu. Menikmati.

Direkomendasikan: