Isi kandungan:

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

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

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

Ini adalah projek Arduino sebenar saya yang pertama dan juga merupakan petunjuk pertama saya jadi bersikap baik dalam komen:) Saya ingin mencuba dan menjawab soalan-soalan yang memerlukan sedikit masa untuk mengetahui dan memberikan arahan terperinci, jadi jika anda sudah biasa dengan penggemar hobi elektronik maka anda mungkin dapat meneliti setiap langkah tetapi jika anda baru dalam hal ini, ia harus menyediakan semua yang anda perlukan.

Tujuan projek ini adalah untuk membuat layar 12 x 12 piksel di meja kopi yang dapat dikendalikan melalui bluetooth dan digunakan sebagai lampu ruangan / permainan permainan yang sejuk di atasnya.

Untuk membina ini, anda memerlukan bahagian-bahagian berikut:

  1. Arudino Mega (atau klon) -
  2. Perisai Kad SD mikro Arduino (saya menggunakan ini dan menyisipkan tajuk) -
  3. Kad SD mikro - Sebarang ukuran akan berlaku tetapi mesti diformat dalam FAT32
  4. Jalur LED 5m WS2812B Boleh Ditambah -
  5. Modul Bluetooth HC05 -
  6. Bekalan kuasa 5 V 6 Amp - (Saya menggunakan ini tetapi ada seratus yang lain di ebay)
  7. Jadual Ikea LACK (klasik hobi) -
  8. Akses ke pemotong laser untuk papan lapis 3 mm (atau tangan yang sangat stabil). Anda boleh memesan bahagian pemotong laser secara dalam talian di pelbagai tempat (contohnya
  9. Cat semburan putih
  10. Bahagian T aluminium 2 m (1 1/2 x 1 1/2 x 1/8) -
  11. Bahagian atas kaca 450 mm x 450 mm x 6 mm (kebanyakan glazer tempatan boleh memotong kepingan khas untuk anda tetapi saya menggunakan lelaki ini
  12. Kapasitor Farad 1 x 100 mikro
  13. Perintang 2 x 1k
  14. Perintang 1 x 2k
  15. 1 x potensiometer putar linear
  16. Pelbagai penerjun (mungkin selusin semasa membuat prototaip)
  17. Sekurang-kurangnya tiga warna kabel yang agak tebal untuk pematerian (ini dapat menarik arus besar sehingga saya tidak mengesyorkan kabel jumper untuk kuasa)
  18. Papan lekapan untuk litar dalaman (jangan bimbang ia sangat mudah)

Alat yang diperlukan:

  1. Besi solder + pateri
  2. Sepasang potongan
  3. Pelucut wayar
  4. Dremel atau jigsaw semacam untuk meretas meja. Saya menggunakan ini https://www.amazon.co.uk/gp/product/B0078LENZC/ref… dengan bit pemotongan spiral

Langkah 1: Ujian dan Tata Letak Permulaan

Ujian dan Tata Letak Permulaan
Ujian dan Tata Letak Permulaan
Ujian dan Tata Letak Permulaan
Ujian dan Tata Letak Permulaan
Ujian dan Tata Letak Permulaan
Ujian dan Tata Letak Permulaan

Port panggilan pertama adalah memotong jalur LED ke panjang yang anda perlukan. Jalur LED ini sangat mudah digunakan kerana hanya mempunyai 3 pin dan menjadikan Arduino melakukan kerja yang sebenarnya. Saya memotong gulungan menjadi 12 bahagian masing-masing dengan panjang 12 LED seperti yang ditunjukkan dalam gambar dan meletakkannya di bahagian belakang meja untuk membantu saya menggambarkan ke mana saya pergi dengan ini.

Saya kemudian mempunyai beberapa LED yang tersisa sehingga saya menyambungkannya ke Arduino UNO yang harus saya uji sama ada ia berfungsi (anda boleh menggunakan Mega yang disebutkan dalam garis besar projek juga). Untuk melakukan ini, saya memotong dan menanggalkan kepala lelaki untuk lelaki dan menyoldernya ke pad pada hujung jalur LED. Pada jalur WS2812 saya menggunakan wayar 5V berwarna merah, tanah berwarna putih dan data berwarna hijau. Pastikan anda memperhatikan anak panah arah yang dicetak pada jalur WS2812B sehingga anda tidak mencuba dan mengirim data ke arah yang salah. Saya menghubungkan talian 5V ke 5V di Arduino, Ground ke GND dan Data ke pin 6 dengan perintang 1k secara bersiri. Perlu diingat bahawa skema Fritzing LED WS2812B sedikit berbeza dengan yang saya sampaikan - cukup untuk dikatakan, pastikan data disambungkan ke pin 6, Gnd disambungkan ke tanah dan 5 disambungkan ke 5V.

Dengan begitu sedikit LED (5 atau lebih), Arduino semestinya baik untuk memberikan kuasa; namun anda tidak dapat memberi kuasa banyak ketika LED berwarna putih masing-masing sehingga 60mA LED dan dengan cepat dapat mengatasi Arduino.

Dengan andaian anda memiliki Arduino IDE (jika tidak memuat turun dan memasangnya) tetapkan jenis chipset ke Arduino yang anda miliki dan tetapkan port COM ke yang menunjukkan Arduino dalam pilihan. Sekarang muat turun perpustakaan FastLED dan pasangkannya (https://fastled.io/). Buka contoh striptest.h dan tetapkan bilangan LED dalam lakaran kepada seberapa banyak yang anda ada (saya tinggal 5). Tekan verifikasi dan (dengan andaian semuanya berjalan lancar) muat naik ke Arduino dan anda akan melihat lampu di jalur kecil menyala dan berubah warna.

Langkah 2: Memateri Matriks dan Papan Lebar

Memateri Matriks dan Papan Lebar
Memateri Matriks dan Papan Lebar
Memateri Matriks dan Papan Lebar
Memateri Matriks dan Papan Lebar
Memateri Matriks dan Papan Lebar
Memateri Matriks dan Papan Lebar

Kini tiba masanya untuk mula membuat matriks LED.

Potong 11 panjang pendek setiap tiga warna dawai yang anda ada. Pastikan panjangnya panjang dari hujung satu jalur hingga awal yang berikutnya. Semasa meletakkan jalur LED keluar, anda perlu memastikan bahawa anak panah aliran data mengikuti ular. Setelah ini disusun, solder dengan hati-hati setiap baris yang dipimpin ke baris berikutnya seperti yang ditunjukkan dalam gambar. Ini lebih mudah jika anda menggunakan warna yang sama untuk setiap jenis sambungan.

Sekarang, lebih banyak pematerian, kita perlu membuat papan jalur yang akan mengendalikan kuasa dari bekalan kuasa utama. Saya menyolder dua tiang pada papan jalur bersama-sama untuk kedua-dua 5V dan GND supaya ia mengendalikan arus lebih baik. Lihat skema yang dilampirkan untuk litar yang perlu anda buat. Semasa menyolder kapasitor, pastikan hujung negatif dipasang pada rel GND, bukan yang 5V. Setelah papan jalur selesai, kita perlu menyambungkan + VE dan GND ke jalur LED dan juga menggunakan separuh pelompat lain yang kita potong sebelumnya untuk menyambungkan Arduino ke bekalan kuasa dan papan jalur. Sekarang adalah masa yang tepat untuk menambahkan papan pemecah SD ke Arduino supaya kita dapat menyimpan fail dan membacanya kemudian. Setelah papan pemecah SD dipasang, kita boleh menyambungkan rel 5V ke pin Vin dan GND ke pin GND mana pun di Arduino.

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

Setelah semua ini dapat dilakukan, kita boleh memuat naik sketsa striptis sekali lagi mengubah jumlah LED menjadi 144. Pastikan bekalan kuasa aktif sebelum anda memuat naik lakaran ini. Semoga semua LED menyala mengikut corak lakaran striptis supaya kita tahu semuanya berfungsi.

Langkah 3: Integrasi Modul Bluetooth

Integrasi Modul Bluetooth
Integrasi Modul Bluetooth

Pendawaian terakhir sekarang, unit HC05 menyambung ke Arduino Mega seperti yang ditunjukkan dalam skema. Pastikan unit HC05 menyambung ke port Rx1 dan Tx1 di mega - ini menjadikannya lebih mudah untuk diprogramkan dan mengelakkan penggunaan perpustakaan "softwareserial".

NB. Unit HC05 akan mengambil sama ada 5V masuk atau 3.3V masuk dan umumnya beroperasi pada logik 3.3V jadi saya menghubungkannya ke rel 3.3V. Beberapa instruktor lain telah menunjukkan Tx (pada Arduino) ke Rx (pada unit HC05) dengan litar pembahagi berpotensi untuk mengetuk logik 5 V dari Arduino ke tahap asli untuk modul HC05. Ini adalah sebab saya mempunyai perintang 1k dan 2k dalam senarai bahagian; namun, saya tidak bersusah payah dan kelihatan gembira di atas meja saya:)

Langkah 4: Penggodaman Jadual

Penggodaman Jadual
Penggodaman Jadual
Penggodaman Jadual
Penggodaman Jadual
Penggodaman Jadual
Penggodaman Jadual

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

Mula-mula tanda persegi 450 mm x 450 mm di bahagian tengah atas meja LACK. Dengan menggunakan Dremel (atau jigsaw), potong kotak dengan sebaik mungkin untuk memastikannya lurus. Sekarang kita boleh melepaskan bahagian atas dan kepingan kadbod yang meninggalkan anda dengan meja berlubang seperti yang ditunjukkan dalam gambar. Dengan menggunakan Dremel sekali lagi kita dapat mengebor lubang di sudut bawah meja sehingga kita ada tempat untuk merutekan kabel utama.

Setelah jadual disiapkan, kita dapat mengetuk LED di kedudukan yang betul sebelum kita beralih ke langkah seterusnya. Saya merasa berguna untuk memastikan bahawa elektronik betul setelah setiap langkah, jadi cuba lagi lakaran striptis.

Setelah anda selesa semuanya berada di tempat yang betul maka anda boleh mengebor beberapa lubang kecil untuk memasang bekalan kuasa di dalam tepi meja menggunakan baut kecil. Saya memilih untuk memasang Arduino di luar meja supaya saya dapat memprogram semula dengan mudah jika saya mahu tetapi ia dipasang terbalik ke bahagian bawah meja dan tidak mudah dilihat. Saya juga memasang potensiometer melalui bahagian bawah meja supaya kawalan kecerahan kelihatan bagus dan profesional.

Langkah 5: Bahagian Potong Laser

Bahagian Potong Laser
Bahagian Potong Laser
Bahagian Potong Laser
Bahagian Potong Laser
Bahagian Potong Laser
Bahagian Potong Laser

Sekarang kita perlu memperkenalkan bahagian potong laser yang membentuk matriks kuasa dua sehingga kita telah menentukan piksel. Saya telah memasukkan fail-fail dxf untuk bahagian-bahagian potongan laser yang membentuk matriks kayu dan juga gambar-gambarnya supaya anda tahu seperti apa bentuknya. Mereka terbuat dari dua kepingan yang terpisah, satu melintasi setiap barisan LED dan yang lain melintasi mereka. Bahagian yang melintang mempunyai jurang tinggi 10 mm yang dipotong di bahagian bawah untuk membolehkan pendawaian melewati. Jurang ini dapat dikurangkan menjadi 5 mm kerana saya nampaknya sedikit kebocoran cahaya dari satu piksel ke piksel yang berikutnya.

Sebanyak 11 salinan kedua-dua bahagian mesti dipotong dengan laser dari papan lapis 3mm dan kemudian memasangnya untuk memastikannya betul. Setelah anda berpuas hati, lepaskan matriks sekali lagi dan semburkannya putih untuk memperbaiki ciri-ciri pantulan meja. Apabila kering, pasangkan semula dan letakkan di atas LED. Mungkin lebih sukar untuk memasangkannya bersama-sama setelah menyemburkan kerana sekarang sedikit lebih tebal tetapi jangan bimbang, ketuk perlahan-lahan sebelum meletakkan matriks ke dalam meja.

Langkah 6: Glediator

Glediator
Glediator
Glediator
Glediator

Sekarang kita telah melaksanakan semua perkakasan, kita boleh mula melihat perisian. Saya memuat turun dan memasang perisian yang dipanggil Glediator untuk membuat animasi untuk LED (https://www.solderlab.de/index.php/software/glediat…). Arahan pemasangan boleh menjadi sedikit halus tetapi ikuti laman web dengan teliti dan anda semestinya baik-baik saja. Kita juga perlu memuat turun lakaran dari laman web Glediator untuk memuat naik ke Arduino (https://www.solderlab.de/index.php/downloads/catego…). Kami menggunakan WS2812B LED jadi pastikan anda memuat turun yang betul (WS2812 Glediator Interface). Setelah anda membuka lakaran ini, ubah NUMBER_OF_PIXELS menjadi 144 dan muat naik ke Arduino.

Setelah Glediator dipasang, kita boleh mula memainkan animasi di atas meja. Pertama, kita perlu menetapkan ukuran matriks ke 12 x 12 dalam perisian Glediator dan juga menetapkan jenis output ke HSBL - Ular Mendatar (bermula) Bawah Kiri kerana ini adalah cara kita memasang LED dan menukar urutan warna ke GRB (inilah yang digunakan oleh data untuk LED). Pada tab output, buka port COM dan matriks LED akan mula memaparkan corak LED di skrin tengah perisian Glediator.

Anda boleh membuat animasi dan merekamnya ke fail.dat yang dapat kami muat naik ke kad SD yang bermaksud bahawa animasi kegemaran anda dapat ditampilkan di atas meja tanpa memerlukan PC untuk dihubungkan. Terdapat beberapa tutorial dalam talian mengenai perkara ini (misalnya https://hackaday.io/project/5714-glediator-from-sd…). Saya telah mengubahsuai beberapa sumber kod yang berbeza untuk berfungsi sehingga kod saya harus baik-baik saja.

Semasa menyimpan animasi anda, pastikan anda menyimpannya sebagai "animX.dat" di mana X adalah nombor apa pun dari 1-15. Anda boleh melaksanakan lebih banyak lagi dengan menukar beberapa baris dalam kod saya.

NB- Semasa merakam fail Glediator, perisian mempunyai bug di dalamnya yang bermaksud tidak ingat bagaimana anda memasang jalur LED. Dalam kod saya, saya telah melaksanakan fungsi mudah untuk membalikkan susunan baris nombor genap yang bermaksud semuanya dipaparkan dengan betul

Langkah 7: Kawalan Bersiri Bluetooth

Kawalan Bersiri Bluetooth
Kawalan Bersiri Bluetooth
Kawalan Bersiri Bluetooth
Kawalan Bersiri Bluetooth

Menyiapkan komunikasi bluetooth antara telefon pintar dan Arduino terbukti sangat sukar tetapi ada beberapa langkah mudah yang akan menjadikannya lebih mudah. Pertama, anda perlu memuat turun aplikasi untuk telefon pintar anda. Saya menggunakan https://play.google.com/store/apps/details?id=com…. tetapi mungkin ada yang setara dengan iphone (yang harus anda bayar; p)

Anda mungkin menyedari bahawa modul HC05 mempunyai suis kecil padanya. Sekiranya anda menghidupkannya dengan suis ini ditekan, ia memasuki mod AT yang bermaksud anda boleh menyoal parameter di atasnya dan mengubahnya jika anda mahu.

Muat naik lakaran yang dilampirkan ke Mega dan tetapkan kadar siri pada PC anda ke 9600. Putuskan kuasa ke unit HC05 dan kemudian tekan butang di bawahnya semasa anda menyambungkannya semula. Berkedip sekarang kira-kira sekali setiap dua saat - sekarang HC05 berada dalam mod AT.

Sekarang di monitor bersiri kita dapat mengirim perintah ke HC05 dan melihat tindak balasnya. Ketik "AT" dan tekan hantar dan anda akan melihat "OK" kembali pada monitor bersiri - sekarang kita tahu ia sedang mendengar. Nama bluetooth peranti boleh diubah dengan menaip "AT + NAME = XYZPQR" di mana XYZPQR adalah yang anda mahukan dipanggil modul. Saya memanggil saya LightWave. Kod laluan lalai untuk modul bluetooth adalah 1234 (atau 0000) tetapi ini juga boleh diubah dengan menghantar "AT + PSWD = 9876" misalnya. Akhirnya, kita dapat mengubah kadar komunikasi HC05 dengan menghantar "AT + UART = 38400". Ini adalah kadar lalai untuk kebanyakan modul HC05 tetapi modul saya telah ditetapkan secara berbeza jadi adalah amalan yang baik untuk menetapkannya dengan pasti. Terdapat banyak lagi perincian mengenai arahan ini di sini: https://www.itead.cc/wiki/Serial_Port_Bluetooth_M… dan ada juga arahan mengenai langkah ini yang mempunyai lebih banyak perincian https://www.instructables.com/id/Modify -The-HC-05-…

Sekarang kita dapat mencuba mengirimkan perintah ke modul melalui perangkat bluetooth. Mula-mula putuskan kuasa ke modul HC05 dan kemudian sambungkan semula. Anda harus melihat bahawa kadar berkelip LED jauh lebih pantas - ini bermakna sekarang sedang menunggu untuk berpasangan. Pada telefon pintar anda, buka aplikasi Arduino Bluetooth Controller dan cari modul HC05. Sekiranya anda belum menukar namanya kemungkinan akan dipanggil HC05 atau yang serupa. Apabila diberi pilihan bagaimana anda ingin menyambung, pilih mod Terminal. Sekarang cuba hantarkan beberapa nombor dan teks dan lihat apakah monitor bersiri pada PC melaporkan bahawa mereka telah diterima. Mudah-mudahan ada sehingga kita dapat terus maju, jika tidak ada banyak instruksional yang mungkin memberi anda beberapa petunjuk (https://www.instructables.com/id/Bluetooth-Hc-05-W… misalnya).

Perkara terakhir yang perlu dilakukan di sini adalah memetakan input pengawal ke nombor yang dapat dilakukan oleh Arduino. Saya menggunakan nilai berikut:

Naik = 1, Turun = 2, Kiri = 3, Betul = 4, Mula = 5, Pilih = 6.

Langkah 8: Permainan

Permainan
Permainan

Saya tidak mempercayai kod permainan. Saya menggunakan kod sumber yang terdapat di sini https://github.com/davidhrbaty/IKEA-LED- Jadual yang ditulis oleh davidhrbaty. Walau bagaimanapun, saya telah mengubahnya dengan beberapa cara yang berbeza:

  1. Saya menambahkan fungsi kekangan kecerahan berdasarkan nilai potensiometer sehingga kita dapat mengubah kecerahan
  2. Saya membuang permainan batu bata kerana saya tidak dapat menyusunnya
  3. Saya menukar pengekodan warna blok tetris sehingga semuanya berbeza warna
  4. Saya menyusun semula menu
  5. Saya melaksanakan pilihan untuk memainkan animasi dari kad SD
  6. Saya menambah penjejakan skor tinggi dan pilihan paparan skor tinggi dalam menu

Kod yang dilampirkan harus berfungsi dengan segera tetapi jika tidak, cadangan saya adalah membuang permainan yang sepertinya menyebabkan mesej ralat dan mengesahkan kodnya lagi sehingga anda mengetahui di mana masalahnya. Kemudian secara beransur-ansur tambahkan kembali lebih banyak kerumitan.

Pengarang asal kod ini melakukan pekerjaan yang hebat untuk membina sesuatu yang benar-benar modular dan mudah ditambahkan. Tidak sukar untuk menambah kes tambahan untuk menambahkan lebih banyak fungsi ke dalam jadual.

Pilihan dalam menu adalah:

  1. Kad SD - Memainkan animasi yang disimpan pada kad SD
  2. Tetris
  3. Ular
  4. Pong
  5. Dice - Penjana nuber rawak antara 1 dan 6
  6. Animasi - Kumpulan animasi dari perpustakaan FastLED
  7. Stars Animation - EDIT - Saya kini telah melaksanakan Conway's Game of Life dan bukannya animasi ini
  8. Animasi Pelangi
  9. Skor Tinggi - Memaparkan skor tinggi untuk tetris dan ular

Sebelum mula bermain, anda perlu membuat dua fail txt pada kad SD, satu dipanggil "teths.txt" dan satu lagi dipanggil "snkhs.txt". Dalam kedua-dua fail ini masukkan nombor 0 kemudian simpan di folder root kad SD. Ini adalah fail penjejakan skor tinggi dan akan dikemas kini setiap kali skor tinggi dikalahkan. Sekiranya anda mahu menetapkannya semula, ubah semula nilai menjadi 0 pada PC.

Sebaik sahaja anda memuat naik program LED_table ke Arduino, anda boleh membuka monitor bersiri dan anda seharusnya dapat melihat perintah bluetooth semasa anda menghantarnya - dengan cara ini anda tahu semuanya berfungsi dengan baik.

Langkah 9: Nikmati

Nikmati
Nikmati
Nikmati
Nikmati
Nikmati
Nikmati

Yang tinggal hanyalah memuat naik kod jadual LED utama ke Mega dan kemudian seronok bermain dan beritahu saya skor tinggi anda!

Saya masih menunggu bahagian bahagian atas meja tiba (bahagian Aluminium T dan kaca) tetapi meja sekarang berfungsi dengan baik dan saya boleh bermain permainan di atasnya.

Beritahu saya jika anda mempunyai komen, suntingan atau mengetahui kesilapan yang saya buat.

Langkah 10: Kemas kini

Image
Image
Kemas kini
Kemas kini
Kemas kini
Kemas kini

Sekarang ia sudah siap sepenuhnya!:)

Saya akhirnya mengambil bahagian aluminium T untuk bahagian tepi dan melakukan yang terbaik untuk memotong sendi (ternyata 45 darjah adalah salah satu sudut yang lebih keras) tetapi hampir sama. Untuk bahagian atas, saya memutuskan untuk mendapatkan kepingan kaca yang lebih tebal (425 x 425 x 8mm) dan saya membekam bahagian bawah menggunakan semburan frosting kaca Rustoleum. Saya menggunakan caulk biasa (silikon sealant) untuk menyatukan bahagian atas dan sudut sehingga terdapat sedikit lenturan pada penyambungan jika diperlukan.

Kemas kini yang dikemas kini. Sekarang saya telah menambahkan dalam Game of Life Conway sebagai pilihan 7 dalam menu dan bukannya animasi bintang kerana saya tidak pernah menggunakannya. Sekiranya anda tidak tahu apa permainan ini, Google, tetapi pada dasarnya ia adalah permainan pemain sifar yang menunjukkan evolusi berdasarkan tiga peraturan mudah. Permainan Kehidupan Conway

Kemas kini ^ 3. Saya telah membuat beberapa pengubahsuaian pada kod sehingga sekarang termasuk perbaikan bug mengenai peredupan LED merah dan juga menyertakan animasi pohon Krismas sebagai Pilihan 11 di Menu. Nikmati.

Disyorkan: