- Bahan yang Dibutuhkan:
- Diagram Sirkuit:
- Membuat Aplikasi Android menggunakan Pemrosesan:
- Memahami Kode Pemrosesan:
- Memprogram Arduino Anda:
- Desain Sirkuit dan PCB menggunakan EasyEDA:
- Menghitung dan Memesan Sampel secara online:
- Cara kerja tampilan papan Tanda Bluetooth:
Baik itu jalan raya yang membentang panjang atau pintu depan dokter Anda, kami memiliki papan tanda ditempatkan di mana-mana untuk memberi kami informasi. Tetapi papan tanda ini seringkali membosankan dan tidak dapat dikonfigurasi sesuai minat kita dari waktu ke waktu. Jadi dalam proyek ini kita akan membuat papan Tanda yang dikontrol Bluetooth menggunakan tampilan Matriks 8 * 8. Fitur unik dari proyek ini adalah aplikasi androidnya yang memungkinkan pengguna untuk mengontrol semua 64 LED satu per satu dari ponsel. Hal ini memungkinkan pengguna untuk membuat desain custom dengan mudah dan menampilkannya di layar LED, terdengar menarik bukan? !! Jadi mari kita mulai…
Bahan yang Dibutuhkan:
- Arduino Pro mini
- MAX7219
- Modul Bluetooth HC-05
- 8 * 8 Tampilan Matriks LED
- Resistor 20k
- DC Barrel Jack
Diagram Sirkuit:
Diagram sirkuit papan LED yang dikendalikan Bluetooth ini dibuat menggunakan aplikasi EasyEDA. Kami akan menggunakan skema yang sama untuk mengembangkan PCB darinya dan membuatnya menggunakan EasyEDA.
Sirkuitnya cukup lurus ke depan. Seluruh proyek didukung oleh adaptor 12V, yang langsung diberikan ke pin Raw Arduino Board. Tegangan mentah ini kemudian diatur ke + 5V yang disuplai ke modul Bluetooth dan IC MAX7219. Pin Tx dan Rx dari modul Bluetooth terhubung ke D11 dan D10 dari Arduino untuk mengaktifkan koneksi serial.
Pin digital D5 ke D7 dihubungkan ke IC MAX7219 untuk mengirim dan menerima data melalui komunikasi SPI. Pin ISET MAX7219 ditarik tinggi melalui Resistor 20k.
Untuk proyek ini saya telah membuat PCB, Anda bisa mendapatkan file desain dari PCB dan menggunakan yang sama atau membangun sirkuit di papan tempat memotong roti. Namun karena kerumitannya, disarankan untuk membeli modul Display 8x8 atau menggunakan PCB
Matriks 8x8 adalah modul tampilan yang sangat berguna dan dapat digunakan di banyak proyek keren:
- Mengontrol Matriks LED 8x8 dengan Raspberry Pi
- Scrolling Text Display pada 8x8 LED Matrix menggunakan Arduino
- 8x8 LED Matrix menggunakan Arduino
- Antarmuka Matriks LED 8x8 dengan Mikrokontroler AVR
Membuat Aplikasi Android menggunakan Pemrosesan:
Sebelum kita dapat mulai memprogram Arduino kita, kita harus tahu jenis data apa yang akan kita terima dari ponsel untuk meresponnya. Jadi mari kita lihat bagaimana aplikasi Android dibuat dan bagaimana Anda dapat menggunakannya pada ponsel cerdas Anda untuk mengontrol matriks LED 8x8.
Aplikasi Android untuk proyek ini dibuat menggunakan perangkat lunak Pemrosesan. Ini adalah aplikasi pengembangan Open-Source dan dapat dengan mudah diunduh dan digunakan untuk mengembangkan proyek-proyek menarik menggunakan Arduino atau Mikrokontroler lainnya karena dapat mengembangkan aplikasi android dan aplikasi sistem. Kami telah melakukan beberapa proyek menggunakan Pemrosesan dan Anda dapat memeriksanya dengan mengklik tautan di bawah.
- Radio FM DIY Menggunakan Pemrosesan
- Kontrol Virtual Reality / Gesture menggunakan Arduino
- Ruang Obrolan Pribadi menggunakan Arduino.
- Sistem Radar Arduino menggunakan Processing APP dan Ultrasonic Sensor
- Deteksi Wajah dan Pelacakan Real Time menggunakan Arduino
- Speedometer DIY menggunakan Arduino dan Pemrosesan
- Game Ping Pong menggunakan Arduino Accelerometer
- Robot Biped Menggunakan Arduino
- Kamera Pencitraan Termal Arduino DIY
Kembali ke topik, tidak mungkin bagi saya menjelaskan kode lengkap aplikasi android sehingga Anda harus belajar memproses sendiri dan kemudian melihat kode untuk memahami cara kerjanya. Karenanya bagi orang-orang yang ingin melewatkan proses pembelajaran Processing dapat mengunduh aplikasi android dari tautan di bawah ini
- Unduh Aplikasi Android
Di bawah ini adalah antarmuka Aplikasi Android kami:
File APK dapat langsung diinstal pada aplikasi Android apa pun dan diluncurkan seperti aplikasi lainnya. Tetapi pastikan perangkat Bluetooth HC-05 Anda diberi nama sebagai "HC-05", karena hanya dengan begitu perangkat itu akan berfungsi.
Memahami Kode Pemrosesan:
Orang yang tertarik untuk mengetahui apa yang terjadi di balik layar dapat membaca lebih lanjut, yang lain dapat melompat ke judul berikutnya. Pada dasarnya aplikasi Android terhubung ke perangkat Bluetooth yang disebut "HC-05" selama start-up dan menampilkan 64 LED dalam bentuk lingkaran. Kemudian ketika pengguna menekan lingkaran, lingkaran berubah menjadi merah dan nomor lingkaran dikirim ke Arduino melalui Bluetooth, saat menerima nomor lingkaran Arduino menyalakan LED. Mari kita lihat baris penting dari program Pemrosesan untuk memahami lebih baik. Kode lengkap aplikasi Android dapat diunduh dari tautan di bawah ini.
- Memproses Kode untuk Aplikasi Android
Kami menggunakan kelas dan objek untuk menampilkan 64 LED sehingga kami dapat mengatasinya dengan mudah. Seperti yang Anda lihat pada kode di bawah ini, kami menggunakan for loop untuk beralih dari 1 ke 64 menggunakan array. Ini adalah setiap LED akan memiliki nilai posisi X, posisi dan warna Y dan kita dapat mengubahnya dengan mudah.
// dipslay semua leds untuk (int i = 1; i <= 64; i ++) led_array.display (); // Semua led menampilkan kelas Led { float X_Pos; mengapung Y_Pos; warna warna; // CONSTRUTOR Led (tempx float, tempy float, tempc warna) { X_Pos = tempx; Y_Pos = tempy; warna = tempc; } tampilan kosong () { isi (warna); elips (X_Pos, Y_Pos, led_dia, led_dia); } }
LED dimuat di layar dengan urutan yang sama dengan tampilan. Setiap LED dipisahkan oleh jarak yang sama dengan diameter LED, dengan cara ini kita dapat dengan mudah membedakan LED mana yang saat ini dipilih oleh pengguna. Seperti yang ditunjukkan pada program di bawah ini, kami membuat larik di mana setiap elemen menyimpan informasi dari posisi X, Y, dan warna LED.
void load_leds () { led_array = new Led; int a = 1; untuk (int j = 0; j <= 7; j ++) { float y = height / 6 + j * (led_dia * 1.5); untuk (int i = 0; i <= 7; i ++) { float x = (width / 6) + i * (led_dia * 1.5); // isi (255); // elips (x, y, led_dia, led_dia); led_array = Led baru (x, y, color (255.255.255)); a ++; } } }
Langkah utama dalam program ini adalah untuk memeriksa apakah pengguna telah menekan LED apa pun dan jika ya, kami harus mengubah warna LED dan mengirim nomor LED melalui Bluetooth. Karena sekarang kita dapat mengatasi lokasi dan warna setiap LED dengan mudah, kita dapat melakukan ini hanya dengan membandingkan nilai X, Y di mana pengguna menekan dengan nilai X, Y dari LED. Jika nilai-nilai bergabung satu sama lain maka kami mengubah status LED dan juga mengirim nomor melalui Bluetooth seperti yang ditunjukkan di bawah ini.
// periksa apakah mouse over led // Jika ya kirim nomor led untuk (int i = 1; i <= 64; i ++) { if ((mouseX <(led_array.X_Pos + led_dia / 2)) && (mouseX> (led_array.X_Pos - led_dia / 2)) && (mouseY <(led_array.Y_Pos + led_dia / 2)) && (mouseY> (led_array.Y_Pos - led_dia / 2))) {led_array = Led baru (led_array.X_Pos, led_array. Y_Pos, led_color); data byte = {byte (i)}; bt.broadcast (data); } }
Selain itu, program ini juga dapat Mengatur Ulang LED lengkap dengan mematikan semuanya dan Anda juga dapat membuat LED menjadi merah (ON) atau putih (OFF) sehingga kami juga memiliki tombol sakelar untuk itu. Tombol sakelar ditampilkan dan menunggu masukan. Jika ditekan, tindakan masing-masing akan diambil. Kode untuk melakukan hal yang sama ditunjukkan di bawah ini sebagai fungsi yang dipanggil di dalam draw loop.
void load_buttons () { rectMode (CENTER); textAlign (PUSAT, PUSAT); noStroke (); isi (# 1BF2D4); persegi (lebar / 2-lebar / 4, tinggi / 1,3, lebar / 4, tinggi / 12); isi (0); teks ("Setel ulang", lebar / 2-lebar / 4, tinggi / 1,3); // tombol 1 if (red == true) {fill (# 080F89); persegi (lebar / 2 + lebar / 4, tinggi / 1,3, lebar / 4, tinggi / 12); isi (255,0,0); teks ("MERAH", lebar / 2 + lebar / 4, tinggi / 1.3);} // tombol 2 if (merah == salah) {isi (# 080F89); persegi (lebar / 2 + lebar / 4, tinggi / 1,3, lebar / 4, tinggi / 12); isi (255); teks ("WHITE", lebar / 2 + lebar / 4, tinggi / 1.3);} // tombol 2 } void read_buttons () { if (mousePressed && click_flag == true) { color_val = get (mouseX, mouseY); click_flag = false; jika (color_val == - 14945580) { byte data = {0}; bt.broadcast (data); println ("RESET"); load_leds (); // muat semua led di posisi dan warna } if (color_val == - 16248951) { byte data = {100}; bt.broadcast (data); jika (merah == benar) merah = salah; lain jika (merah == salah) merah = benar; println ("TOGGLE"); } color_val = 0; } }
Memprogram Arduino Anda:
Program Arduino lengkap untuk proyek Papan nirkabel yang dikendalikan Bluetooth ini diberikan di bagian bawah layar ini; Anda dapat menggunakannya secara langsung dan mengunggahnya ke papan Anda. Baris penting dalam program dijelaskan di bawah ini.
The modul Bluetooth terhubung ke pin 10 dan 11, maka kita harus menggunakan seri perangkat lunak untuk memungkinkan komunikasi serial pada pin ini dan kemudian kita dapat mendengarkan data dari pin ini. Kami mendapatkan data yang diterima dari modul Bluetooth dan menyimpannya dalam variabel yang disebut masuk . Jika nilai masuk adalah “0” kami akan mematikan semua LED menggunakan kode di bawah ini
if (BT.available ()) { incoming = BT.read (); Serial.println (masuk); jika (masuk == 0) m.clear (); // Menghapus tampilan
Dengan menggunakan nilai masuk kita harus menentukan LED mana yang telah ditekan pengguna pada ponsel dan cuaca untuk menyalakan atau mematikan LED itu. Jadi kami memeriksa apakah nilainya sama dengan 100. Jika nilainya 10, berarti pengguna telah meminta untuk mengubah warna LED. Jadi kami mengubah variabel menjadi merah untuk mengetahui apakah LED harus dinyalakan atau dimatikan.
else if (incoming == 100) // Periksa apakah kita harus menyalakan atau mematikan LED { if (red == true) red = false; lain jika (merah == salah) merah = benar; Serial.print ("MERAH:"); Serial.println (merah); }
Terakhir jika nilainya lebih dari 65 berarti pengguna telah menekan sebuah LED. Berdasarkan angka dari 1 hingga 64 kita harus menentukan LED mana yang ditekan pengguna. Untuk mengaktifkan LED itu kita akan membutuhkan nilai Baris dan Kolom dari LED itu yang dihitung dan disimpan pada variabel X dan Y masing-masing dan ditunjukkan pada kode di bawah ini. Akhirnya berdasarkan nilai variabel merah kami menyalakan atau mematikan LED sesuai permintaan pengguna
else if (masuk <= 64) {// Hitung dimana ON ro OFF toggle LED = true; Y = masuk / 8; X = masuk - (Y * 8); jika (masuk% 8 == 0) {X = 8; Y - = 1;} Serial.println (X - 1); Serial.println (Y); jika (merah == benar) m.setDot ((X - 1), (Y), benar); // LED ON lain jika (merah == salah) m.setDot ((X - 1), (Y), false); // LED MATI }
Desain Sirkuit dan PCB menggunakan EasyEDA:
Untuk mendesain tampilan Bluetooth Controlled Matrix ini, kami telah memilih alat EDA online yang disebut EasyEDA. Saya sebelumnya telah menggunakan EasyEDA beberapa kali dan merasa sangat nyaman untuk digunakan karena memiliki koleksi footprint yang bagus dan bersifat open-source. Setelah mendesain PCB, kita dapat memesan sampel PCB melalui layanan fabrikasi PCB berbiaya rendah. Mereka juga menawarkan layanan sumber komponen di mana mereka memiliki stok besar komponen elektronik dan pengguna dapat memesan komponen yang diperlukan bersama dengan pesanan PCB.
Saat mendesain sirkuit dan PCB, Anda juga dapat membuat desain sirkuit dan PCB Anda menjadi publik sehingga pengguna lain dapat menyalin atau mengeditnya dan dapat memanfaatkan pekerjaan Anda, kami juga telah membuat seluruh layout Sirkuit dan PCB kami publik untuk sirkuit ini, periksa tautan di bawah ini:
easyeda.com/circuitdigest/8x8-led-matrix-display-control-with-bluetooth
Anda dapat melihat setiap Layer (Atas, Bawah, Topsilk, bottomsilk dll) dari PCB dengan memilih layer dari Window 'Layers'.
Anda juga dapat melihat PCB, bagaimana tampilannya setelah fabrikasi menggunakan tombol Tampilan Foto di EasyEDA:
Menghitung dan Memesan Sampel secara online:
Setelah menyelesaikan desain PCB Matriks Terkendali Bluetooth ini, Anda dapat memesan PCB melalui JLCPCB.com. Untuk memesan PCB dari JLCPCB, Anda membutuhkan File Gerber. Untuk mengunduh file Gerber dari PCB Anda cukup klik tombol Output Fabrikasi di halaman editor EasyEDA, lalu unduh dari halaman pemesanan EasyEDA PCB.
Sekarang masuk ke JLCPCB.com dan klik tombol atau Quote Now, lalu Anda dapat memilih jumlah PCB yang ingin Anda pesan, berapa banyak lapisan tembaga yang Anda butuhkan, ketebalan PCB, berat tembaga, bahkan warna PCB, seperti snapshot. ditunjukkan di bawah ini:
Setelah Anda memilih semua opsi, klik "Simpan ke Keranjang" dan kemudian Anda akan dibawa ke halaman di mana Anda dapat mengunggah File Gerber Anda yang telah kami unduh dari EasyEDA. Unggah file Gerber Anda dan klik "Simpan ke Keranjang". Dan terakhir klik Checkout Securely untuk menyelesaikan pesanan Anda, lalu Anda akan mendapatkan PCB beberapa hari kemudian. Mereka membuat PCB dengan harga sangat rendah yaitu $ 2. Waktu pembuatannya juga sangat kurang yaitu 48 jam dengan pengiriman DHL 3-5 hari, pada dasarnya Anda akan mendapatkan PCB dalam waktu seminggu setelah pemesanan.
Setelah beberapa hari memesan PCB, saya mendapatkan sampel PCB dalam kemasan yang bagus seperti yang ditunjukkan pada gambar di bawah ini.
Dan setelah mendapatkan potongan-potongan ini saya telah menyolder semua komponen yang diperlukan di atas PCB.
Di PCB saya, saya membuat kesalahan langsung dengan memilih footprint yang salah untuk modul Display 8 * 8, oleh karena itu saya harus menggunakan papan Perf untuk memasang layar seperti yang ditunjukkan pada gambar. Tetapi sekarang footprint adalah pembaruan di PCB dan Anda dapat memesan PCB yang dikoreksi dan memasang modul tampilan dengan mudah.
Cara kerja tampilan papan Tanda Bluetooth:
Setelah Anda siap dengan Perangkat Keras baik melalui mendapatkan PCB atau membuat koneksi di papan tempat memotong roti, gunakan program Arduino yang diberikan di akhir halaman dan unggah ke Papan Arduino Anda. The file aplikasi APK android juga disediakan di atas, menggunakannya dan menginstal aplikasi pada perangkat Android yang Anda inginkan.
Nyalakan perangkat keras dan cari nama perangkat HC-05 di ponsel Anda untuk memasangkannya. Secara default, kunci sandi adalah 1234. Setelah itu buka aplikasi yang baru kita install. Aplikasi harus menampilkan " terhubung ke HC-05 " di bagian atas layar, kemudian Anda akan dapat menyentuh LED di layar dan melihat bahwa LED yang sama juga sedang menyala di papan.
Anda juga dapat mematikan semua LED dengan menekan tombol Reset dan memutuskan untuk menyalakan atau mematikan LED tertentu dengan menekan tombol Toggle. Secara default, LED mana pun yang Anda tekan akan dihidupkan. Pekerjaan lengkap proyek dapat ditemukan di video di bawah ini. Jika Anda memiliki masalah dalam membuatnya berfungsi, gunakan kotak komentar di bawah atau tulis di forum kami untuk bantuan teknis lebih lanjut. Semoga Anda memahami tutorialnya dan menikmati membuatnya.