Съдържание:

Интерактивна околна светлина: 8 стъпки
Интерактивна околна светлина: 8 стъпки

Видео: Интерактивна околна светлина: 8 стъпки

Видео: Интерактивна околна светлина: 8 стъпки
Видео: 8 ОСНОВНИ ПОНЯТИЯ ЗА СВЕТКАВИЦАТА | Как работи светкавицата | Фото Библиотека #27| For Photographers 2024, Юли
Anonim
Интерактивна околна светлина
Интерактивна околна светлина
Интерактивна околна светлина
Интерактивна околна светлина
Интерактивна околна светлина
Интерактивна околна светлина

Това е първата ми инструкция! Моля, изтърпете ме, докато се боря да напиша подходящ английски. Чувствайте се свободни да ме поправите! Започнах този проект веднага след като стартира конкурсът „Нека свети“. Иска ми се да бях направил много повече и да съм завършил това, което исках да направя. Но между училище и работа не ми остана толкова време, колкото ми се искаше. Въпреки това оставям тук доклад за моите експерименти като инструкция, така че всеки може да опита да направи това, което направих. Тази инструкция не е предназначена да служи като ръководство и да научи как да се направи тази измислица. Това не е ръководство за начинаещи в електрониката. Това е по -скоро като споделяне на една идея и цел, които искам да преследвам. Ако сте начинаещ/напълно невеж в електрониката и искате да направите нещо подобно, съжалявам! Но ние можем да се опитаме винаги да ви помогнем. Вижте последната стъпка. Вече видяхме много проекти за околна светлина. Повечето от тях използват RGB светодиоди: - за осветяване на стая с един цвят, настройване на атмосфера, която да отговаря на настроението ви - за създаване на светлинни ефекти от цвят на телевизор/монитор или от аудио. Има дори няколко в instructables.com Свързани: Системи за околна светлина „Направи си сам“Светлинна лента Околна светлина Винаги съм искал да направя нещо подобно на тези околни светлини и да напълня стените в стаята си с RGB светодиоди. Но като направим още една крачка напред, като направим всички и всеки един от тях контролируеми. Надяваме се, че този проект ще доведе до електронен комплект с отворен код за любители и електронни калайджии, позволяващ хакване на хардуер/софтуер и сензорна интеграция. Ето малка визуализация на това, което направих:

Стъпка 1: Проучване на идеята

Искам да мога да запълня стените в моята стая с RGB светодиоди, контролиращи цвета и яркостта на всеки светодиод. Ще използвам микроконтролер за лесна употреба и предоставена гъвкавост. За съжаление не мога да контролирам стотици светодиоди с няколкото пина, налични на микроконтролерите. Дори би било трудно да се кодира управлението на толкова много светодиоди. Затова реших, че трябва да разделя всички светодиоди на няколко по -малки ленти и за всяка лента мога да използвам микроконтролер. Тогава бих използвал комуникационните възможности на микроконтролерите, за да споделям информация между тях. Тази информация може да бъде цветът и яркостта на светодиодите, шарки/последователности от цветове и сензорна информация. За всяка лента реших да използвам 16 RGB светодиода. Това води до нито твърде голям, нито малък бар. По този начин използвам приемлив брой ресурси за всеки светодиод, като намалявам разходите за всеки бар. най -евтиният микроконтролер, който мога да използвам. Това означава, че микроконтролерът ще има само до 20 I/O пина, недостатъчни за 48 светодиода. Не искам да използвам charlieplexing или някакъв вид устройство за разделяне на времето, тъй като целта на проекта е осветяване на стая. алтернатива, за която бих могъл да се сетя, е да използвам някакъв регистър на задвижване! Възобновяване:- Направете и интерактивна околна светлина- Направете стандартна лента от контролируеми светодиоди- Възможност за свързване на няколко ленти за запълване на стая- Позволете на потребителя адаптация/конфигурация и сензорна интеграция

Стъпка 2: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер

Както беше казано в предишната стъпка, искам да направя няколко бара, за да осветявам една стая. Това поставя въпроса за разходите в ума. Ще се опитам да направя всеки бар най-рентабилния възможен начин. Микроконтролерът, който използвах, беше AVR ATtiny2313. Те са доста евтини и имах няколко лежащи наоколо. ATtiny2313 също има един универсален сериен интерфейс и един USART интерфейс, които ще се използват добре в следващите стъпки. Имах и три MCP23016 - I2C 16bit I/O порт разширител, лежащ наоколо, само правилното броене! Използвах всеки разширител на портове, за да контролирам един цвят от 16 -те светодиода. Светодиодите … За съжаление бяха най -евтините, които можах да намеря. Те са 48 червени, зелени и сини ~ 10000mcd 5 мм с ъгъл 20 градуса. Това засега няма значение, тъй като това е само един прототип. Въпреки този факт, резултатът е доста приятен! Работя на микроконтролера на 8 MHz. I2C шината е с тактова честота на 400 kHz. Честотата на превключване на LED е около 400 Hz. По този начин, ако съм в състояние да управлявам 48 светодиода, без да го натискам до краен предел, по -късно ще направя място за още!

Стъпка 3: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

След като проектирах веригата, я вградих в няколко платки за прототипи. След няколко часа нарязване на проводници и сглобяване на веригата, получих този резултат: Една гигантска макет с 48 светодиода и тонове тел!

Стъпка 4: Контрол?

Контрол?
Контрол?

Това е най -предизвикателната част от проекта. Исках да направя един алгоритъм за управление достатъчно общ за обработка на модели/последователности, а също и за контрол на яркостта и цвета на всеки светодиод. За да управлявам светодиодите, трябва да изпратя до MCP23016 един кадър от 4 байта (1 байт = 8 бита). Един байт с адреса на кореспондента на IC към цвета, 1 байт с командата "запис" и 2 байта със стойността на 16 бита (светодиоди). IC е свързан към светодиодите като "поглъщане", което означава, че една логическа стойност 0 на щифта ще светне светодиода. И сега предизвикателната част, как да направите PWM управление за 48 светодиода? Нека да проучим PWM за един светодиод! PWM обяснено @ Wikipedia, Ако искам яркостта на светодиода да е 50%, стойността ми на PWM е 50%. Това означава, че светодиодът в един период от време трябва да свети в същото време като изключен. Да вземем период от 1 секунда. PWM от 50% означава, че за тази 1 секунда времето за включване е 0,5 секунди, а времето за изключване е 0,5 секунди. ШИМ от 80%? 0,2 секунди изключено, 0,8 секунди включено! Лесно, нали? В цифровия свят: При период от 10 тактови цикъла, 50% означава, че за 5 цикъла светодиодът свети, а за още 5 цикъла светодиодът е изключен. 20%? 2 цикъла включени, 8 цикъла изключени. 45%? Е, всъщност не можем да получим 45%… Тъй като периодът е в цикли и имаме само 10 цикъла, можем да разделим ШИМ само на стъпки от 10%. Това означава, че еволюцията на щифта трябва да бъде за 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Или дори 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; В програмирането можем да направим тази последователност от включване и изключване на масив. За всеки цикъл извеждаме към пина стойността на индекса е цикълът. Имам ли смисъл досега? Ако искаме да направим LED0 50%, а LED1 20%, можем да добавим и двата масива.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; За задвижване на LED пина 1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; В резултат на LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Извеждайки тази последователност от числа в разширителя на порта IC, ще получим LED0 с 50% яркост и LED1 с 20% !! Просто за 2 светодиода, нали? Сега трябва да направим това за 16 светодиода, за всеки цвят! За всеки един от тези масиви имаме комбинация от яркост за всеки цвят (16 светодиода) Всеки път, когато искаме друга комбинация от цветове, трябва да променим този масив.

Стъпка 5: Улеснявайте

Улесняване!
Улесняване!
Улесняване!
Улесняване!

Предишната стъпка е твърде много работа за направата на проста последователност … Затова реших да направя програма, в която казваме цветовете на всеки светодиод в една стъпка от последователността и получаваме трите масива от стъпката. Направих тази програма в LabView поради ограничения във времето.

Стъпка 6: Първи експерименти

Първи експерименти
Първи експерименти

Зареждаме няколко стъпки в микроконтролера и получаваме нещо подобно: Извинете за лошото качество на видеоклиповете! Определих максималния брой стъпки от последователност до 8 и ограничих PWM до 20% скокове. Това решение се основава на вида на контрола, който използвам и колко EEPROM има ATtiny2313. В тези експерименти се опитах да видя какви ефекти мога да направя. Трябва да кажа, че съм доволен от резултата!

Стъпка 7: Контрол в реално време

Контрол в реално време
Контрол в реално време
Контрол в реално време
Контрол в реално време
Контрол в реално време
Контрол в реално време

Както бе споменато в предишните стъпки, искам да комуникирам с всички микроконтролери, управляващи светодиодите в моята стая. Затова използвах наличния интерфейс USART в ATtiny2313 и го свързах с компютъра си. Също така направих програма в LabView за управление на LED лентата, В която мога да кажа на микроконтролера колко е дълга последователността, цвета на всеки светодиод и времето между стъпките на последователността. В следващото видео ще демонстрирам как мога да променя цвета на светодиодите и да определя последователности.

Стъпка 8: Заключения

Изводи
Изводи
Изводи
Изводи
Изводи
Изводи
Изводи
Изводи

Мисля, че успях в първия подход на моя проект. Мога да контролирам 16 RGB светодиода с малко ресурси и ограничения. Възможно е да се управлява всеки светодиод поотделно, създавайки всяка желана последователност.

Бъдеща работа:

Ако получа положителна обратна връзка от хората, мога да доразвия тази идея и да направя пълен комплект за електроника „Направи си сам“, с печатни платки и инструкции за сглобяване.

За следващата си версия аз ще: -Смяна микроконтролера на такъв с ADC -Сменете MCP23016 за някакъв друг вид сериен паралелен изход, който може да поглъща повече ток от светодиодите -Направете софтуер с отворен код за комуникация с микроконтролера и управление на светодиодите -Разработете комуникацията между няколко микроконтролера.

Имате ли предложение или въпрос? Или оставете коментар!

Финалист в Let It Glow!

Препоръчано: