Talaan ng mga Nilalaman:

Interactive Ambient Light: 8 Hakbang
Interactive Ambient Light: 8 Hakbang

Video: Interactive Ambient Light: 8 Hakbang

Video: Interactive Ambient Light: 8 Hakbang
Video: How to Write Letters for Children - Teaching Writing ABC for Preschool - Alphabet for Kids 2024, Nobyembre
Anonim
Interactive Ambient Light
Interactive Ambient Light
Interactive Ambient Light
Interactive Ambient Light
Interactive Ambient Light
Interactive Ambient Light

Ito ang aking unang itinuturo! Mangyaring tiisin ako habang nagpupumilit akong magsulat ng wastong Ingles. Huwag mag-atubiling iwasto ako! Sinimulan ko ang proyektong ito pagkatapos lamang magsimula ang kumpetisyon na 'Let it glow'. Nais kong gumawa pa ako ng marami pa at natapos ang nais kong gawin. Ngunit sa pagitan ng paaralan at trabaho, wala pa akong natitirang oras na nais ko. Gayunpaman, iniiwan ko dito ang isang ulat ng aking mga eksperimento bilang isang itinuturo, upang ang sinuman ay maaaring subukan at gawin ang ginawa ko. Ang itinuturo na ito ay hindi sinadya upang maglingkod bilang isang gabay at magturo kung paano gawin ang pagkakasalungat na ito. Hindi ito isang gabay para sa mga nagsisimula sa electronics. Ito ay katulad ng pagbabahagi ng isang ideya at layunin na nais kong ituloy. Kung ikaw ay isang nagsisimula / kumpletong ignorante sa electronics at nais na gumawa ng isang bagay tulad nito, humihingi ako ng paumanhin! Ngunit maaari naming subukang laging tulungan ka. Tingnan ang huling hakbang. Nakita na namin ang maraming mga ambient light project. Karamihan sa kanila ay gumagamit ng RGB LEDs: - Upang mag-iilaw ng isang silid na may isang kulay, nagtatakda ng isang kapaligiran upang tumugma sa iyong kalagayan - Upang lumikha ng mga light effect mula sa kulay ng TV / Monitor o mula sa audio. Mayroong kahit na ilang mga itinuturo.com Kaugnay: DIY Ambient Light SystemsLight Bar Ambient LightingPagbuo ng iyong sariling mga ambient color lighting bar Gamit ang kumpetisyon na ito bilang isang dahilan, nagsimula ako ng isang proyekto na nasa isip ko sandali. Palagi kong ginusto na gumawa ng isang bagay na katulad sa mga ilaw sa paligid at punan ang mga dingding sa aking silid ng mga RGB LED. Ngunit, ang pagkuha ng isang hakbang sa karagdagang, paggawa ng lahat at bawat isa sa kanila ay maaaring makontrol. Ang proyektong ito ay inaasahan na magreresulta sa isang open-source electronics kit para sa mga hobbyist at electronic tinkerer, na pinapayagan ang pag-hack ng hardware / software at pagsasama-sama ng pandama. Narito ang isang maliit na preview ng aking ginawa:

Hakbang 1: Pagtuklas sa Ideya

Nais kong mapunan ang mga dingding sa aking silid ng mga RGB LED, pagkontrol sa kulay at ningning para sa bawat pinangunahan. Gumagamit ako ng isang microcontroller para sa madaling paggamit at kakayahang ibigay. Sa kasamaang palad hindi ko makontrol ang daan-daang mga LED na may ilang mga pin na magagamit sa mga microcontroller. Mahirap pang i-code ang kontrol ng napakaraming mga LED. Kaya't nagpasya akong dapat kong hatiin ang lahat ng mga LED sa maraming mas maliit na mga bar at para sa bawat bar ay maaari akong gumamit ng isang microcontroller. Pagkatapos ay gagamitin ko ang mga kakayahan sa komunikasyon ng mga microcontroller upang magbahagi ng impormasyon sa pagitan nila. Ang impormasyong ito ay maaaring ang kulay at ningning ng mga LED, pattern / pagkakasunud-sunod ng mga kulay at impormasyong pandama. Para sa bawat bar nagpasya akong gumamit ng 16 RGB LEDs. Nagreresulta ito sa isang hindi masyadong malaki o maliit na bar. Sa ganitong paraan gumagamit ako ng isang katanggap-tanggap na bilang ng mga mapagkukunan para sa bawat humantong, binabawasan ang mga gastos para sa bawat bar. Gayunpaman, 16 RGB LEDs ay 48 LEDs (3 * 16 = 48) para makontrol ng microcontroller. Sa pag-iisip na gastos, nagpasya akong gamitin ang pinakamurang microcontroller na magagamit ko. Nangangahulugan ito na ang microcontroller ay magkakaroon lamang ng hanggang 20 I / O pin, hindi sapat para sa 48 LEDs. Hindi ko nais na gumamit ng charlieplexing o ilang uri ng oras na paghati sa drive, dahil ang layunin ng proyekto ay nagpapaliwanag ng isang silid. Ang tanging kahalili na naisip ko ay ang paggamit ng ilang uri ng naka-latched shift register! Pagpapatuloy: - Gumawa at interactive na ambient light- Gumawa ng isang karaniwang bar ng mga nakokontrol na LED- Posibilidad ng pagkonekta ng maraming mga bar upang punan ang isang silid- Payagan ang adaptasyon / pagsasaayos ng gumagamit at pagsasama ng pandama

Hakbang 2: Hardware

Hardware
Hardware
Hardware
Hardware

Tulad ng sinabi sa nakaraang hakbang, nais kong gumawa ng maraming mga bar upang maipaliwanag ang isang silid. Isinasaalang-alang nito ang isyu sa gastos. Susubukan kong gawin at gawing posible ang bawat bar na pinakamabisang paraan. Ang ginamit kong microcontroller ay isang AVR ATtiny2313. Ang mga ito ay sa halip mura at nagkaroon ako ng ilang nakahiga sa paligid. Ang ATtiny2313 ay mayroon ding isang Universal Serial Interface at isang interface ng USART na mahusay na magamit sa mga sumusunod na hakbang. Mayroon din akong tatlong MCP23016 - I2C 16bit I / O port expander na nakahiga, tamang bilang lamang! Ginamit ko ang bawat expander ng port upang makontrol ang isang kulay ng 16 LEDs. Ang mga LED … Sa kasamaang palad, ang pinakamurang nakita ko. Ang mga ito ay 48 pula, berde at asul ~ 10000mcd 5mm na may 20 deg angulo. Hindi ito dapat mahalaga sa ngayon, dahil ito ay isang prototype lamang. Sa kabila ng katotohanang ito, ang resulta ay medyo maganda! Pinapatakbo ko ang microcontroller sa 8 MHz. Ang I2C bus ay naka-orasan sa 400 kHz. Ang dalas ng switching ng LED ay halos 400 Hz. Sa ganitong paraan, kung may kakayahang magmaneho ako ng 48 LED nang hindi ko ito itinutulak sa limitasyon, maglalagay ako ng higit pa sa paglaon!

Hakbang 3: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Matapos ang pagdidisenyo ng circuit, itinayo ko ito sa maraming mga breadboard, para sa mga layunin ng prototyping. Matapos ang maraming oras ng pagputol ng mga wires at pag-assemble ng circuit, nakuha ko ang resulta na ito: Isang higanteng breadboard na may 48 LEDs at toneladang wire!

Hakbang 4: Pagkontrol?

Control?
Control?

Ito ang pinaka-mapaghamong bahagi ng proyekto. Nais kong gumawa ng isang kontrol sa algorithm na sapat na generic para sa paghawak ng mga pattern / pagkakasunud-sunod at kontrolin din ang liwanag at kulay ng bawat LED. Upang makontrol ang mga LED kailangan kong ipadala sa MCP23016 isang frame ng 4bytes (1 byte = 8 bits). Isang byte na may address ng IC sulat sa kulay, 1 byte na may utos na "isulat" at 2 byte na may halaga ng 16bits (LEDs). Ang IC ay konektado sa mga LEDs bilang "lababo", ibig sabihin, ang isang halagang lohika na 0 sa pin ay magpapasindi sa LED. At ngayon ang mapaghamong bahagi, kung paano gawin ang kontrol ng PWM para sa 48 LEDs? Pag-aralan natin ang PWM para sa isang LED! Ipinaliwanag ng PWM @ Wikipedia. Kung nais ko ang liwanag ng LED sa 50%, ang aking halaga sa PWM ay 50%. Nangangahulugan ito na ang LED, sa isang tagal ng panahon, ay dapat na nasa parehong dami ng oras bilang off. Tumagal tayo ng isang panahon ng 1 segundo. Ang PWM na 50% ay nangangahulugan na sa 1 segundo na ito, ang oras ay 0.5 segundo at ang off time ay 0.5 segundo. PWM ng 80%? 0.2 segundo off, 0.8 segundo sa! Madali, tama? Sa digital na mundo: Sa tagal ng 10 na cycle ng orasan, 50% ay nangangahulugan na para sa 5 cycle ang LED ay nakabukas, at para sa isa pang 5 cycle naka-off ang LED. 20%? 2 cycle on, 8 cycle off. 45%? Sa gayon, hindi talaga kami makakakuha ng 45%… Yamang ang yugto ay nasa mga pag-ikot at mayroon lamang kaming 10 mga cycle, mahahati lamang namin ang PWM sa mga hakbang na 10%. Nangangahulugan ito na ang ebolusyon ng pin ay dapat, para sa 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; O kahit na 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Sa pagprogram ay maaari nating gawin ang pagkakasunud-sunod na ito ng pag-on at pag-off ng isang array. Para sa bawat pag-ikot na pinapalabas namin sa pin ang halaga ng index ay ang cycle ay. May katuturan ba ako hanggang ngayon? Kung nais naming gumawa ng LED0 50%, at LED1 20%, maaari naming idagdag ang parehong mga array. Para sa pagmamaneho ng LED0 pin: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Para sa pagmamaneho ng LED1 pin: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Nagreresulta sa LED0 + LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0; Paglabas ng pagkakasunud-sunod ng mga numero sa port expander IC, makukuha namin ang LED0 na may 50% ningning at LED1 na may 20% !! Simple para sa 2 LEDs, tama ba? Ngayon kailangan nating gawin ito para sa 16 LEDs, para sa bawat kulay! Para sa bawat isa sa mga array na ito, mayroon kaming isang kumbinasyon ng liwanag para sa bawat kulay (16 LEDs) Sa tuwing nais namin ng isa pang kombinasyon ng mga kulay, kailangan naming baguhin ang array na ito.

Hakbang 5: Ginagawang madali

Ginagawang madali!
Ginagawang madali!
Ginagawang madali!
Ginagawang madali!

Ang nakaraang hakbang ay masyadong maraming trabaho para sa paggawa ng isang simpleng pagkakasunud-sunod … Kaya't nagpasya akong gumawa ng isang programa, kung saan sasabihin namin ang mga kulay ng bawat LED sa isang hakbang ng pagkakasunud-sunod at makukuha namin ang tatlong mga arrays ng hakbang. Ginawa ko ang program na ito sa LabView dahil sa mga paghihigpit sa oras.

Hakbang 6: Mga Unang Eksperimento

Mga Unang Eksperimento
Mga Unang Eksperimento

Naglo-load ng maraming mga hakbang sa microcontroller at nakakakuha kami ng tulad nito: Paumanhin tungkol sa hindi magandang kalidad ng mga video! Tinukoy ko ang maximum na bilang ng mga hakbang sa isang pagkakasunud-sunod sa 8, at nilimitahan ang PWM sa 20% na mga jumps. Ang desisyon na ito ay batay sa uri ng kontrol na ginagamit ko at kung magkano ang EEPROM na mayroon ang ATtiny2313. Sa mga eksperimentong ito sinubukan kong makita kung anong uri ng mga effects ang maaari kong gawin. Dapat kong sabihin na nasisiyahan ako sa resulta!

Hakbang 7: Real-time Control

Kontrol sa Real-time
Kontrol sa Real-time
Kontrol sa Real-time
Kontrol sa Real-time
Kontrol sa Real-time
Kontrol sa Real-time

Tulad ng nabanggit sa mga nakaraang hakbang, nais kong makipag-usap sa lahat ng mga microcontroller na kumokontrol sa mga LED sa aking silid. Kaya ginamit ko ang magagamit na interface ng USART sa ATtiny2313 at ikinonekta ito sa aking computer. Gumawa rin ako ng isang programa sa LabView upang makontrol ang LED bar. Sa program na ito ay nasasabi ko sa microcontroller kung gaano katagal ang pagkakasunud-sunod, ang kulay ng bawat LED at ang oras sa pagitan ng mga hakbang ng isang pagkakasunud-sunod. Sa susunod na video kukunin ko ipakita kung paano ko mababago ang kulay ng mga LED at tukuyin ang mga pagkakasunud-sunod.

Hakbang 8: Mga Konklusyon

Konklusyon
Konklusyon
Konklusyon
Konklusyon
Konklusyon
Konklusyon
Konklusyon
Konklusyon

Sa palagay ko ay matagumpay ako sa unang diskarte ng aking proyekto. Nagagawa kong makontrol ang 16 RGB LEDs na may kaunting mapagkukunan at hadlang. Posibleng kontrolin ang bawat LED nang hiwalay, lumilikha ng anumang ninanais na pagkakasunud-sunod.

Trabaho sa hinaharap:

Kung makakatanggap ako ng positibong puna mula sa mga tao, maaari ko pang paunlarin ang ideyang ito at gumawa ng isang buong DIY Electronics Kit, na may mga naka-print na circuit board at mga tagubilin sa pagpupulong.

Para sa aking susunod na bersyon Kukunin ko: -Baguhin ang microcontroller sa isa sa ADC-Baguhin ang MCP23016 para sa ilang iba pang uri ng serial-in parallel-out na maaaring lumubog ng mas maraming kasalukuyang mula sa LEDs - Gumawa ng open-source software upang makipag-usap sa microcontroller at kontrolin ang mga LEDs - Paunlarin ang komunikasyon sa pagitan ng maraming mga microcontroller.

Mayroon ka bang mungkahi o katanungan? O mag-iwan ng komento!

Finalist sa Let It Glow!

Inirerekumendang: