Mündəricat:
- Addım 1: BLE-LED-Stick üçün avadanlıq
- Addım 2: Elektronika Quraşdırması
- Addım 3: Şriftləri Necə Yaratmaq olar?
- Addım 4: BLE Nəzarət Proqramı
- Addım 5: İlk test
- Addım 6: Animasiyaları seçin
- Addım 7: RGB Nəzarəti
- Addım 8: Text_Animation Service və Daimi Saxlama Xidməti
- Addım 9: Android tətbiqini işə salın
- Addım 10: Şəkillərə Mesaj Yazın
Video: Bluetooth Enerjisi Az olan LED POVstick: 10 Addım (Şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Bu təlimat, telefonunuzdan BLE vasitəsilə idarə edilə bilən RGB LED -ləri olan bir yazıçı çubuğunun necə qurulacağını göstərir!
Artıq qaranlıq mövsüm başlayanda və uzun pozlama şəkilləri çəkməyiniz lazımdır: Bu çubuqla şəklinizə imzanızı və ya motivasion bir sitat və ya sevgi bəyannaməsini, QR kodunu, veb ünvanınızı və ya bir çoxunu yaza bilərsiniz. başqa şeylər…
Bir neçə inkişaf mövzusunu əhatə edir:
- aparat qurmaq
- Cypress BLE çipsetini C ilə proqramlaşdırmaq
- nəzarət etmək üçün öz tətbiqinizi yaradın.
Addım 1: BLE-LED-Stick üçün avadanlıq
Çubuq üçün aşağıdakılara ehtiyacınız var:
- Sərvi BLE modulu (CY8C4247LQI-BL583)
- bir WS2812b RGB-LED Şeridi (metr başına 144Led-dən 64 LED)
- uyğun tutucu ilə Li-Ion batareya (18650)
- bir düymə
- bir parça çörək taxtası
Çubuğun aparatı olduqca sadədir.
Cypress BLE modulu bir parça çörək taxtasına quraşdırılmışdır və LED-lər, düymə və enerji təchizatı yalnız bu çörək taxtasına bağlıdır.
Hər şey özü qismən şəffaf bir poliakril boruya daxil edilmiş kiçik bir taxta zolağa yapışdırılır, yapışdırılır və ya vidalanır. Ancaq bu bir şərt deyil. Hər şeyi bir borunun içərisinə quraşdırmaq istədim, amma LED-lərlə müqayisədə olduqca böyük olan BLE-modulu və batareyası üçün uyğun bir şey tapmadım. İlk çəkiliş üçün akril boruya ehtiyac yoxdur.
Addım 2: Elektronika Quraşdırması
Bu addım, BLE modulunun necə quraşdırıldığını və hansı pinlərin hansı məqsədlə istifadə edildiyini göstərir.
Bir neçə təlimatımda olduğu kimi, Cypress BLE İnkişaf etdirmə Kitindən istifadə etdim. CY8CKIT-042-BLE Tez Başlanğıc Kılavuzu
Modulu tək başına idarə etmək istəyirsinizsə, bağlamaq üçün lazım olan tək şey enerji mənbələri və istifadə olunan pinlərdir.
Layihəmiz üçün LED şeridini idarə etmək üçün yalnız pin 3.5 istifadə edirik. Ancaq təbii ki, bunu PSoC Creator ilə dəyişə bilərsiniz.
PCB şəkilində gördüyünüz kimi, çipin bütün künclərinə pinheadlər əlavə etdim, amma VREF pinini atladım.
Bu şəkildə modul düzgün şəkildə quraşdırılır və modulu səhv bağlamaq mümkün deyil.
Addım 3: Şriftləri Necə Yaratmaq olar?
Düşünürəm ki, bu layihə zamanı həll etdiyim ən maraqlı problemlərdən biri idi.
Əlbəttə ki, yeni bir şrift tərtib etmək və onu bir sıra yazmaq olar, amma bu həqiqətən çox işdir!
Bəs mən nə etdim?
Hex-bitmap çevrilməsi üçün bir növ ASCII-ə ehtiyacım olduğunu bilirdim. Bəxtim gətirdi, çünki bu problemlə ilk deyiləm!:-)
"GLCD Font Generator" proqramı doğru işi etdi:
LED çubuqdan maksimum istifadə etmək istədiyim üçün fontu olduqca böyük ölçüdə (~ 32 piksel) idxal etdim. Yalnız böyük hərflərdən istifadə edirsinizsə, görünən şrift ölçüsünüzü bir neçə piksel artıracaq yüksələnlərə əhəmiyyət verməyinizə ehtiyac yoxdur. Ancaq həm böyük, həm də kiçik hərflərdən istifadə etməyi seçdim. (https://az.wikipedia.org/wiki/Ascender_%28typography%29)
GLCD Font generatoruna bir font idxal etdikdən sonra onu müxtəlif formatlarda ixrac etməyi seçə bilərsiniz.
Bunu yaxşı olan, lakin mükəmməl olmayan başlıqlara birbaşa ixrac etməyə çalışdım. Yaranan ixrac, ilk 128-ascii xarakterinin hər bir xarakteri üçün sütunlar üçün bayt-hex dəyərləri olan bir sıra şortlardır (16bit). İstədiyim və ya ehtiyac duyduğum şey deyil …
Beləliklə, dizini açıq bir ofis hesablama səhifəsinə idxal etdim. Sonra dörd dəyərdən üçündəki "0x" ı sildim və onları 32 bitlik uzun bir dəyərə birləşdirdim. Fərdi baytların səhv səhvlərini də təyin etdim.
Yaranan sıra, 32 bitlik bir N*M dizisidir. M müvafiq xarakterdir və N bu hərfin görüntüsünü təşkil edən sütunlardır. Bu ilk qaralamada bütün simvollar eyni sayda sütuna malikdir, yəni bütün məktublar tanınmış Courier şriftindəki kimi eyni dərəcədə genişdir. "İ" və ya "t" kimi kiçik personajlar kosmosda itmiş kimi görünürlər.
Buna görə hər bir xarakterin əvvəlinə bu xarakterin nə qədər sütun və ya nə qədər geniş olduğunu söyləmək üçün yeni bir parametr əlavə etdim. Bu yaddaşa qənaət edir və mətnin daha yaxşı görünməsini təmin edir!
Addım 4: BLE Nəzarət Proqramı
BLE proqramının prinsipi çox asandır:
- Başlanğıcda heç nə etmir.
- BLE vasitəsi ilə fərqli animasiyalar və ya mətnlər göstərə bilərsiniz.
- Düyməni basdıqdan sonra animasiyanın və ya mətnin fərdi sütunları göstərilir.
- Mətn göründükdən sonra yenidən gözləməyə davam edir.
Sərvi layihəsini PSoC-Creator-a idxal edin və istəsəniz dəyişdirin.
PSoC-4, yazı tiplərinin tam RGB şəkillərini saxlaya biləcək qədər RAM və flaşa sahib deyil. Buna görə mətndən LED məzmununu dinamik şəkildə yaratmaq üçün bir yola ehtiyacım var idi. Bu olduqca sadədir, indiyə qədər xüsusi bir şey yoxdur. Çox hərfli bir mətndən alqoritm bir hərf götürür və onu qara-ağ-bitmap sırasına çevirir. Sonra bu bir hərfli bitmapin hər bir sütununu götürür və ağ əvəzinə LED-massivinə indiki RGB rəngini yazır. Bu şəkildə tək rəngli mətnlər yarada və ya əlavə bir funksiya ilə hər sütundan, hər hərfdən sonra və ya hətta hər pikseldən sonra rəngini dəyişə bilərsiniz.
Bir "məktub" bir bayt dəyişənində saxlanıla bilər, qara və ağ rəngli bitmapin bir növ dizidə saxlanılması lazımdır.
Məlumat quruluşu belədir:
String: newtext = "Salam";
Yazı tipi: uint32 characters = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Rəng: uint32 rgbcolor = 0xHHBBGGRR; // Parlaqlıq, Mavi, Yaşıl, Qırmızı hər biri 8 bitlik dəyər
Görünüş üçün bir simli çevirmək üçün aşağıdakıları edirik:
getCharacter (): H (8 bit)
getColumn (int i): sütun (32bit) (i birinci sütundan başlayır, sona qədər işləyir.) əgər (sütundakı bit 1 -dirsə) Stripdəki LED rəngə ayarlanır. LED-Strip Array, hər biri 32 bit rəngli 64 LED-dir!
Və bu sütun göstərilirsə, bir sonrakı ilə davam edirik.
Bu asandır.
Addım 5: İlk test
Proqram işə salındıqdan sonra ilk sınaqlara hazırıq.
Daxili funksiyanı sınamağın ən asan yolu Bluetooth aşağı enerji test proqramıdır. Nordic və ya Cypress Tətbiqləri kimi.
Nordic: Mobil üçün nRF Connect
Cypress: CySmart
Pov-Stick-i işə salın və demo siminin necə göstəriləcəyini müşahidə edin. Bu bitdikdən sonra tətbiqə başlamağın vaxtı gəldi. Povstick cihazını axtarın və qoşulun.
Bağlantı qurulduqdan sonra tətbiq avtomatik olaraq bütün təyin edilmiş xidmətləri və xüsusiyyətləri kəşf edir.
İlk xidməti axtarın (0000ccce ilə başlamalıdır …). Açmaq və ilk xarakteristikanı göstərmək üçün üzərinə vurun (0000ccc1 ilə başlayır). Sonra yaz (və ya yüklə) düyməsini vurun və bu xüsusiyyətə 01 yazın.
Göndərmə düyməsini vurduqdan sonra POVstick, rəngləri dəyişən Larson Scanner adlı Color-Knight-rider animasiyasına başlayacaq.
İlk dəyərinizi BLE vasitəsilə göndərdiyiniz üçün təşəkkürlər!
Addım 6: Animasiyaları seçin
Proqramda aşağıdakı dəyərləri olan bir "e_Animation" təyin etdik:
typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Cax, Animation_nimation}
Bunlar ccc1 xarakteristikası üçün etibarlı olan dəyərlərdir. CandyCane-Animasiyasını görmək istəyirsinizsə, bu xüsusiyyətə 4, 5 və ya 6 yazmalısınız. Rəngləri ilə fərqlənirlər.
İki xüsusi animasiya RGB_Control və TextAnimation -dır. Bunları aktivləşdirməyi seçsəniz, çubuq əvvəlcə heç bir şey göstərməyəcək. Ancaq çubuğu digər xidmətlərlə idarə etmək üçün sizə əlavə seçimlər təklif edir.
Addım 7: RGB Nəzarəti
RGB-Control CySmart Tətbiqi ilə çox asanlıqla sınaqdan keçirilə bilər, çünki Cypress Demosundakı kimi bu xüsusiyyət üçün eyni UUID istifadə etdim.
CySmart tətbiqini işə salın və Povstickə qoşulun. Əvvəlcə ccc1 xüsusiyyətinə "0x0A" yazmalısınız.
0x0A, siyahıda RGB-Control animasiyası olan 10 üçün hex-dəyərdir.
Sonra CySmart Tətbiqində RGB-LED İdarəetmə Panelinə keçə bilərsiniz. Bəlkə bu ekrana keçmək üçün proqramı yenidən başlatmalısınız. Sonra bu RGB diaqramı ilə bütün LED-lərin rəngini idarə edə bilərsiniz.
Əlbəttə ki, dəyərləri birbaşa xarakteristikaya da yaza bilərsiniz.
Addım 8: Text_Animation Service və Daimi Saxlama Xidməti
Bu xidmətləri sınamaq o qədər də asan deyil.
Texniki olaraq bunun üçün nordic tətbiqdən də istifadə edə bilərsiniz, ancaq hansı xüsusiyyətə hansı dəyərlərin yazılacağını bilməlisiniz.
Buna görə də bunları sınamaq istəyirsinizsə, hansı UUID xüsusiyyətinə malik olan PSoC layihəsinə baxmalısınız.
"Set-Speed" xüsusiyyətinin vacib bir xüsusiyyəti. Bu xüsusiyyətlə animasiyaların nə qədər sürətli olduğunu idarə edə bilərsiniz.
PersistentStorageService -in "Set_Animation" xüsusiyyəti ilə mətn sətrinin şriftlərini və rənglərini idarə edə bilərsiniz. Etibarlı dəyərlər "povanimation.h", iki yazı tipi "mono" və "serif" və tək rəngli və göy qurşağı rəngində müəyyən edilir. 0 və 1 dəyərləri, mətni RGB_Control xüsusiyyəti ilə idarə oluna bilən sabit bir rənglə göstərir. 2 və 3 dəyərləri hər bir sütunun rəngini dəyişir və ipə gözəl bir göy qurşağı verir.
"Write_Text_Service" bir az fərqlidir. Fərdi simvolları "Set_Character" xüsusiyyətinə yazaraq cihaza yeni bir sim yaza bilərsiniz. Hər bir yazıda, sətrin cari uzunluğu barədə bir bildiriş alacaqsınız.
Yeni bir simli başlamaq üçün "Clear_String" ə "doğru" yazın.
Bu ən yaxşı tətbiq deyil, ancaq MTU ölçüsünü dəyişdirmədən 250 simvola qədər hər hansı bir simli işləyir.
Povstickdəki düyməyə basıldıqda başlanğıc ilə yeni bir sətrin göstərilməsi.
Addım 9: Android tətbiqini işə salın
Bu vacib bir addımdır, amma bu təlimatlandırmanın çərçivəsindən kənara çıxır. Bunun üçün üzr istəyirik!
Bəlkə test tətbiqimi oyun mağazasına yükləyə bilərəm, amma hələ bitməmiş və ya buraxılmamışdır.
Addım 10: Şəkillərə Mesaj Yazın
Bu povstick'i ilk növbədə qurmağımın səbəbi budur: şəkillərə mesaj yazmaq.
Bir tripod, uzun pozlama funksiyası olan bir kamera və yaxşı bir yerə ehtiyacınız var.
İlk test üçün kameranı qurun və pozlama müddətini 10 saniyəyə ayarlayın.
Sərbəst buraxmağı tetikleyin və çubuqdakı mətn görüntüsünə başlayaraq şəkil boyunca gəzməyə başlayın.
Et Voila oradayıq!
LED parlaqlığı, diyafram və ekspozisiya vaxtının düzgün birləşməsi ilə hətta şəfəqdə şəkil çəkmək mümkündür.
Bu addımdakı üç şəkil bütün imkanları göstərir.
Birincisində, LEDlər həddindən artıq pozulur və sehrli bir parıltı yaradır. Ancaq buna görə də yerdəki əkslər görünür və fon olduqca yaxşıdır.
İkinci şəkil LED -lər üçün açıqdır, ancaq fon tamamilə qara olur.
Üçüncüsü, gün batandan qısa bir müddət sonra olduqca zəif LEDləri göstərir. LED -lər digər şəkillərdəki kimi parlaqdır, amma mühit o qədər parlaq idi ki, LED -lərin daha qaranlıq görünməsi üçün aşağı bir tətbiq və aşağı bir ISO istifadə etməli oldum.
Make it Glow Yarışmasında 2018 -ci ilin ikinci mükafatı
Tövsiyə:
Günəş enerjisi ilə işləyən WiFi: 5 addım (şəkillərlə birlikdə)
Günəş enerjisi ilə işləyən WiFi: İnternetdə aparmaq üçün vacib bir işimiz olanda elektrik kəsilməsi ilə üzləşdiyimiz vaxtlar olur. Evinizdə elektrik olmadıqda Ev WiFi işləmir. Bu problemi həll etmək üçün WiFi şəbəkəmizi günəş enerjisindən istifadə edəcəyik
Günəş enerjisi ilə işləyən poçt qutusu: 12 addım (şəkillərlə birlikdə)
Əlaqəli Günəş Enerjili: İkinci İblim üçün bağlı məktub qutumla bağlı əsərlərimi təsvir edəcəyəm. Bu Təlimatı oxuduqdan sonra (+ bir çoxları) və poçt qutum evimin yaxınlığında olmadığından mənə ilham vermək istədim. Məktub qutumu m -ə bağlamaq üçün Green Energy -nin işlərini açın
Günəş enerjisi ilə çalışan Techfashion - SolarCycle və Microsoft Garage: 9 Addım (Şəkillərlə birlikdə)
Günəş enerjisi ilə işləyən Techfashion - SolarCycle & Microsoft Garage: Burning Man -da heç olmamışam, ancaq bunun üçün mükəmməl bir paltar hazırlaya bilərdim. Nə geyinəcəksiniz? Bu materialı hazırlamaq üçün geyim dizaynı, 3D çap və günəş enerjisi daxildir
Günəş enerjisi ilə işləyən motosikletli zəng saatı: 5 addım (şəkillərlə birlikdə)
Günəş Enerjili Motosiklet Dial Saatı: Köhnə motosikletimdən qalan bir tako kadrım vardı, mexaniki fırlanma sayğacını elektron panellə əvəzlədim (bu başqa bir layihədir!) Və onu atmaq istəmədim. Bu şeylər velosiped işıqları söndükdə arxadan işıqlandırılmaq üçün nəzərdə tutulmuşdur
Yalnız bir DC Motoru olan 12V -dən 220V -ə qədər olan ən sadə çevirici: 3 addım (şəkillərlə)
12V -dən 220V -a qədər bir DC Motoru olan ən sadə İnverter: Salam! Bu təlimatda evdə sadə bir çevirici hazırlamağı öyrənəcəksiniz. Dəyişdirmə işlərindən yalnız DC Motor məsuldur