Obsah:
- Krok 1: Hardware pro BLE-LED-Stick
- Krok 2: Sestavení elektroniky
- Krok 3: Jak generovat písma?
- Krok 4: Software BLE Control
- Krok 5: První test
- Krok 6: Vyberte animace
- Krok 7: Ovládání RGB
- Krok 8: Služba Text_Animation a služba trvalého úložiště
- Krok 9: Spusťte aplikaci pro Android
- Krok 10: Napište zprávy do obrázků
Video: LED POVstick s Bluetooth s nízkou spotřebou energie: 10 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento instruktážní návod vám ukáže, jak postavit světelnou rukojeť s RGB LED diodami, kterou lze ovládat pomocí BLE z vašeho telefonu!
Nyní, když začíná temná sezóna a je třeba pořizovat snímky s dlouhou expozicí: Pomocí této tyčinky můžete do obrázku napsat svůj podpis, motivační citát nebo vyznání lásky, QR kód, webovou adresu nebo mnoho dalších. další věci…
Pokrývá několik vývojových témat:
- budování hardwaru
- programování čipové sady Cypress BLE pomocí C.
- vytvořte si vlastní aplikaci, kterou budete ovládat.
Krok 1: Hardware pro BLE-LED-Stick
Na hůl potřebujete následující:
- Cypřišový modul BLE (CY8C4247LQI-BL583)
- pásek WS2812b RGB-LED (64 LED z pásu 144 LED na metr)
- Li-Ion baterie s vhodným držákem (18650)
- tlačítko
- kousek prkénka
Hardware samotného sticku je celkem jednoduchý.
Modul Cypress BLE je připevněn na kus prkénka a LED diody, tlačítko a napájecí zdroj jsou právě připojeny k tomuto prkénku.
Vše je namontováno, přilepeno nebo přišroubováno k malému kousku dřevěného pásu, který je sám částečně vložen do čiré polyakrylové trubice. Ale to není nutné. Chtěl jsem všechno namontovat do trubice, ale nenašel jsem vhodný modul BLE a baterii, které jsou ve srovnání s LED diodami poměrně velké. Pro první výstřel nepotřebujete akrylovou trubici.
Krok 2: Sestavení elektroniky
Tento krok ukazuje, jak je modul BLE namontován a jaké piny se používají k jakému účelu.
Stejně jako v několika mých instruktážích jsem použil vývojovou sadu Cypress BLE. Stručný průvodce CY8CKIT-042-BLE
Pokud chcete modul provozovat samostatně, stačí připojit zdroje napájení a použité piny.
Pro náš projekt používáme pouze pin 3,5 k pohonu LED pásku. Ale samozřejmě to můžete změnit pomocí PSoC Creator.
Jak vidíte na obrázku DPS, přidal jsem špendlíky ve všech rozích čipu, ale přeskočil jsem pin VREF.
Tímto způsobem je modul správně namontován a není možné modul nesprávně připojit.
Krok 3: Jak generovat písma?
Myslím, že to byl jeden z nejzajímavějších problémů, které jsem během tohoto projektu vyřešil.
Samozřejmě lze navrhnout nové písmo a zapsat ho do pole, ale to je opravdu hodně práce!
Co jsem tedy udělal?
Věděl jsem, že potřebuji nějaký druh převodu ASCII na hex-bitmapu. A měl jsem štěstí, protože jsem nebyl první s tímto problémem!:-)
Software „GLCD Font Generator“udělal správnou věc:
Protože jsem chtěl z LED páky vytěžit maximum, importoval jsem písmo v poměrně velké velikosti (~ 32 pixelů). Pokud používáte pouze velká písmena, nemusíte se starat o nadřazené znaky, což zvýší vaši viditelnou velikost písma o několik pixelů. Ale rozhodl jsem se použít velká i malá písmena. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
Jakmile importujete písmo do generátoru písem GLCD, můžete se rozhodnout jej exportovat v různých formátech.
Zkoušel jsem to exportovat přímo do záhlaví, což bylo dobré, ale ne dokonalé. Výsledný export je pole shortů (16bitových) s bajtovými hexadecimálními hodnotami pro sloupce pro každý znak prvního znaku 128-ascii. Ne úplně to, co jsem chtěl nebo potřeboval…
Takže jsem pole importoval do otevřeného pracovního listu kalkulačky. Potom jsem odstranil "0x" na třech ze čtyř hodnot a spojil je do jedné 32bitové dlouhé hodnoty. Také jsem opravil špatnou koncovost jednotlivých bytů.
Výsledné pole je pole N*M s 32bitovými hodnotami. M je příslušný znak a N jsou sloupce, které tvoří zobrazení tohoto písmene. V tomto prvním konceptu mají všechny znaky stejný počet sloupců, to znamená, že všechna písmena jsou stejně široká, jako v dobře známém písmu Courier. Malé postavy jako „i“nebo „t“vypadají, jako by se ztratily ve vesmíru.
Proto jsem na začátek každého znaku přidal nový parametr, abych řekl, kolik sloupců má tento znak nebo jak široký je tento znak. Šetří to paměť a text vypadá lépe!
Krok 4: Software BLE Control
Princip softwaru BLE je velmi snadný:
- Na začátku to prostě nic nedělá.
- Prostřednictvím BLE můžete nastavit, aby se zobrazovaly různé animace nebo texty.
- Po stisknutí tlačítka se zobrazí jednotlivé sloupce animace nebo textu.
- Po zobrazení textu pokračuje v čekání znovu.
Stačí importovat projekt cypřiše do vašeho PSoC-Creator a upravit jej, pokud chcete.
PSoC-4 nemá tolik paměti RAM a blesku, aby mohl pojmout kompletní obrázky RGB písem. Proto jsem potřeboval způsob, jak dynamicky generovat obsah LED z textu. To je docela jednoduché, zatím nic zvláštního. Algoritmus z textu s mnoha písmeny vezme jedno písmeno a převede jej na pole černé a bílé bitmapy. Poté vezme každý sloupec této bitmapy s jedním písmenem a místo bílého zapíše aktuální barvu RGB do pole LED. Tímto způsobem můžete generovat jednobarevné texty nebo pomocí další funkce změnit barvu po každém sloupci, každém písmenu nebo dokonce po každém pixelu.
"Písmeno" může být uloženo v jedné bajtové proměnné, zatímco černobílá bitmapa musí být uložena v nějakém druhu pole.
Datová struktura je tato:
Řetězec: newtext = "Dobrý den";
Písmo: uint32 znaků = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Barva: uint32 rgbcolor = 0xHHBBGGRR; // Jas, modrá, zelená, červená, každá jako 8bitová hodnota
Chcete -li převést řetězec pro zobrazení, proveďte následující:
getCharacter (): H (8bit)
getColumn (int i): sloupec (32bit) (i začíná prvním sloupcem, běží do posledního.) pokud (bit ve sloupci je 1) LED v pruhu je nastavena na barvu. Pole LED Strip Array obsahuje 64 LED diod s 32bitovými barvami!
A pokud se tento sloupec zobrazí, pokračujeme dalším.
Je to tak snadné.
Krok 5: První test
Nyní, když software běží, jsme připraveni na první testy.
Nejjednodušší způsob, jak otestovat integrovanou funkci, je pomocí aplikace Bluetooth low energy test. Stejně jako severské nebo Cypress aplikace.
Severské: nRF Connect for Mobile
Cypress: CySmart
Spusťte Pov-Stick a sledujte, jak bude ukázkový řetězec zobrazen. Jakmile je to hotové, je čas spustit aplikaci. Prohledejte zařízení Povstick a klikněte na připojit.
Jakmile je připojení navázáno, aplikace automaticky zjistí všechny definované služby a vlastnosti.
Vyhledejte první službu (měla by začínat 0000 ccm …). Kliknutím na něj ji otevřete a zobrazí se první charakteristika (začíná 0000ccc1). Poté stiskněte tlačítko pro zápis (nebo odeslání) a napište k této charakteristice 01.
Jakmile stisknete odeslat, POVstick spustí animaci Color-Knight-rider alias Larson Scanner se změnou barev.
Gratulace, kterou jste zaslali svou první hodnotu prostřednictvím BLE!
Krok 6: Vyberte animace
V softwaru jsme definovali výčet „e_Animation“s následujícími hodnotami:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation, Animation_Max}
Toto jsou hodnoty, které platí pro charakteristiku ccc1. Pokud byste chtěli vidět animaci CandyCane, musíte k této charakteristice napsat 4, 5 nebo 6. Liší se barvami.
Dvě speciální animace jsou RGB_Control a TextAnimation. Pokud jste se rozhodli je aktivovat, páčka nejprve zjevně neukáže nic. Ale nabízí vám další možnosti ovládání páky s ostatními službami.
Krok 7: Ovládání RGB
RGB-Control lze velmi snadno testovat pomocí aplikace CySmart, protože jsem pro tuto charakteristiku použil stejný UUID jako v Cypress Demo.
Spusťte aplikaci CySmart a připojte se k Povstick. Nejprve musíte k charakteristice ccc1 napsat „0x0A“.
0x0A je hexadecimální hodnota pro 10, což je animace RGB-Control ve výčtu.
Poté můžete v aplikaci CySmart přepnout na ovládací panel RGB-LED. Možná budete muset aplikaci restartovat, abyste se dostali na tuto obrazovku. Pomocí tohoto RGB diagramu pak můžete ovládat barvu všech LED diod.
Hodnoty můžete samozřejmě také zapsat přímo do charakteristiky.
Krok 8: Služba Text_Animation a služba trvalého úložiště
Tyto služby není tak snadné testovat.
Technicky k tomu můžete použít i severskou aplikaci, ale musíte vědět, jaké hodnoty zapsat do které charakteristiky.
Pokud je tedy chcete otestovat, měli byste se podívat na projekt PSoC, jehož charakteristika má které UUID.
Důležitá je charakteristika „Nastavená rychlost“. S touto charakteristikou můžete ovládat, jak rychlé jsou animace.
S charakteristikou "Set_Animation" služby PersistentStorageService můžete ovládat písma a barvy textového řetězce. Platné hodnoty jsou definovány v „povanimation.h“, dvou fontech „mono“a „serif“a jednobarevných a duhových barvách. Hodnoty 0 a 1 zobrazují text s pevnou barvou, kterou lze ovládat pomocí charakteristiky RGB_Control. Hodnoty 2 a 3 mění barvu pro každý sloupec a dodávají řetězci pěknou duhu.
Služba „Write_Text_Service“se trochu liší. Nový řetězec můžete do zařízení zapsat zapsáním jednotlivých znaků do charakteristiky „Set_Character“. Při každém zápisu dostanete upozornění zpět na aktuální délku řetězce.
Chcete -li spustit nový řetězec, napište „true“do „Clear_String“.
Toto není nejlepší implementace, ale funguje pro jakýkoli řetězec do 250 znaků bez změny velikosti MTU.
Zobrazení nového řetězce se startem po stisknutí tlačítka na Povsticku.
Krok 9: Spusťte aplikaci pro Android
Toto je důležitý krok, ale daleko za rámec tohoto pokynu. Omlouvám se za to!
Možná bych mohl svou testovací aplikaci nahrát do obchodu Play, ale ta ještě není hotová nebo uvolnitelná.
Krok 10: Napište zprávy do obrázků
To je důvod, proč jsem v první řadě postavil tuto pověst: Psát zprávy v obrázcích.
Potřebujete stativ, fotoaparát s funkcí dlouhé expozice a nějaké dobré umístění.
Pro první test nastavte fotoaparát a upravte expoziční čas na 10 s.
Spusťte uvolnění a začněte procházet obrázkem a začněte zobrazovat text na páčce.
Et Voila, jsme tam!
Se správnou kombinací jasu LED, clony a doby expozice je dokonce možné fotografovat za úsvitu.
Tři obrázky v tomto kroku ukazují kompletní spektrum možností.
V první jsou LED diody přeexponované a vytvářejí kouzelnou záři. To je důvod, proč jsou odrazy na zemi viditelné a pozadí je docela dobré.
Druhý obrázek je exponovaný pro LED diody, ale pozadí zůstane zcela černé.
A třetí ukazuje poměrně slabé LED diody krátce po západu slunce. LED diody jsou stejně jasné jako na ostatních obrázcích, ale prostředí bylo tak jasné, že jsem musel použít nízkou světelnost a nízké ISO, aby se LED diody zdály spíše tmavé.
Druhá cena v soutěži Make it Glow Contest 2018
Doporučuje:
Síťová rivalita: hra s nízkou latencí pro BBC Micro: bit: 10 kroků (s obrázky)
Síťová rivalita: hra s nízkou latencí pro BBC Micro: bit: V tomto tutoriálu vysvětlím, jak implementovat základní hru pro více hráčů na BBC micro: bit s následujícími funkcemi: Jednoduché rozhraní Nízká latence mezi stisky tlačítek a aktualizace obrazovky Flexibilní počet účastníků Snadná spolupráce
Jak správně změřit spotřebu energie bezdrátových komunikačních modulů v době nízké spotřeby energie?: 6 kroků
Jak správně změřit spotřebu energie bezdrátových komunikačních modulů v době nízké spotřeby energie ?: Nízká spotřeba energie je v internetu věcí nesmírně důležitým konceptem. Většina uzlů IoT musí být napájena bateriemi. Pouze správným měřením spotřeby energie bezdrátového modulu můžeme přesně odhadnout, kolik baterie
PixelMeteo (monitor s nízkou předpovědí nízké spotřeby): 6 kroků (s obrázky)
PixelMeteo (UltraLow Power Forecast Monitor): IOT je skvělá věc, protože vám umožňuje připojit vše k internetu a ovládat jej na dálku, ale je tu jedna věc, že je také skvělý a jsou LED … Ale je tu ještě jedna věc, většina lidí nemá rádo dráty, ale oni
Jednoduchý most WiFi na BLE (Bluetooth s nízkou energií): 9 kroků (s obrázky)
Jednoduchý most WiFi na BLE (Bluetooth Low Energy): Aktualizace 4. prosince 2017 - revidované skici Feather nRF52 a tipy pro ladění. Přidány obrázky mostu namontovaného v krabici. Tento jednoduchý projekt poskytuje WiFi přístup k jakémukoli modulu Bluetooth Low Energy (BLE), který implementuje Nordic UART s TX Notify. Th
Jak vytvořit časovač s nízkou technologií: 5 kroků (s obrázky)
Jak vytvořit spínač časovače s nízkou technologií: Jedná se o instrukci k vytvoření spínače časovače s velmi nízkou technologií. moje se vypíná jednou za 12 hodin po dobu asi 3 minut. Udělal jsem to, protože nejsem opravdu tak dobrý s elektronikou, ale přesto jsem chtěl levný časovač. Toto je jen prototyp a doufám, že