Tartalomjegyzék:
- 1. lépés: Hardver a BLE-LED-Stickhez
- 2. lépés: Elektronikai összeszerelés
- 3. lépés: Hogyan lehet létrehozni a betűtípusokat?
- 4. lépés: BLE vezérlő szoftver
- 5. lépés: Első teszt
- 6. lépés: Válassza ki az animációkat
- 7. lépés: RGB vezérlés
- 8. lépés: Text_Animation Service és Persistent Storage Service
- 9. lépés: Indítsa el az Android alkalmazást
- 10. lépés: Üzenetek írása képekben
Videó: LED POVstick Bluetooth alacsony energiával: 10 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Ez az oktatóanyag bemutatja, hogyan kell felépíteni egy író botot RGB LED -ekkel, amely a telefonról BLE segítségével vezérelhető!
Most, hogy elkezdődik a sötét évszak, és hosszú expozíciós képeket kell készítenie: Ezzel a pálcával írhatja alá a képébe az aláírását, vagy motivációs idézetet, vagy szerelmi nyilatkozatot, QR-kódot, webcímet vagy sok más dolgok…
Több fejlesztési témát ölel fel:
- a hardver építése
- a Cypress BLE lapkakészlet programozása C -vel
- készítsen saját alkalmazást annak irányítására.
1. lépés: Hardver a BLE-LED-Stickhez
A bothoz a következőkre van szüksége:
- Egy ciprusos BLE modul (CY8C4247LQI-BL583)
- egy WS2812b RGB-LED-szalag (64LED egy 144Led méterenként)
- Li-Ion akkumulátor megfelelő tartóval (18650)
- nyomógomb
- egy darab kenyeretábla
Maga a bot hardvere meglehetősen egyszerű.
A Cypress BLE modul egy kenyérsütő lapra van szerelve, és a LED-ek, a gomb és a tápegység csak ehhez a kenyérsütő laphoz vannak csatlakoztatva.
Minden rögzítve, ragasztva vagy csavarozva van egy kis darab faszalagra, amelyet részben átlátszó poliakrilcsőbe helyeznek. De ez nem kötelező. Mindent egy csőbe szereltem, de nem találtam megfelelőt a BLE modulhoz és az akkumulátorhoz, amelyek meglehetősen nagyok a LED-ekhez képest. Az első lövéshez nem kell az akrilcső.
2. lépés: Elektronikai összeszerelés
Ez a lépés bemutatja, hogyan kell a BLE-modult felszerelni, és milyen csapokat használnak erre a célra.
Mint több utasításomban, a Cypress BLE fejlesztői készletet használtam. CY8CKIT-042-BLE Gyors használatbavételi útmutató
Ha önállóan szeretné működtetni a modult, akkor csak az áramforrásokat és a használt csapokat kell csatlakoztatnia.
A projektünkhöz csak a 3.5-ös tüskét használjuk a LED-szalag meghajtásához. De természetesen megváltoztathatja ezt a PSoC Creator segítségével.
Amint az a NYÁK képén is látható, a chip minden sarkához hozzáadtam a tűhegyeket, de kihagytam a VREF csapot.
Így a modul megfelelően van felszerelve, és lehetetlen rosszul csatlakoztatni a modult.
3. lépés: Hogyan lehet létrehozni a betűtípusokat?
Nos, azt hiszem, ez volt az egyik legérdekesebb probléma, amit a projekt során megoldottam.
Természetesen lehet csak új betűtípust tervezni és tömbbe írni, de ez tényleg sok munka!
Szóval mit csináltam?
Tudtam, hogy szükségem van valamiféle ASCII-hex-bitkép átalakításra. És szerencsém volt, mert nem én voltam az első ezzel a problémával!:-)
A "GLCD Font Generator" szoftver helyesen cselekedett:
Mivel a legtöbbet akartam kihozni a LED-pálcából, meglehetősen nagy méretben (~ 32 pixel) importáltam a betűtípust. Ha csak nagybetűket használ, nem kell törődnie az emelkedőkkel, ami további néhány képponttal növeli a látható betűméretet. De úgy döntöttem, hogy mind a nagy-, mind a kisbetűket használom. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)
Miután importált egy betűtípust a GLCD betűtípus -generátorba, kiválaszthatja, hogy különböző formátumokban exportálja.
Próbáltam közvetlenül fejlécekbe exportálni, ami jó volt, de nem tökéletes. A kapott export egy rövidnadrág-tömb (16 bites), bájt-hexadecimális értékekkel az oszlopokhoz az első 128 ascii karakterhez. Nem egészen az, amire vágytam vagy amire szükségem volt…
Így importáltam a tömböt egy nyílt irodai kalkulációs munkalapra. Ezután eltávolítottam a "0x" értéket háromból a négy értékből, és összefűztem őket egy 32 bites hosszú értékké. Javítottam az egyes bájtok rossz végletességét is.
A kapott tömb egy 32*bit értékű N*M tömb. M a megfelelő karakter, N pedig az oszlopok, amelyek e betű megjelenítését alkotják. Ebben az első vázlatban minden karakter azonos számú oszlopot tartalmaz, ami azt jelenti, hogy minden betű egyformán széles, mint a jól ismert Courier betűtípusban. Az olyan kis karakterek, mint az "i" vagy a "t", mintha elvesztek volna a térben.
Ezért minden karakter elején új paramétert adtam hozzá, hogy megmondjam, mennyi oszlop van ebben a karakterben, vagy milyen széles ez a karakter. Ez memóriát takarít meg, és a szöveg jobban néz ki!
4. lépés: BLE vezérlő szoftver
A BLE szoftver elve nagyon egyszerű:
- Kezdetben egyszerűen nem tesz semmit.
- A BLE segítségével különböző animációkat vagy szövegeket állíthat be.
- A gomb megnyomása után az animáció vagy a szöveg egyes oszlopai jelennek meg.
- A szöveg megjelenítése után ismét vár.
Csak importálja a ciprusprojektet a PSoC-Creatorba, és módosítsa, ha úgy tetszik.
A PSoC-4 nem rendelkezik annyi RAM-mal és vakuval, hogy képes legyen a betűtípusok teljes RGB-képeinek tárolására. Ezért szükségem volt egy módra, amellyel dinamikusan elő lehet állítani a LED tartalmat a szövegből. Ez elég egyszerű, eddig semmi különös. A sok betűs szövegből az algoritmus egy betűt vesz, és fekete-fehér bittérkép tömbré alakítja át. Ezután leveszi ennek az egybetűs bitképnek minden oszlopát, és fehér helyett az aktuális RGB-színt írja a LED-tömbbe. Ily módon egyszínű szövegeket hozhat létre, vagy egy további funkció segítségével megváltoztathatja a színt minden oszlop, betű vagy akár minden képpont után.
A "betű" egyetlen bájtos változóban tárolható, míg a fekete-fehér bitképet valamilyen tömbben kell tárolni.
Az adatszerkezet a következő:
String: newtext = "Hello";
Betűtípus: uint32 karakter = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Szín: uint32 rgbcolor = 0xHHBBGGRR; // Fényerő, kék, zöld, piros, 8 bites értékként
A karakterlánc megjelenítésre konvertálásához a következőket kell tennünk:
getCharacter (): H (8bit)
getColumn (int i): oszlop (32bit) (i az első oszloppal kezdődik, az utolsóig fut.) ha (bit az oszlopban 1) a Strip LED színe. A LED-Strip Array 64 LED-et tartalmaz, egyenként 32 bites színnel!
És ha ez az oszlop megjelenik, akkor a következővel folytatjuk.
Ez ilyen egyszerű.
5. lépés: Első teszt
Most, hogy a szoftver fut, készen állunk az első tesztekre.
A beágyazott funkció tesztelésének legegyszerűbb módja a Bluetooth alacsony energiaszintű tesztalkalmazás. Mint a Nordic vagy a Cypress Apps.
Északi: nRF Connect for Mobile
Ciprus: CySmart
Indítsa el a Pov-Stick-et, és figyelje meg, hogyan jelenik meg a demo-karakterlánc. Ha ez befejeződött, ideje elindítani az alkalmazást. Keresse meg a Povstick eszközt, és kattintson a Csatlakozás gombra.
A kapcsolat létrejötte után az alkalmazás automatikusan felfedezi az összes meghatározott szolgáltatást és jellemzőt.
Keresse meg az első szolgáltatást (0000ccce -vel kell kezdődnie …). Kattintson rá a megnyitáshoz és az első jellemző megjelenítéséhez (0000ccc1 -el kezdődik). Ezután nyomja meg az írás (vagy feltöltés) gombot, és írjon 01 -et ehhez a tulajdonsághoz.
Miután megnyomta a Küldés gombot, a POVstick elindítja a Color-Knight-rider animációt, más néven Larson Scanner-t, változó színekkel.
Köszönjük, hogy elküldte első értékét a BLE -n keresztül!
6. lépés: Válassza ki az animációkat
A szoftverben definiáltunk egy enum "e_Animation" -t a következő értékekkel:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation, Animációs animáció;
Ezek az értékek érvényesek a ccc1 jellemzőre. Ha látni szeretné a CandyCane-animációt, írjon 4, 5 vagy 6 értéket ehhez a tulajdonsághoz. A színekben különböznek.
Két különleges animáció az RGB_Control és a TextAnimation. Ha úgy döntött, hogy aktiválja ezeket, a bot először nyilvánvalóan nem mutat semmit. De további lehetőségeket kínál a bot vezérléséhez a többi szolgáltatással.
7. lépés: RGB vezérlés
Az RGB-Control nagyon könnyen tesztelhető a CySmart alkalmazással, mert ugyanazt az UUID-t használtam ehhez a tulajdonsághoz, mint a Cypress Demo-ban.
Indítsa el a CySmart alkalmazást, és csatlakozzon a Povstick -hez. Először egy "0x0A" -t kell írni a ccc1 karakterisztikába.
A 0x0A a hexadecimális érték 10-re, amely az RGB-vezérlés animációja az enumban.
Ezután átválthat az RGB-LED vezérlőpultra a CySmart alkalmazásban. Talán újra kell indítania az alkalmazást, hogy erre a képernyőre lépjen. Ezzel az RGB-diagrammal szabályozhatja az összes LED színét.
Természetesen az értékeket közvetlenül a jellemzőbe is beírhatja.
8. lépés: Text_Animation Service és Persistent Storage Service
Ezeket a szolgáltatásokat nem olyan könnyű tesztelni.
Technikailag a nordic alkalmazást is használhatja erre, de tudnia kell, hogy mely értékekhez milyen jellemzőket kell írni.
Tehát ha ezeket tesztelni szeretné, akkor nézze meg a PSoC projektet, amely jellemzőnek melyik UUID azonosítója van.
Fontos szempont a "Set-Speed" jellemző. Ezzel a tulajdonsággal szabályozhatja az animációk gyorsaságát.
A PersistentStorageService "Set_Animation" jellemzőjével szabályozhatja a betűtípusokat és a szöveges karakterlánc színeit. Az érvényes értékeket a "povanimation.h", két betűtípus "mono" és "serif", valamint egyszínű és szivárvány színű határozza meg. A 0 és 1 értékek rögzített színnel jelenítik meg a szöveget, amely az RGB_Control karakterisztikával szabályozható. A 2 és 3 értékek minden oszlop színét megváltoztatják, és szép szivárványt adnak a karakterláncnak.
Az "Write_Text_Service" valahogy más. Új karakterláncot írhat a készülékre úgy, hogy egyes karaktereket ír a "Set_Character" karakterhez. Minden íráskor értesítést kap a karakterlánc aktuális hosszáról.
Új karakterlánc indításához írja be a "true" értéket a "Clear_String" mezőbe.
Ez nem a legjobb megvalósítás, de minden, legfeljebb 250 karakter hosszú karakterlánc esetén működik, anélkül, hogy módosítaná az MTU méretét.
Egy új karakterlánc megjelenítése a Povstick gombjának megnyomásakor.
9. lépés: Indítsa el az Android alkalmazást
Ez egy fontos lépés, de messze túlmutat ezen utasításon. Sajnálom, hogy!
Lehet, hogy feltöltöm a tesztalkalmazásomat a Play Áruházba, de még nincs kész vagy kiadható.
10. lépés: Üzenetek írása képekben
Nos, ezért építem először ezt a povsticket: üzeneteket képbe írni.
Szüksége van egy állványra, egy hosszú expozíciós funkcióval rendelkező kamerára és egy jó helyre.
Állítsa be a fényképezőgépet, és állítsa az expozíciós időt 10 másodpercre az első teszthez.
Indítsa el a kioldást, és kezdje el járni a képet, és indítsa el a bot megjelenítését.
És itt vagyunk!
A LED-fényerő, a rekesznyílás és az expozíciós idő megfelelő kombinációjával akár hajnalban is készíthet képeket.
Ebben a lépésben a három kép a lehetőségek teljes spektrumát mutatja.
Az elsőben a LED -ek túlexponáltak, és varázslatos ragyogást keltenek. De ezért láthatók a talajon a tükröződések, és a háttér is jó.
A második kép a LED -ek számára van kitéve, de a háttér teljesen feketén marad.
A harmadik pedig meglehetősen halvány LED -eket mutat röviddel napnyugta után. A LED -ek ugyanolyan fényesek, mint a többi képen, de a környezet annyira világos volt, hogy alacsony megjelenést és alacsony ISO -t kellett használnom, hogy a LED -ek meglehetősen sötétek legyenek.
Második díj a Make it Glow versenyen 2018
Ajánlott:
Ultra alacsony fogyasztású WiFi otthoni automatizálási rendszer: 6 lépés (képekkel)
Rendkívül kis teljesítményű WiFi otthoni automatizálási rendszer: Ebben a projektben megmutatjuk, hogyan lehet néhány lépésben felépíteni egy alapvető helyi otthoni automatizálási rendszert. Raspberry Pi -t fogunk használni, amely központi WiFi eszközként fog működni. Míg a végcsomópontokhoz az IOT Cricket -et fogjuk használni az akkumulátor előállításához
Készítse el saját alacsony költségvetésű Bluetooth zenei rendszerét: 5 lépés (képekkel)
Készítse el saját alacsony költségvetésű Bluetooth zenei rendszerét: Ebben a projektben megmutatom, hogyan " olvadtam " piszok olcsó bluetooth zenei vevőegység egy régi hangszórómmal. A fő hangsúly az olcsó audió erősítő áramkör megtervezésén lesz az LM386 és az NE5534 köré. A bluetooth vevőegység
MOLBED - moduláris, alacsony költségű Braille elektronikus kijelző: 5 lépés (képekkel)
MOLBED - Moduláris alacsony költségű Braille elektronikus kijelző: Leírás A projekt célja egy olyan elektronikus Braille -rendszer létrehozása, amely megfizethető és mindenki számára elérhetővé teszi ezt a technológiát. A kezdeti értékelés után egyértelmű volt, hogy így az egyéni karakter kialakítása h
Alacsony technológiájú napelemes lámpa újrafelhasznált elemekkel: 9 lépés (képekkel)
Alacsony technológiájú napelemes lámpa újrafelhasznált elemekkel: Ez az oktatóanyag lehetővé teszi, hogy napelemes lámpát készítsen USB töltővel. Lítiumcellákat használ, amelyeket újra használnak egy régi vagy sérült laptopról. Ez a rendszer egy napsütéses napon képes teljesen feltölteni egy okostelefont, és 4 órányi fényt biztosít. Ez a technika
Cserélje ki az alacsony feszültségű kétpólusú halogéneket LED-ekre: 6 lépés (képekkel)
Cserélje ki a kisfeszültségű kétpólusú halogéneket LED-ekre: Ez az útmutató leírja, hogyan lehet egyszerűen felszerelni egy alacsony feszültségű (12 V) két tűs halogénlámpát egy nagy teljesítményű LED "izzóval". kevesebb energiát fogyaszt (<10 W), tovább tart (50 000 óra), és nagyjából ugyanazt a fénykibocsátást (~ 300 lumen…)