Obsah:

Interaktivní okolní světlo: 8 kroků
Interaktivní okolní světlo: 8 kroků

Video: Interaktivní okolní světlo: 8 kroků

Video: Interaktivní okolní světlo: 8 kroků
Video: ANDROID MÁ JEDNO SKRYTÉ NASTAVENÍ 🤖 2024, Červenec
Anonim
Interaktivní okolní světlo
Interaktivní okolní světlo
Interaktivní okolní světlo
Interaktivní okolní světlo
Interaktivní okolní světlo
Interaktivní okolní světlo

Toto je můj první návod! Mějte prosím na paměti, že se snažím psát správnou angličtinu. Neváhejte mě opravit! Tento projekt jsem zahájil těsně po zahájení soutěže „Let it glow“. Přál bych si, abych udělal mnohem víc a dokončil to, co jsem chtěl udělat. Ale mezi školou a prací mi nezbylo tolik času, jak jsem si přála. Přesto zde nechávám zprávu o svých experimentech jako návod, aby se kdokoli mohl pokusit vytvořit to, co jsem udělal. Tento instruktáž nemá sloužit jako průvodce a naučit, jak tuto mašinku udělat. Není to průvodce pro začátečníky v elektronice. Je to spíše jako sdílení jedné myšlenky a cíle, které chci sledovat. Pokud jste začátečník/úplný ignorant elektroniky a chcete něco takového vyrobit, omlouvám se! Ale můžeme se pokusit vám vždy pomoci. Viz poslední krok. Už jsme viděli mnoho projektů okolního světla. Většina z nich používá RGB LED diody: - Pro osvětlení místnosti jednou barvou, nastavení atmosféry odpovídající vaší náladě - Vytváření světelných efektů z barvy TV/monitoru nebo ze zvuku. Na instructables.com jich je dokonce několik: Související: Svépomocné systémy okolního osvětlení Světelná lišta Ambientní osvětlení Sestavení vlastních lišt pro ambientní barevné osvětlení S využitím této soutěže jako omluvy jsem zahájil projekt, který mám na mysli už nějakou dobu. Vždy jsem chtěl udělat něco podobného těmto okolním světlům a vyplnit stěny ve svém pokoji RGB LED diodami. Ale udělat to ještě o krok dále a učinit všechny a každého z nich ovladatelnými. Tento projekt snad vyústí v open-source elektronickou soupravu pro fandy a elektronické drotáře, která umožní hardwarové/softwarové hackování a senzorickou integraci. Zde je malý náhled toho, co jsem vytvořil:

Krok 1: Zkoumání myšlenky

Chci mít možnost zaplnit stěny ve svém pokoji RGB LED diodami, které ovládají barvu a jas pro každou LED. Pro snadné použití a flexibilitu použiji mikrokontrolér. Bohužel nemohu ovládat stovky LED diod pomocí několika pinů dostupných na mikrokontrolérech. Bylo by dokonce obtížné kódovat ovládání tolika LED. Rozhodl jsem se tedy, že všechny LED diody rozdělím do několika menších pruhů a pro každou lištu mohu použít mikrokontrolér. Pak bych použil komunikační schopnosti mikrokontrolérů ke sdílení informací mezi nimi. Tato informace může být barva a jas LED, vzory/sekvence barev a senzorické informace. Pro každou lištu jsem se rozhodl použít 16 RGB LED. Výsledkem není ani příliš velký, ani malý pruh. Tímto způsobem používám přijatelný počet zdrojů pro každou LED, což snižuje náklady na každou lištu. Nicméně 16 RGB LED je 48 LED (3*16 = 48) pro ovládání mikrokontroléru. S ohledem na náklady jsem se rozhodl použít nejlevnější mikrokontrolér, který jsem mohl použít. To znamená, že mikrokontrolér bude mít pouze až 20 I/O pinů, což nestačí na 48 LED. Nechci používat charlieplexing nebo nějaký druh časově rozdělené jednotky, protože cílem projektu je osvětlení místnosti. alternativa, o které bych mohl uvažovat, je použití nějakého západkového posuvného registru! Obnovení:- Vytvořte a interaktivní okolní světlo- Vytvořte standardní lištu ovladatelných LED diod- Možnost připojení několika pruhů k vyplnění místnosti- Umožněte uživateli přizpůsobení/konfiguraci a senzorickou integraci

Krok 2: Hardware

Hardware
Hardware
Hardware
Hardware

Jak bylo řečeno v předchozím kroku, přál bych si vytvořit několik tyčí pro osvětlení jedné místnosti. To přináší problém s náklady. Pokusím se udělat z každé tyče nákladově nejefektivnější možný způsob. Mikrokontrolér, který jsem použil, byl AVR ATtiny2313. Jsou poměrně levné a několik jsem jich povaloval. ATtiny2313 má také jedno univerzální sériové rozhraní a jedno rozhraní USART, které se v následujících krocích dobře využije. Nechal jsem ležet tři expandéry I/O portů MCP23016 - I2C 16bit, správný počet! Každý expandér portů jsem použil k ovládání jedné barvy ze 16 LED diod. LED diody … Bohužel byly nejlevnější, co jsem mohl najít. Mají 48 červených, zelených a modrých ~ 10 000 mcd 5 mm s úhlem 20 stupňů. To by prozatím nemělo vadit, protože se jedná pouze o jeden prototyp. I přes tuto skutečnost je výsledek docela pěkný! Používám mikrokontrolér na 8 MHz. Sběrnice I2C je taktována na 400 kHz. Frekvence přepínání LED je přibližně 400 Hz. Tímto způsobem, pokud jsem schopen řídit 48 LED diod, aniž bych to tlačil na limit, budu mít prostor pro více později!

Krok 3: Sestavení

Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění
Shromáždění

Po návrhu obvodu jsem jej postavil pro několik prkének pro účely prototypování. Po několika hodinách řezání vodičů a sestavování obvodu jsem získal tento výsledek: jedno obrovské prkénko se 48 LED diodami a tunami drátu!

Krok 4: Ovládání?

Řízení?
Řízení?

Toto je nejnáročnější část projektu. Chtěl jsem vytvořit jeden generační řídicí algoritmus dostatečně obecný pro zpracování vzorů/sekvencí a také pro ovládání jasu a barvy každé LED diody. Pro ovládání LED musím poslat do MCP23016 jeden rámec se 4 bajty (1 byte = 8 bitů). Jeden bajt s adresou IC korespondenta barvy, 1 bajt s příkazem „zápis“a 2 bajty s hodnotou 16 bitů (LED). IC je připojen k LED diodám jako „dřez“, což znamená, že jedna logická hodnota 0 na pinu rozsvítí LED. A nyní náročná část, jak zajistit ovládání PWM pro 48 LED? Pojďme studovat PWM pro jednu LED! PWM vysvětlil na Wikipedii. Pokud chci jas LED na 50%, moje hodnota PWM je 50%. To znamená, že LED v jednom časovém období by měla svítit stejně dlouho jako zhasnutá. Vezměme si období 1 sekundy. PWM 50% znamená, že v této 1 sekundě je doba zapnutí 0,5 sekundy a doba vypnutí 0,5 sekundy. PWM 80%? 0,2 sekundy vypnuto, 0,8 sekundy zapnuto! Snadné, že? V digitálním světě: S periodou 10 hodinových cyklů 50% znamená, že po dobu 5 cyklů LED svítí a dalších 5 cyklů LED nesvítí. 20%? 2 cykly zapnuty, 8 cyklů vypnuto. 45%? Nemůžeme skutečně získat 45%… Protože období je v cyklech a máme pouze 10 cyklů, můžeme PWM rozdělit pouze v krocích po 10%. To znamená, že vývoj kolíku by měl být pro 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Nebo dokonce 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; V programování můžeme vytvořit tuto sekvenci zapnutí a vypnutí pole. Pro každý cyklus, který vyvedeme na pin, je hodnota indexu, kde je cyklus. Dával jsem zatím smysl? Pokud chceme vytvořit LED0 50%a LED1 20%, můžeme přidat obě pole. Pro řízení LED0 pin: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Pro ovládání pinu LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0; Výsledek v LED0 +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Výstupem této sekvence čísel v IC expandéru portů bychom dostali LED0 s 50% jasem a LED1 s 20% !! Jednoduché pro 2 LED diody, že? Nyní to musíme udělat pro 16 LED diod, pro každou barvu! Pro každé z těchto polí máme kombinaci jasu pro každou barvu (16 LED) Pokaždé, když chceme jinou kombinaci barev, musíme toto pole změnit.

Krok 5: Usnadnění

Making It Easy!
Making It Easy!
Making It Easy!
Making It Easy!

Předchozí krok je příliš mnoho práce na vytvoření jednoduché sekvence … Rozhodl jsem se tedy vytvořit program, kde řekneme barvy každé LED v jednom kroku sekvence a získáme tři pole kroku. Tento program jsem vytvořil z důvodu časové tísně v LabView.

Krok 6: První experimenty

První experimenty
První experimenty

Načtení několika kroků do mikrokontroléru a dostaneme něco takového: Omlouváme se za špatnou kvalitu videí! Definoval jsem maximální počet kroků v sekvenci na 8 a omezil PWM na 20% skoků. Toto rozhodnutí je založeno na druhu ovládání, které používám, a na tom, kolik EEPROM má ATtiny2313. V těchto experimentech jsem se pokusil zjistit, jaké efekty mohu dosáhnout. Musím říci, že jsem s výsledkem spokojen!

Krok 7: Ovládání v reálném čase

Ovládání v reálném čase
Ovládání v reálném čase
Ovládání v reálném čase
Ovládání v reálném čase
Ovládání v reálném čase
Ovládání v reálném čase

Jak již bylo zmíněno v předchozích krocích, přeji si komunikovat se všemi mikrokontroléry ovládajícími LED diody v mém pokoji. Využil jsem tedy dostupné rozhraní USART v ATtiny2313 a připojil jej k počítači. Také jsem vytvořil program v LabView pro ovládání LED lišty. V tomto programu jsem schopen říci mikrokontroléru, jak dlouhá je sekvence, barva každé LED a čas mezi kroky sekvence. V dalším videu budu předvést, jak mohu změnit barvu LED a definovat sekvence.

Krok 8: Závěry

Závěry
Závěry
Závěry
Závěry
Závěry
Závěry
Závěry
Závěry

Myslím, že jsem byl v tomto prvním přístupu svého projektu úspěšný. Jsem schopen ovládat 16 RGB LED diod s malými prostředky a omezeními. Je možné ovládat každou LED samostatně a vytvářet libovolnou požadovanou sekvenci.

Budoucí práce:

Pokud dostanu pozitivní zpětnou vazbu od lidí, mohu tuto myšlenku dále rozvíjet a vytvořit úplnou elektronickou stavebnici pro kutily s deskami plošných spojů a montážními pokyny.

Pro moji další verzi: ovládat LED diody -Rozvíjet komunikaci mezi několika mikrokontroléry.

Máte nějaký návrh nebo dotaz? Nebo zanechat komentář!

Finalista soutěže Let It Glow!

Doporučuje: