Talaan ng mga Nilalaman:

DIY Control RGB LED Color Sa pamamagitan ng Bluetooth: 5 Mga Hakbang
DIY Control RGB LED Color Sa pamamagitan ng Bluetooth: 5 Mga Hakbang

Video: DIY Control RGB LED Color Sa pamamagitan ng Bluetooth: 5 Mga Hakbang

Video: DIY Control RGB LED Color Sa pamamagitan ng Bluetooth: 5 Mga Hakbang
Video: ESP32 Tutorial 6 - Using RGB LED Project 2.3 -SunFounder's ESP32 IoT Learnig kit 2024, Hulyo
Anonim
DIY Control RGB LED Color Sa pamamagitan ng Bluetooth
DIY Control RGB LED Color Sa pamamagitan ng Bluetooth

Ang mga matalinong bombilya ay nagdaragdag ng katanyagan kamakailan at patuloy na nagiging isang pangunahing bahagi ng toolkit ng smart home. Pinapagana ng mga smart bombilya ang gumagamit upang makontrol ang kanilang ilaw sa pamamagitan ng isang espesyal na application sa smart phone ng gumagamit; ang bombilya ay maaaring i-on at i-off at ang kulay ay maaaring mabago mula sa interface ng application. Sa proyektong ito, gumawa kami ng isang smart bulb controller na maaaring makontrol mula sa isang manu-manong pindutan o isang mobile application sa pamamagitan ng Bluetooth. Upang magdagdag ng ilang talento sa proyektong ito nagdagdag kami ng ilang mga tampok na nagpapahintulot sa gumagamit na pumili ng isang kulay ng ilaw mula sa listahan ng mga kulay na kasama sa interface ng application. Maaari din itong buhayin ang isang "auto mix" upang makabuo ng mga color effects at mabago ang pag-iilaw tuwing kalahating segundo. Ang gumagamit ay maaaring lumikha ng kanilang sariling halo ng kulay gamit ang isang tampok na PWM na maaari ring magamit bilang isang dimmer para sa tatlong pangunahing mga kulay (pula, berde, asul). Nagdagdag din kami ng mga panlabas na pindutan sa circuit upang ang gumagamit ay maaaring lumipat sa manu-manong mode at baguhin ang kulay ng ilaw mula sa isang panlabas na pindutan.

Ang Instructable na ito ay binubuo ng dalawang seksyon; ang disenyo ng GreenPAK ™ at disenyo ng Android app. Ang disenyo ng GreenPAK ay batay sa paggamit ng isang UART interface para sa komunikasyon. Napili ang UART sapagkat sinusuportahan ito ng karamihan sa mga module ng Bluetooth, pati na rin ang karamihan sa iba pang mga peripheral, tulad ng mga module ng WIFI. Dahil dito, maaaring magamit ang disenyo ng GreenPAK sa maraming uri ng koneksyon.

Upang maitayo ang proyektong ito, gagamitin namin ang SLG46620 CMIC, isang module ng Bluetooth, at isang RGB LED. Ang GreenPAK IC ay magiging control core ng proyektong ito; nakakatanggap ito ng data mula sa isang module ng Bluetooth at / o panlabas na mga pindutan, pagkatapos ay nagsisimula ang kinakailangang pamamaraan upang maipakita ang tamang pag-iilaw. Bumubuo rin ito ng signal ng PWM at inilalabas ito sa LED. Ang larawan 1 sa ibaba ay nagpapakita ng diagram ng block.

Ang aparato ng GreenPAK na ginamit sa proyektong ito ay naglalaman ng isang interface ng koneksyon ng SPI, mga bloke ng PWM, FSM at maraming iba pang mga kapaki-pakinabang na karagdagang mga bloke sa isang IC. Ito ay nailalarawan din sa pamamagitan ng kanyang maliit na sukat at mababang paggamit ng enerhiya. Paganahin nito ang mga tagagawa na bumuo ng isang maliit na praktikal na circuit gamit ang isang solong IC, sa gayon ang mga gastos sa produksyon ay mababawasan kung ihahambing sa mga katulad na system.

Sa proyektong ito, kinokontrol namin ang isang RGB LED. Upang gawing mabuhay ang proyekto, maaaring kailanganin ng isang system na dagdagan ang antas ng ningning sa pamamagitan ng pagkonekta ng maraming mga LED nang kahanay at paggamit ng naaangkop na mga transistor; ang circuit ng kuryente ay kailangang isaalang-alang din.

Maaari kang dumaan sa lahat ng mga hakbang upang maunawaan kung paano naka-program ang chip ng GreenPAK upang makontrol ang Kulay ng RGB LED sa pamamagitan ng Bluetooth. Gayunpaman, kung nais mo lamang madali ang programa ng IC nang hindi nauunawaan ang lahat ng panloob na circuitry, i-download ang GreenPAK software upang matingnan ang natapos na GreenPAK Design File. I-plug ang GreenPAK Development Kit sa iyong computer at pindutin ang programa upang lumikha ng pasadyang IC upang makontrol ang RGB LED Color sa pamamagitan ng Bluetooth.

Ang disenyo ng GreenPAK ay binubuo ng tatanggap ng UART, yunit ng PWM, at yunit ng kontrol na inilarawan sa mga hakbang sa ibaba.

Hakbang 1: UART Receiver

UART Tagatanggap
UART Tagatanggap

Una, kailangan naming i-set up ang module ng Bluetooth. Karamihan sa mga Bluetooth IC ay sumusuporta sa UART protocol para sa komunikasyon. Ang UART ay nangangahulugang Universal Asynchronous Receiver / Transmitter. Maaaring i-convert ng UART ang data pabalik-balik sa pagitan ng parallel at serial format. Nagsasama ito ng isang serial sa parallel na receiver at isang parallel sa serial converter na parehong hiwalay na naka-orasan.

Ang data na natanggap sa module ng Bluetooth ay ililipat sa aming GreenPAK aparato. Ang idle na estado para sa Pin10 ay TAAS. Ang bawat character na naipadala ay nagsisimula sa isang lohika LOW start bit, na sinusundan ng isang maisasaayos na bilang ng mga data bits at isa o higit pang mga lohikal na HIGH stop bits.

Nagpapadala ang UART transmitter ng 1 Start bit, 8 data bit, at isang STOP bit. Kadalasan, ang default na rate ng baud para sa isang module ng UART Bluetooth ay 9600. Ipapadala namin ang byte ng data mula sa Bluetooth IC sa block ng SPI ng GreenPAK ™ SLG46620.

Dahil ang bloke ng GreenPAK SPI ay walang pagsisimula o STOP bit control, gagamitin namin ang mga piraso sa halip upang paganahin at huwag paganahin ang signal ng orasan ng SPI (SCLK). Kapag mababa ang Pin10, alam namin na nakatanggap kami ng isang simulang bit, kaya ginagamit namin ang PDLY na nahuhulog na detektor ng gilid upang makilala ang simula ng komunikasyon. Ang pagbagsak ng edge na detektor na iyon ay nagbabalik sa DFF0, na nagbibigay-daan sa signal ng SCLK na i-orasan ang bloke ng SPI.

Ang aming baud rate ay 9600 bits bawat segundo, kaya ang aming panahon ng SCLK ay kailangang 1/9600 = 104 μs. Samakatuwid, itinakda namin ang dalas ng OSC sa 2MHz at ginamit ang CNT0 bilang isang divider ng dalas.

2 MHz-1 = 0.5 μs

(104 μs / 0.5 μs) - 1 = 207

Samakatuwid, nais namin ang halaga ng counter ng CNT0 na 207. Upang matiyak na hindi namin pinalalampas ang anumang data, kailangan naming antalahin ang orasan ng SPI ng kalahating ikot ng orasan upang ang bloke ng SPI ay nai-orasan sa tamang oras. Natapos namin ito sa pamamagitan ng paggamit ng CNT6, 2-bit LUT1, at ang External Clock ng OSC block. Ang output ng CNT6 ay hindi magiging mataas hanggang 52 μs pagkatapos na mai-orasan ang DFF0, na kalahati ng aming 104 μs na panahon ng SCLK. Kapag ang CNT6 ay mataas ang 2-bit na LUT1 AT gate ay pinapayagan ang signal ng 2MHz OSC na pumasa sa EXT. Pag-input ng CLK0, na ang output ay konektado sa CNT0.

Hakbang 2: Yunit ng PWM

Yunit ng PWM
Yunit ng PWM

Ang PWM signal ay nabuo gamit ang PWM0 at isang kaugnay na generator ng pulso ng orasan (CNT8 / DLY8). Dahil ang kontrol ng lapad ng pulso ay maaaring makontrol ng gumagamit, gumagamit kami ng FSM0 (na maaaring konektado sa PWM0) upang mabilang ang data ng gumagamit.

Sa SLG46620, ang 8-bit FSM1 ay maaaring magamit sa PWM1 at PWM2. Dapat na konektado ang module ng Bluetooth, na nangangahulugang dapat gamitin ang parallel output ng SPI. Ang mga parallel na output ng bit ng SPI na 0 hanggang 7 ay na-muxed sa DCMP1, DMCP2, at sa L1 OSC CLK na OUT1 at OUT0. Nakukuha ng PWM0 ang output nito mula sa 16-bit FSM0. Kaliwa nang hindi nabago ito ay sanhi ng labis na karga ng pulso. Upang limitahan ang halaga ng counter sa 8 bits isa pang FSM ay idinagdag; Ginagamit ang FSM1 bilang isang pointer upang malaman kung ang counter ay umabot sa alinman sa 0 o 255. Ginagamit ang FSM0 upang makabuo ng pulso ng PWM. Dapat isabay ang FSM0 at FSM1. Dahil ang parehong FSM ay may mga preset na pagpipilian sa orasan, ang CNT1 at CNT3 ay ginagamit bilang mga tagapamagitan upang maipasa ang CLK sa parehong FSMs. Ang dalawang counter ay nakatakda sa parehong halaga, na 25 para sa Instructable na ito. Maaari nating baguhin ang rate ng pagbabago ng halaga ng PWM sa pamamagitan ng pagbabago ng mga halagang ito sa counter.

Ang halaga ng FSM ay nadagdagan at nabawasan ng mga signal na '+' at '-', na nagmula sa SPI Parallel Output.

Hakbang 3: Control Unit

Control Unit
Control Unit

Sa loob ng unit ng kontrol ang natanggap na byte ay kinuha mula sa module ng Bluetooth sa Parehong Output ng SPI at pagkatapos ay ipinasa sa mga nauugnay na pag-andar. Sa una, ang mga output ng PWM CS1 at PWM CS2 ay susuriin upang makita kung ang pattern ng PWM ay naaktibo o hindi. Kung ito ay aktibo pagkatapos ay matutukoy kung aling channel ang maglalabas ng PWM sa pamamagitan ng LUT4, LUT6, at LUT7.

Ang LUT9, LUT11, at LUT14 ay responsable para sa pagsusuri ng estado ng iba pang dalawang LEDs. Suriin ng LUT10, LUT12, at LUT13 kung ang manu-manong pindutan ay naaktibo o hindi. Kung ang manu-manong mode ay aktibo, kung gayon ang mga output ng RGB ay umaandar ayon sa mga estado ng output ng D0, D1, D2, na binabago tuwing pinipindot ang pindutan ng Kulay. Nagbabago ito sa tumataas na gilid na nagmumula sa CNT9, na ginagamit bilang isang tumataas na deb debiter.

Ang Pin 20 ay naka-configure bilang isang input at ginagamit upang lumipat sa pagitan ng manu-manong at kontrol ng Bluetooth.

Kung ang mode na Manu-manong ay hindi pinagana at ang mode ng Auto mixer ay naaktibo, pagkatapos ang kulay ay nagbabago bawat 500ms kasama ang tumataas na gilid na nagmumula sa CNT7. Ang isang 4-bit LUT1 ay ginagamit upang maiwasan ang estado na '000' para sa D0 D1 D2, dahil ang estado na ito ay sanhi ng ilaw na patayin sa panahon ng mode ng Auto mixer.

Kung ang Manu-manong mode, PWM mode, at ang mode ng Auto mixer ay hindi naaktibo pagkatapos ay ang pula, berde at asul na SPI na mga utos ay dumadaloy sa Pins 12, 13 at 14, na na-configure bilang mga output at konektado sa panlabas na RGB LED.

Ang DFF1, DFF2 at DFF3 ay ginagamit upang bumuo ng isang 3-bit binary counter. Tumaas ang halaga ng counter sa mga pulso ng CNT7 na dumadaan sa P14 sa Auto mixer mode, o mula sa mga signal na nagmumula sa pindutan ng Kulay (PIN3) sa manu-manong mode.

Hakbang 4: Application sa Android

Application ng Android
Application ng Android
Application ng Android
Application ng Android
Application ng Android
Application ng Android
Application ng Android
Application ng Android

Sa seksyong ito, gagawa kami ng isang Android application na susubaybayan at ipapakita ang mga pagpipilian ng kontrol ng gumagamit. Ang interface ay binubuo ng dalawang seksyon: ang unang seksyon ay naglalaman ng isang hanay ng mga pindutan na may paunang natukoy na mga kulay upang kapag ang alinman sa mga pindutan na ito ay pinindot, isang LED ng parehong kaukulang kulay ay naiilawan. Ang pangalawang seksyon (MIX square) ay lumilikha ng isang magkahalong kulay para sa gumagamit.

Sa unang seksyon, pipiliin ng gumagamit ang LED pin na nais nilang dumaan ang signal ng PWM; ang signal ng PWM ay maaari lamang ipasa sa isang pin nang paisa-isa. Kinokontrol ng mas mababang listahan ang iba pang dalawang mga kulay nang lohikal na on / off sa panahon ng PWM mode.

Mananagot ang pindutan ng auto mixer para sa pagpapatakbo ng awtomatikong pagbago ng pattern kung saan magbabago ang ilaw bawat kalahating segundo. Naglalaman ang seksyong MIX ng dalawang listahan ng checkbox upang makapagpasya ang gumagamit kung aling dalawang kulay ang magkakasama.

Binuo namin ang application gamit ang website ng imbentor ng MIT app. Ito ay isang site na nagpapahintulot sa pagbuo ng mga application ng Android nang walang paunang karanasan sa software na gumagamit ng mga graphic block ng software.

Sa una, nagdisenyo kami ng isang graphic na interface sa pamamagitan ng pagdaragdag ng isang hanay ng mga pindutan na responsable para sa pagpapakita ng mga paunang natukoy na kulay, nagdagdag din kami ng dalawang listahan ng kahon ng tsek, at ang bawat listahan ay may 3 elemento; ang bawat elemento ay nakabalangkas sa kanya-kanyang kahon, tulad ng ipinakita sa Larawan 5.

Ang mga pindutan sa loob ng interface ng gumagamit ay naka-link sa mga utos ng software: ang lahat ng mga utos na ipadala ng app sa pamamagitan ng Bluetooth ay nasa byte format, at ang bawat bit ay responsable para sa isang tukoy na pagpapaandar. Ipinapakita ng Talaan 1 ang anyo ng mga frame ng utos na ipinadala sa GreenPAK.

Ang unang tatlong piraso, ang B0, B1 at B2, ay hahawak sa estado ng mga RGB LED sa direktang mode na pagkontrol ng mga pindutan ng mga paunang natukoy na kulay. Kaya, kapag nag-click sa alinman sa mga ito, ipapadala ang kaukulang halaga ng pindutan, tulad ng ipinakita sa Talahanayan 2.

Ang mga bit na B3 at B4 ay nagtataglay ng '+' at '-' mga utos, na responsable para sa pagtaas at pagbawas ng lapad ng pulso. Kapag pinindot ang pindutan ang halaga ng bit ay magiging 1, at kapag pinakawalan ang pindutan ang halaga ng bit ay 0.

Ang B5 at B6 bits ay responsable para sa pagpili ng pin (kulay) na daanan ng signal ng PWM: ang mga pagtatalaga ng kulay ng mga bit na ito ay ipinapakita sa talahanayan 3. Ang huling bit, B7, ay responsable para sa pag-aktibo ng auto mixer.

Ipinapakita ng Larawan 6 at Larawan 7 ang proseso ng pag-link ng mga pindutan sa mga bloke ng programa na responsable para sa pagpapadala ng nakaraang mga halaga.

Upang mapanood ang buong disenyo ng application, maaari mong i-download ang nakalakip na file na ".aia" kasama ang mga file ng proyekto at buksan ito sa loob ng pangunahing site.

Ang Figure 8 sa ibaba ay nagpapakita ng nangungunang antas ng diagram ng circuit.

Hakbang 5: Mga Resulta

Matagumpay na nasubukan ang Controller at ang paghahalo ng kulay, kasama ang iba pang mga tampok, ay ipinapakita upang gumana nang naaangkop.

Konklusyon

Sa Instructable na ito, isang matalinong bombilya na circuit ay itinayo upang awtomatikong kontrolin ng isang Android application. Ang GreenPAK CMIC na ginamit sa proyektong ito ay nakatulong din upang paikliin at ma-embed ang maraming mahahalagang bahagi para sa light control sa isang maliit na IC.

Inirerekumendang: