Obsah:

LED POVstick s Bluetooth s nízkou spotřebou energie: 10 kroků (s obrázky)
LED POVstick s Bluetooth s nízkou spotřebou energie: 10 kroků (s obrázky)

Video: LED POVstick s Bluetooth s nízkou spotřebou energie: 10 kroků (s obrázky)

Video: LED POVstick s Bluetooth s nízkou spotřebou energie: 10 kroků (s obrázky)
Video: Стоит БРАТЬ ВСЕМ?? И чем хорош радиоприемник ATS25X1 подробный обзор 2024, Listopad
Anonim
LED POVstick s technologií Bluetooth s nízkou spotřebou energie
LED POVstick s technologií Bluetooth s nízkou spotřebou energie

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

Hardware pro BLE-LED-Stick
Hardware pro BLE-LED-Stick
Hardware pro BLE-LED-Stick
Hardware pro BLE-LED-Stick
Hardware pro BLE-LED-Stick
Hardware pro BLE-LED-Stick
Hardware pro BLE-LED-Stick
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

Sestava elektroniky
Sestava elektroniky
Sestava elektroniky
Sestava 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?

Jak generovat písma?
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

Ovládací software BLE
Ovládací software BLE

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

První test
První test
První test
První test
První test
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

Vyberte animace
Vyberte animace
Vyberte animace
Vyberte animace
Vyberte animace
Vyberte animace
Vyberte animace
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

Ovládání RGB
Ovládání RGB
Ovládání RGB
Ovládání RGB
Ovládání RGB
Ovládání RGB
Ovládání RGB
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ě

Služba Text_Animation a služba trvalého úložiště
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ů

Pište zprávy do obrázků
Pište zprávy do obrázků
Pište zprávy do obrázků
Pište zprávy do obrázků
Pište zprávy do obrázků
Piš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é.

Make it Glow Contest 2018
Make it Glow Contest 2018
Make it Glow Contest 2018
Make it Glow Contest 2018

Druhá cena v soutěži Make it Glow Contest 2018

Doporučuje: