Mundarija:

Bluetooth orqali DIY nazorati RGB LED rangi: 5 qadam
Bluetooth orqali DIY nazorati RGB LED rangi: 5 qadam

Video: Bluetooth orqali DIY nazorati RGB LED rangi: 5 qadam

Video: Bluetooth orqali DIY nazorati RGB LED rangi: 5 qadam
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Iyul
Anonim
Bluetooth orqali DIY boshqaruv RGB LED rangi
Bluetooth orqali DIY boshqaruv RGB LED rangi

Aqlli lampalar yaqinda ommalashib bormoqda va doimiy ravishda aqlli uy asboblar to'plamining asosiy qismiga aylanmoqda. Aqlli lampalar foydalanuvchining aqlli telefonidagi maxsus dastur orqali o'z nurini boshqarishga imkon beradi; lampochkani yoqish va o'chirish va rangni dastur interfeysidan o'zgartirish mumkin. Ushbu loyihada biz qo'lda tugma yoki Bluetooth orqali mobil ilovadan boshqariladigan aqlli lampochka boshqaruvchisini qurdik. Bu loyihaga o'ziga xoslik qo'shish uchun biz foydalanuvchi interfeysiga kiritilgan ranglar ro'yxatidan yorug'lik rangini tanlash imkonini beradigan ba'zi xususiyatlarni qo'shdik. Bundan tashqari, u rang effektlarini yaratish va yorug'likni har yarim soniyada o'zgartirish uchun "avtomatik aralashmani" faollashtirishi mumkin. Foydalanuvchi PWM xususiyati yordamida o'zining rang aralashmasini yaratishi mumkin, uni uchta asosiy rang (qizil, yashil, ko'k) uchun dimmer sifatida ham ishlatish mumkin. Shuningdek, foydalanuvchi qo'lda rejimga o'tishi va tashqi tugmachaning ochiq rangini o'zgartirishi uchun biz kontaktlarning zanglashiga tashqi tugmalarni qo'shdik.

Bu ko'rsatma ikki qismdan iborat; GreenPAK ™ va Android ilovalari dizayni. GreenPAK dizayni aloqa uchun UART interfeysidan foydalanishga asoslangan. UART tanlangan, chunki u ko'pgina Bluetooth modullari, shuningdek WIFI modullari kabi boshqa tashqi qurilmalar tomonidan qo'llab -quvvatlanadi. Shunday qilib, GreenPAK dizayni ko'plab ulanish turlarida ishlatilishi mumkin.

Ushbu loyihani yaratish uchun biz SLG46620 CMIC, Bluetooth moduli va RGB LEDidan foydalanamiz. GreenPAK IC bu loyihaning boshqaruv yadrosi bo'ladi; u Bluetooth moduli va/yoki tashqi tugmalardan ma'lumotlarni oladi, so'ngra to'g'ri yoritishni ko'rsatish uchun kerakli protsedurani boshlaydi. Shuningdek, u PWM signalini ishlab chiqaradi va uni LEDga chiqaradi. Quyidagi 1 -rasmda blok -diagramma ko'rsatilgan.

Ushbu loyihada ishlatiladigan GreenPAK qurilmasi SPI ulanish interfeysi, PWM bloklari, FSM va boshqa bir qancha ICda boshqa foydali qo'shimcha bloklarni o'z ichiga oladi. Shuningdek, u kichik o'lchamlari va kam energiya sarfi bilan ajralib turadi. Bu ishlab chiqaruvchilarga bitta IC yordamida kichik amaliy sxemani qurishga imkon beradi, shuning uchun shunga o'xshash tizimlar bilan taqqoslaganda ishlab chiqarish xarajatlari minimallashtiriladi.

Ushbu loyihada biz bitta RGB LEDni boshqaramiz. Loyihani tijorat maqsadlarida amalga oshirish uchun, tizim ko'pgina LEDlarni parallel ulab va tegishli tranzistorlar yordamida yorug'lik darajasini oshirishi kerak; quvvat zanjirini ham hisobga olish kerak.

Siz GreenPAK chipining RGB LED rangini Bluetooth orqali boshqarish uchun qanday dasturlashtirilganligini tushunish uchun barcha bosqichlardan o'tishingiz mumkin. Ammo, agar siz barcha ichki sxemalarni tushunmasdan, ICni osonlikcha dasturlashni xohlasangiz, tugallangan GreenPAK dizayn faylini ko'rish uchun GreenPAK dasturini yuklab oling. GreenPAK Development Kit -ni kompyuteringizga ulang va Bluetooth orqali RGB LED rangini boshqarish uchun maxsus IC yaratish uchun dasturni bosing.

GreenPAK dizayni UART qabul qilgichi, PWM qurilmasi va boshqaruv blokidan iborat bo'lib, quyidagi bosqichlarda tasvirlangan.

1 -qadam: UART qabul qiluvchisi

UART qabul qiluvchisi
UART qabul qiluvchisi

Birinchidan, biz Bluetooth modulini sozlashimiz kerak. Ko'pgina Bluetooth IC'lari aloqa uchun UART protokolini qo'llab -quvvatlaydi. UART universal asenkron qabul qiluvchi / uzatuvchi degan ma'noni anglatadi. UART ma'lumotlarni parallel va ketma -ket formatlar o'rtasida oldinga va orqaga o'zgartirishi mumkin. U ketma -ket parallel qabul qilgichni va ketma -ket konvertorni o'z ichiga oladi, ikkalasi ham alohida soatlanadi.

Bluetooth modulida olingan ma'lumotlar GreenPAK qurilmamizga uzatiladi. Pin10 uchun harakatsiz holat YUQORI. Yuborilgan har bir belgi LOW past boshlang'ich bitidan boshlanadi, so'ngra sozlanishi ma'lumotlar bitlari soni va bir yoki bir nechta mantiqiy HIGH stop bitlari.

UART transmitteri 1 START bit, 8 ma'lumotlar biti va bitta STOP bitini yuboradi. Odatda, UART Bluetooth moduli uchun standart uzatish tezligi 9600. Biz Bluetooth IC -dan ma'lumotlarni baytini GreenPAK ™ SLG46620 SPI blokiga yuboramiz.

GreenPAK SPI blokida START yoki STOP bit boshqaruvi yo'qligi sababli, biz SPI soat signalini (SCLK) yoqish va o'chirish uchun bu bitlardan foydalanamiz. Pin10 LOW past bo'lganda, biz START bitini olganimizni bilamiz, shuning uchun biz aloqa boshlanishini aniqlash uchun PDLY tushayotgan chekka detektoridan foydalanamiz. Bu tushuvchi chekka detektori DFF0 soatiga to'g'ri keladi, bu esa SCLK signaliga SPI blokini kuzatishga imkon beradi.

Bizning uzatish tezligi sekundiga 9600 bitni tashkil qiladi, shuning uchun SCLK davri 1/9600 = 104 mikron bo'lishi kerak. Shuning uchun biz OSC chastotasini 2 MGts ga o'rnatdik va CNT0 ni chastota ajratuvchi sifatida ishlatdik.

2 MGts-1 = 0,5 mikron

(104 miks / 0,5 mks) - 1 = 207

Shuning uchun biz CNT0 hisoblagichining qiymati 207 bo'lishini istaymiz. Hech qanday ma'lumotni o'tkazib yubormasligimiz uchun, SPI blokini o'z vaqtida taqsimlash uchun yarim soatlik tsiklga kechiktirishimiz kerak. Biz buni CNT6, 2-bitli LUT1 va OSC blokining tashqi soati yordamida amalga oshirdik. CNT6 chiqishi DFF0 soati o'rnatilgandan keyin 52 mikrongacha oshmaydi, bu bizning 104 mikronli SCLK davrining yarmi. CNT6 baland bo'lganda, 2-bitli LUT1 VA eshigi 2 MGtsli OSC signalining EXTga o'tishiga imkon beradi. Chiqish CNT0 ga ulangan CLK0 usuli.

2 -qadam: PWM birligi

PWM birligi
PWM birligi

PWM signali PWM0 va tegishli soat impulslari generatori (CNT8/DLY8) yordamida ishlab chiqariladi. Puls kengligi foydalanuvchi tomonidan boshqarilishi mumkinligi sababli, biz foydalanuvchi ma'lumotlarini hisoblash uchun FSM0 (PWM0 ga ulanishi mumkin) dan foydalanamiz.

SLG46620-da 8 bitli FSM1 PWM1 va PWM2 bilan ishlatilishi mumkin. Bluetooth moduli ulangan bo'lishi kerak, ya'ni SPI parallel chiqishidan foydalanish kerak. 0 dan 7 gacha bo'lgan SPI parallel chiqish bitlari DCMP1, DMCP2 va LF OSC CLK OUT1 va OUT0 bilan birlashtirilgan. PWM0 o'z chiqishini 16-bitli FSM0-dan oladi. Bu o'zgarishsiz qoldirilsa, puls kengligining ortiqcha yuklanishiga olib keladi. Hisoblagich qiymatini 8 bitda cheklash uchun boshqa FSM qo'shiladi; Hisoblagich 0 yoki 255 ga yetganda FSM1 ko'rsatgich sifatida ishlatiladi. FSM0 PWM pulsini ishlab chiqarish uchun ishlatiladi. FSM0 va FSM1 sinxronlashtirilishi kerak. Har ikkala FSM -da oldindan o'rnatilgan soat variantlari mavjud bo'lganligi sababli, CLK -ni ikkala FSM -ga o'tkazish uchun vositachi sifatida CNT1 va CNT3 ishlatiladi. Ikkita hisoblagich bir xil qiymatga o'rnatiladi, bu ko'rsatma uchun 25. Ushbu hisoblagich qiymatlarini o'zgartirish orqali biz PWM qiymatining o'zgarish tezligini o'zgartirishimiz mumkin.

FSM-larning qiymati SPI Parallel Chiqishidan kelib chiqadigan '+' va '-' signallari yordamida ortadi va kamayadi.

3 -qadam: boshqaruv bloki

Tekshirish birligi
Tekshirish birligi

Boshqaruv blokida qabul qilingan bayt Bluetooth modulidan SPI parallel chiqishiga olib boriladi va keyinchalik tegishli funktsiyalarga uzatiladi. Dastlab, PWM CS1 va PWM CS2 chiqishlari PWM sxemasi yoqilganmi yoki yo'qmi tekshiriladi. Agar u faollashtirilgan bo'lsa, u LUT4, LUT6 va LUT7 orqali qaysi kanal PWM chiqishini aniqlaydi.

LUT9, LUT11 va LUT14 boshqa ikkita LED holatini tekshirish uchun javobgardir. LUT10, LUT12 va LUT13 qo'lda tugma yoqilganligini tekshiradi. Agar qo'lda rejim faol bo'lsa, RGB chiqishlari D0, D1, D2 chiqish holatiga muvofiq ishlaydi, ular Rang tugmasi har bosilganda o'zgartiriladi. Bu CNT9 -dan keladigan ko'tarilgan chekka bilan o'zgaradi, u yuqoriga ko'tariladigan debyutant sifatida ishlatiladi.

20 -pin kirish sifatida sozlangan va qo'lda va Bluetooth boshqaruvini almashtirish uchun ishlatiladi.

Agar qo'lda rejim o'chirilgan bo'lsa va avtomatik mikser rejimi yoqilgan bo'lsa, rang CNT7 dan ko'tarilgan qirrasi bilan har 500ms o'zgaradi. D0 D1 D2 uchun "000" holatining oldini olish uchun 4-bitli LUT1 ishlatiladi, chunki bu holat avtomatik mikser rejimida chiroqning o'chishiga olib keladi.

Agar qo'lda rejim, PWM rejimi va avtomatik mikser rejimi yoqilmagan bo'lsa, qizil, yashil va ko'k SPI buyruqlari chiqish sifatida tuzilgan va tashqi RGB LED -ga ulangan 12, 13 va 14 -pinlarga o'tadi.

3 bitli ikkilik hisoblagichni yaratish uchun DFF1, DFF2 va DFF3 ishlatiladi. Hisoblagich qiymati avtomatik mikser rejimida P14 orqali o'tadigan CNT7 pulslari yoki qo'lda rejimda Rangli tugmachadan (PIN3) keladigan signallar bilan ortadi.

4 -qadam: Android ilovasi

Android ilovasi
Android ilovasi
Android ilovasi
Android ilovasi
Android ilovasi
Android ilovasi
Android ilovasi
Android ilovasi

Ushbu bo'limda biz foydalanuvchining boshqaruv tanlovlarini kuzatadigan va ko'rsatadigan Android ilovasini yaratmoqchimiz. Interfeys ikki qismdan iborat: birinchi bo'limda oldindan belgilangan ranglarga ega bo'lgan tugmalar to'plami mavjud, shuning uchun bu tugmalardan biriga bosilganda bir xil rangdagi LED yonadi. Ikkinchi bo'lim (MIX kvadrat) foydalanuvchi uchun aralash rang hosil qiladi.

Birinchi bo'limda foydalanuvchi PWM signalining o'tishini xohlaydigan LED pinini tanlaydi; PWM signalini bir vaqtning o'zida faqat bitta pinga o'tkazish mumkin. Pastki ro'yxat PWM rejimida qolgan ikkita rangni mantiqan yoqish/o'chirishni boshqaradi.

Avtomatik mikser tugmasi yorug'lik har yarim soniyada o'zgarib turadigan avtomatik yorug'lik o'zgaruvchan modelini ishga tushirish uchun javobgardir. MIX bo'limi ikkita katakchali ro'yxatni o'z ichiga oladi, shunda foydalanuvchi qaysi ikkita rangni birlashtirishni o'zi hal qilishi mumkin.

Biz dasturni MIT ixtirochi veb -sayti yordamida yaratdik. Bu grafik dasturiy bloklar yordamida dasturiy ta'minot tajribasi bo'lmagan holda Android ilovalarini yaratishga imkon beruvchi sayt.

Dastlab, biz oldindan belgilangan ranglarni ko'rsatish uchun javob beradigan tugmalar to'plamini qo'shib, grafik interfeysni ishlab chiqdik, shuningdek ikkita tasdiqlash qutisi ro'yxatini qo'shdik va har bir ro'yxatda 3 element bor; har bir element 5 -rasmda ko'rsatilgandek, uning alohida qutisida ko'rsatilgan.

Foydalanuvchi interfeysidagi tugmalar dasturiy ta'minot buyruqlari bilan bog'langan: ilova Bluetooth orqali yuboradigan barcha buyruqlar bayt formatida bo'ladi va har bir bit ma'lum funktsiyaga javobgardir. 1 -jadvalda GreenPAK -ga yuborilgan buyruq ramkalari shakli ko'rsatilgan.

Dastlabki uchta bit, B0, B1 va B2, RGB LEDlarining holatini to'g'ridan -to'g'ri nazorat qilish rejimida oldindan belgilangan rang tugmalari bilan ushlab turadi. Shunday qilib, ulardan birini bosganingizda, 2 -jadvalda ko'rsatilgandek, tugmachaning mos qiymati yuboriladi.

B3 va B4 bitlari puls kengligini oshirish va kamaytirish uchun javob beradigan '+' va '-' buyruqlarini bajaradi. Tugma bosilganda bit qiymati 1 bo'ladi, tugma qo'yilganda esa bit qiymati 0 bo'ladi.

B5 va B6 bitlari PWM signali o'tadigan pinni (rangni) tanlash uchun javobgardir: bu bitlarning rang belgilari 3 -jadvalda ko'rsatilgan. Oxirgi bit B7 avtomatik mikserni faollashtirish uchun javobgardir.

6 -rasm va 7 -rasmda tugmalarni oldingi qiymatlarni yuborish uchun javob beradigan dastur bloklari bilan bog'lash jarayoni ko'rsatilgan.

Ilovaning to'liq dizaynini ko'rish uchun siz ".aia" faylini loyiha fayllari bilan yuklab olishingiz va uni asosiy saytda ochishingiz mumkin.

Quyidagi 8 -rasmda yuqori darajali elektron sxemasi ko'rsatilgan.

5 -qadam: Natijalar

Nazoratchi muvaffaqiyatli sinovdan o'tkazildi va ranglarni aralashtirish, boshqa funktsiyalar bilan bir qatorda, to'g'ri ishlashini ko'rsatdi.

Xulosa

Ushbu yo'riqnomada aqlli lampochka sxemasi Android ilovasi yordamida simsiz boshqariladigan qilib qurilgan. Ushbu loyihada ishlatilgan GreenPAK CMIC, shuningdek, yorug'likni boshqarish uchun bir nechta muhim komponentlarni bitta kichik ICga qisqartirish va joylashtirishga yordam berdi.

Tavsiya: