Isi kandungan:

Warna LED Kawalan RGB DIY Melalui Bluetooth: 5 Langkah
Warna LED Kawalan RGB DIY Melalui Bluetooth: 5 Langkah

Video: Warna LED Kawalan RGB DIY Melalui Bluetooth: 5 Langkah

Video: Warna LED Kawalan RGB DIY Melalui Bluetooth: 5 Langkah
Video: Review Smart Strip LED RGB WS2812B, LED Cerdas Yang Bisa Diatur perpixel 2024, November
Anonim
Warna LED Kawalan RGB DIY Melalui Bluetooth
Warna LED Kawalan RGB DIY Melalui Bluetooth

Mentol pintar telah meningkat populariti baru-baru ini dan terus menjadi bahagian penting dalam alat perkakas rumah pintar. Mentol pintar membolehkan pengguna mengawal cahaya mereka melalui aplikasi khas pada telefon pintar pengguna; mentol boleh dihidupkan dan dimatikan dan warnanya boleh diubah dari antara muka aplikasi. Dalam projek ini, kami membina pengawal mentol pintar yang dapat dikendalikan dari butang manual atau aplikasi mudah alih melalui Bluetooth. Untuk menambahkan bakat pada projek ini, kami telah menambahkan beberapa ciri yang membolehkan pengguna memilih warna pencahayaan dari senarai warna yang termasuk dalam antara muka aplikasi. Ia juga dapat mengaktifkan "campuran automatik" untuk menghasilkan kesan warna dan mengubah pencahayaan setiap setengah saat. Pengguna dapat membuat campuran warna mereka sendiri menggunakan fitur PWM yang juga dapat digunakan sebagai redup untuk tiga warna asas (merah, hijau, biru). Kami juga menambahkan butang luaran ke litar sehingga pengguna dapat beralih ke mod manual dan mengubah warna cahaya dari butang luaran.

Instructable ini terdiri daripada dua bahagian; reka bentuk GreenPAK ™ dan reka bentuk aplikasi Android. Reka bentuk GreenPAK didasarkan pada penggunaan antara muka UART untuk komunikasi. UART dipilih kerana disokong oleh kebanyakan modul Bluetooth, serta kebanyakan periferal lain, seperti modul WIFI. Oleh itu, reka bentuk GreenPAK dapat digunakan dalam banyak jenis sambungan.

Untuk membina projek ini, kami akan menggunakan SLG46620 CMIC, modul Bluetooth, dan LED RGB. GreenPAK IC akan menjadi teras kawalan projek ini; ia menerima data dari modul Bluetooth dan / atau butang luaran, kemudian memulakan prosedur yang diperlukan untuk menampilkan pencahayaan yang betul. Ia juga menghasilkan isyarat PWM dan mengeluarkannya ke LED. Rajah 1 di bawah menunjukkan gambarajah blok.

Peranti GreenPAK yang digunakan dalam projek ini mengandungi antara muka sambungan SPI, blok PWM, FSM dan banyak blok tambahan lain yang berguna dalam satu IC. Ia juga dicirikan oleh saiznya yang kecil dan penggunaan tenaga yang rendah. Ini akan membolehkan pengeluar membina litar praktikal kecil menggunakan satu IC, oleh itu kos pengeluaran akan diminimumkan jika dibandingkan dengan sistem yang serupa.

Dalam projek ini, kami mengawal satu LED RGB. Untuk menjadikan projek ini dapat dilaksanakan secara komersial, sistem mungkin perlu meningkatkan tahap cahaya dengan menghubungkan banyak LED secara selari dan menggunakan transistor yang sesuai; litar kuasa juga perlu diambil kira.

Anda boleh melalui semua langkah untuk memahami bagaimana cip GreenPAK telah diprogramkan untuk mengawal Warna LED RGB melalui Bluetooth. Walau bagaimanapun, jika anda hanya ingin memprogram IC dengan mudah tanpa memahami semua litar dalaman, muat turun perisian GreenPAK untuk melihat Fail Reka Bentuk GreenPAK yang sudah siap. Pasang GreenPAK Development Kit ke komputer anda dan tekan program untuk membuat IC khusus untuk mengawal Warna LED RGB melalui Bluetooth.

Reka bentuk GreenPAK terdiri daripada penerima UART, unit PWM, dan unit kawalan yang dijelaskan dalam langkah-langkah di bawah.

Langkah 1: Penerima UART

Penerima UART
Penerima UART

Pertama, kita perlu menyediakan modul Bluetooth. Kebanyakan IC Bluetooth menyokong protokol UART untuk komunikasi. UART bermaksud Penerima / Pemancar Asinkron Sejagat. UART dapat menukar data bolak-balik antara format selari dan bersiri. Ia merangkumi penerima siri ke selari dan penukar selari ke siri yang kedua-duanya dicatat secara berasingan.

Data yang diterima dalam modul Bluetooth akan dihantar ke peranti GreenPAK kami. Keadaan tidak aktif untuk Pin10 adalah TINGGI. Setiap watak yang dihantar bermula dengan bit permulaan RENDAH logik, diikuti dengan bilangan bit data yang dapat dikonfigurasi dan satu atau lebih bit berhenti TINGGI logik.

Pemancar UART menghantar 1 bit MULAI, 8 bit data, dan satu bit STOP. Biasanya, kadar baud lalai untuk modul Bluetooth UART adalah 9600. Kami akan menghantar bait data dari IC Bluetooth ke blok SPI GreenPAK ™ SLG46620.

Oleh kerana blok GreenPAK SPI tidak mempunyai kawalan bit MULAI atau BERHENTI, kami akan menggunakan bit tersebut untuk mengaktifkan dan mematikan isyarat jam SPI (SCLK). Apabila Pin10 berjalan RENDAH, kita tahu kita telah menerima bit MULAI, jadi kita menggunakan pengesan tepi jatuh PDLY untuk mengenal pasti permulaan komunikasi. Pengesan tepi jatuh itu mengacu pada DFF0, yang membolehkan isyarat SCLK mencatat blok SPI.

Kadar baud kami adalah 9600 bit sesaat, jadi tempoh SCLK kami harus 1/9600 = 104 μs. Oleh itu, kami menetapkan frekuensi OSC ke 2MHz dan menggunakan CNT0 sebagai pembahagi frekuensi.

2 MHz-1 = 0.5 μs

(104 μs / 0,5 μs) - 1 = 207

Oleh itu, kami mahu nilai penghitung CNT0 menjadi 207. Untuk memastikan bahawa kami tidak kehilangan sebarang data, kami perlu menunda jam SPI dengan setengah kitaran jam sehingga blok SPI dicatat pada waktu yang tepat. Kami berjaya melakukannya dengan menggunakan CNT6, LUT1 2-bit, dan Jam Luaran OSC. Keluaran CNT6 tidak tinggi sehingga 52 μs selepas DFF0 dicatat, yang merupakan separuh daripada tempoh 104 μs SCLK kami. Apabila CNT6 tinggi, pintu LUT1 AND 2-bit membenarkan isyarat OSC 2MHz untuk masuk ke EXT. Input CLK0, yang outputnya disambungkan ke CNT0.

Langkah 2: Unit PWM

Unit PWM
Unit PWM

Isyarat PWM dihasilkan menggunakan PWM0 dan penjana denyut jam yang berkaitan (CNT8 / DLY8). Oleh kerana lebar nadi dapat dikendalikan oleh pengguna, kami menggunakan FSM0 (yang dapat dihubungkan ke PWM0) untuk menghitung data pengguna.

Dalam SLG46620, FSM1 8-bit boleh digunakan dengan PWM1 dan PWM2. Modul Bluetooth mesti disambungkan, yang bermaksud output selari SPI mesti digunakan. Bit output selari SPI 0 hingga 7 disatukan dengan DCMP1, DMCP2, dan OUT1 dan OUT0 LF OSC CLK. PWM0 memperoleh outputnya dari FSM0 16-bit. Dibiarkan tidak berubah ini menyebabkan lebar nadi berlebihan. Untuk menghadkan nilai pembilang pada 8 bit FSM lain ditambahkan; FSM1 digunakan sebagai penunjuk untuk mengetahui bila pembilang mencapai 0 atau 255. FSM0 digunakan untuk menghasilkan nadi PWM. FSM0 dan FSM1 mesti disegerakkan. Oleh kerana kedua-dua FSM mempunyai pilihan jam yang telah ditetapkan, CNT1 dan CNT3 digunakan sebagai pengantara untuk menyampaikan CLK ke kedua FSM. Kedua-dua pembilang ditetapkan pada nilai yang sama, iaitu 25 untuk Instructable ini. Kita boleh mengubah kadar perubahan nilai PWM dengan mengubah nilai pembilang ini.

Nilai FSM meningkat dan diturunkan oleh isyarat '+' dan '-', yang berasal dari Output Selari SPI.

Langkah 3: Unit Kawalan

Unit Kawalan
Unit Kawalan

Di dalam unit kawalan, bait yang diterima diambil dari modul Bluetooth ke SPI Parallel Output dan kemudian diteruskan ke fungsi yang berkaitan. Pada mulanya, output PWM CS1 dan PWM CS2 akan diperiksa untuk melihat apakah corak PWM diaktifkan atau tidak. Sekiranya diaktifkan maka ia akan menentukan saluran mana yang akan mengeluarkan PWM melalui LUT4, LUT6, dan LUT7.

LUT9, LUT11, dan LUT14 bertanggungjawab untuk memeriksa keadaan dua LED yang lain. LUT10, LUT12, dan LUT13 memeriksa sama ada butang Manual diaktifkan atau tidak. Sekiranya mod Manual aktif, maka output RGB beroperasi mengikut keadaan output D0, D1, D2, yang diubah setiap kali butang Warna ditekan. Ia berubah dengan kelebihan naik yang berasal dari CNT9, yang digunakan sebagai debouncer naik.

Pin 20 dikonfigurasi sebagai input dan digunakan untuk beralih antara kawalan Manual dan Bluetooth.

Sekiranya mod Manual dinyahdayakan dan mod pengadun Auto diaktifkan, maka warnanya berubah setiap 500ms dengan kelebihan yang meningkat berasal dari CNT7. LUT1 4-bit digunakan untuk mengelakkan keadaan '000' untuk D0 D1 D2, kerana keadaan ini menyebabkan cahaya mati semasa mod pengadun Auto.

Sekiranya mod Manual, mod PWM, dan mod pengadun Auto tidak diaktifkan, maka perintah SPI merah, hijau dan biru mengalir ke Pin 12, 13 dan 14, yang dikonfigurasikan sebagai output dan disambungkan ke LED RGB luaran.

DFF1, DFF2 dan DFF3 digunakan untuk membina pembilang binari 3-bit. Nilai penghitung meningkat dengan denyutan CNT7 yang melewati P14 dalam mod pengadun Auto, atau dari isyarat yang datang dari butang Warna (PIN3) dalam mod manual.

Langkah 4: Aplikasi Android

Aplikasi Android
Aplikasi Android
Aplikasi Android
Aplikasi Android
Aplikasi Android
Aplikasi Android
Aplikasi Android
Aplikasi Android

Di bahagian ini, kami akan membangun aplikasi Android yang akan memantau dan menampilkan pilihan kontrol pengguna. Antaramuka terdiri daripada dua bahagian: bahagian pertama mengandungi sekumpulan butang yang mempunyai warna yang telah ditentukan sehingga apabila mana-mana butang ini ditekan, LED dengan warna yang sama menyala. Bahagian kedua (MIX square) mencipta warna campuran untuk pengguna.

Pada bahagian pertama, pengguna memilih pin LED yang mereka mahu isyarat PWM dilalui; isyarat PWM hanya dapat disalurkan ke satu pin pada satu masa. Senarai bawah mengendalikan dua warna lain secara logik hidup / mati semasa mod PWM.

Butang pengadun automatik bertanggungjawab menjalankan corak perubahan cahaya automatik di mana cahaya akan berubah setiap setengah saat. Bahagian MIX mengandungi dua senarai kotak pilihan sehingga pengguna dapat memutuskan dua warna mana yang akan dicampur.

Kami membina aplikasi menggunakan laman web penemu aplikasi MIT. Ini adalah laman web yang memungkinkan pembuatan aplikasi Android tanpa pengalaman perisian sebelumnya menggunakan blok perisian grafik.

Pada mulanya, kami merancang antara muka grafik dengan menambahkan sekumpulan butang yang bertanggungjawab untuk menampilkan warna yang telah ditentukan, kami juga menambahkan dua senarai kotak pilihan, dan setiap senarai mempunyai 3 elemen; setiap elemen digariskan dalam kotak individu, seperti yang ditunjukkan pada Gambar 5.

Tombol dalam antara muka pengguna dihubungkan dengan perintah perisian: semua perintah yang akan dihantar oleh aplikasi melalui Bluetooth dalam format bait, dan setiap bit bertanggung jawab untuk fungsi tertentu. Jadual 1 menunjukkan bentuk kerangka arahan yang dihantar ke GreenPAK.

Tiga bit pertama, B0, B1 dan B2, akan menahan keadaan LED RGB dalam mod kawalan langsung dengan butang warna yang telah ditentukan. Oleh itu, apabila mengklik salah satu dari mereka, nilai butang yang sesuai akan dihantar, seperti yang ditunjukkan dalam Jadual 2.

Bit B3 dan B4 menahan perintah '+' dan '-', yang bertanggungjawab untuk meningkatkan dan menurunkan lebar nadi. Apabila butang ditekan, nilai bit akan menjadi 1, dan ketika butang dilepaskan, nilai bit akan menjadi 0.

Bit B5 dan B6 bertanggungjawab memilih pin (warna) yang akan dilalui oleh isyarat PWM: sebutan warna bit ini ditunjukkan dalam jadual 3. Bit terakhir, B7, bertanggungjawab untuk mengaktifkan pengadun automatik.

Gambar 6 dan Gambar 7 menunjukkan proses menghubungkan butang dengan blok pengaturcaraan yang bertanggungjawab untuk menghantar nilai sebelumnya.

Untuk menonton rancangan penuh aplikasi, anda boleh memuat turun fail yang dilampirkan ".aia" dengan fail projek dan membukanya di laman web utama.

Rajah 8 di bawah menunjukkan gambarajah litar tingkat atas.

Langkah 5: Hasil

Pengawal berjaya diuji dan pencampuran warna, bersama dengan ciri-ciri lain, terbukti berfungsi dengan baik.

Kesimpulannya

Dalam Instructable ini, litar mentol pintar dibina untuk dikendalikan secara wayarles oleh aplikasi Android. CMP GreenPAK yang digunakan dalam projek ini juga membantu memendekkan dan memasukkan beberapa komponen penting untuk kawalan cahaya ke dalam satu IC kecil.

Disyorkan: