Orodha ya maudhui:

Ncha ya LED na Nishati ya Chini ya Bluetooth: Hatua 10 (na Picha)
Ncha ya LED na Nishati ya Chini ya Bluetooth: Hatua 10 (na Picha)

Video: Ncha ya LED na Nishati ya Chini ya Bluetooth: Hatua 10 (na Picha)

Video: Ncha ya LED na Nishati ya Chini ya Bluetooth: Hatua 10 (na Picha)
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Ncha ya LED na Nishati ya chini ya Bluetooth
Ncha ya LED na Nishati ya chini ya Bluetooth

Mafundisho haya yanaonyesha jinsi ya kujenga fimbo ya mwandishi na RGB za LED ambazo zinadhibitiwa kupitia BLE kutoka kwa simu yako!

Sasa wakati wa msimu wa giza unapoanza na unahitaji kuchukua picha za mfiduo mrefu: Kwa fimbo hii unaweza kuandika saini yako kwenye picha, au nukuu ya kuhamasisha, au tamko la upendo, nambari ya QR, adresse ya wavuti, au nyingi mambo mengine…

Inashughulikia mada kadhaa za maendeleo:

  • kujenga vifaa
  • programu ya chipset ya Cypress BLE na C
  • fanya programu yako mwenyewe kuidhibiti.

Hatua ya 1: Vifaa kwa BLE-LED-Fimbo

Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo
Vifaa kwa BLE-LED-Fimbo

Kwa fimbo unahitaji yafuatayo:

  • Moduli ya Bypress ya cypress (CY8C4247LQI-BL583)
  • WS2812b RGB-LED-Strip (64LEDs kutoka 144Led kwa ukanda wa mita)
  • betri ya Li-Ion na mmiliki anayefaa (18650)
  • kitufe cha kushinikiza
  • kipande cha ubao wa mkate

Vifaa vya fimbo yenyewe ni rahisi sana.

Moduli ya Cypress BLE imewekwa kwenye kipande cha ubao wa mkate na taa za taa, kitufe na usambazaji wa umeme vimeunganishwa tu kwenye ubao huu wa mkate.

Kila kitu kimewekwa, glued au Star kwa kipande kidogo cha ukanda wa mbao, ambayo yenyewe imeingizwa kwenye bomba wazi la polyacryl. Lakini hii sio lazima. Nilitaka kuweka kila kitu ndani ya bomba, lakini sikupata inayofaa kwa moduli ya BLE na betri ambayo ni kubwa kabisa, ikilinganishwa na LEDs. Kwa risasi ya kwanza hauitaji bomba la acryl.

Hatua ya 2: Mkutano wa Elektroniki

Mkutano wa Elektroniki
Mkutano wa Elektroniki
Mkutano wa Elektroniki
Mkutano wa Elektroniki

Hatua hii inakuonyesha jinsi moduli ya BLE imewekwa na ni pini zipi zinazotumiwa kwa kusudi gani.

Kama ilivyo katika Maagizo yangu kadhaa nilitumia Kitambaa cha Maendeleo cha Cypress BLE. CY8CKIT-042-BLE Mwongozo wa Kuanza Haraka

Ikiwa unataka kuendesha moduli peke yake, unachohitaji kuunganisha ni vyanzo vya nguvu na pini zilizotumiwa.

Kwa mradi wetu tunatumia pini 3.5 tu kuendesha Ukanda wa LED. Lakini kwa kweli unaweza kubadilisha hiyo na Muundaji wa PSoC.

Kama unavyoona kwenye picha ya PCB, niliongeza vichwa vya pini katika pembe zote za chip lakini niliruka pini ya VREF.

Kwa njia hii moduli imewekwa vizuri na haiwezekani kuunganisha moduli hiyo vibaya.

Hatua ya 3: Jinsi ya Kutengeneza Fonti?

Jinsi ya Kutengeneza Fonti?
Jinsi ya Kutengeneza Fonti?

Kweli, nadhani hii ilikuwa moja wapo ya shida za kupendeza nilizotatua wakati wa mradi huu.

Kwa kweli mtu anaweza kubuni fonti mpya na kuiandika kwa safu, lakini hiyo ni kazi kubwa sana!

Kwa hivyo nilifanya nini?

Nilijua kuwa nilihitaji aina fulani ya ASCII kwa hex-bitmap kubadilika. Na nilikuwa na bahati, kwa sababu sikuwa wa kwanza na shida hii!:-)

Programu "Jenereta ya herufi za GLCD" ilifanya jambo sahihi tu:

Kwa sababu nilitaka kupata zaidi kutoka kwa kijiti cha LED, niliingiza font kwa saizi kubwa (~ 32pixel). Ikiwa unatumia herufi kubwa tu sio lazima ujali juu ya watu wanaopanda, ambayo itaongeza saizi yako ya font inayoonekana saizi zingine chache. Lakini nilichagua kutumia herufi kubwa mbili na herufi ndogo. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)

Mara tu utakapoingiza fonti kwenye jenereta ya herufi za GLCD unaweza kuchagua kuiuza nje kwa muundo tofauti.

Nilijaribu kusafirisha moja kwa moja kwenye vichwa ambavyo vilikuwa nzuri, lakini sio kamili. Uuzaji unaosababishwa ni safu ya kaptula (16bit) na maadili ya byte-hex kwa safu kwa kila tabia ya tabia ya kwanza ya 128-ascii. Sio kile nilichotaka au kuhitaji…

Kwa hivyo niliingiza safu katika karatasi ya ofisi ya wazi ya calc. Kisha nikaondoa "0x" kwa nambari tatu kati ya nne na kuziunganisha kwa thamani moja ya urefu wa 32bit. Nilirekebisha upendeleo mbaya wa kaa za kibinafsi.

Safu inayosababishwa ni safu ya N * M ya maadili 32bit. M ni mhusika husika na N ni nguzo zinazounda onyesho la barua hii. Katika rasimu hii ya kwanza wahusika wote wana idadi sawa ya nguzo, hiyo inamaanisha herufi zote zina upana sawa, kama katika fonti inayojulikana ya Courier. Wahusika wadogo kama "i" au "t" wanaonekana kama wamepotea angani.

Kwa hivyo niliongeza parameter mpya mwanzoni mwa kila mhusika kuelezea, ni ngapi mhusika ana tabia hii au upana wa tabia hii. Hii inaokoa kumbukumbu na kufanya maandishi yaonekane bora!

Hatua ya 4: Programu ya Kudhibiti BLE

Programu ya Kudhibiti BLE
Programu ya Kudhibiti BLE

Kanuni ya programu ya BLE ni rahisi sana:

  • Mwanzoni haifanyi chochote.
  • Kupitia BLE unaweza kuweka michoro tofauti au maandishi kuonyeshwa.
  • Mara tu unapobonyeza kitufe, nguzo za kibinafsi za uhuishaji au maandishi huonyeshwa.
  • Baada ya maandishi kuonyeshwa, inaendelea kusubiri tena.

Ingiza tu mradi wa cypress kwa PSoC-Muumba wako na uirekebishe ukipenda.

PSoC-4 haina RAM na mwangaza mwingi kuweza kushikilia picha kamili za RGB za fonti. Kwa hivyo nilihitaji njia ya kutengeneza yaliyomo ya LED kwa nguvu kutoka kwa maandishi. Hiyo ni sawa, hakuna kitu maalum hadi sasa. Kutoka kwa maandishi yenye herufi nyingi, algorithm inachukua herufi moja na kuibadilisha kuwa safu nyeusi-nyeupe-bitmap. Halafu inachukua kila safu ya herufi moja-bitmap na badala ya nyeupe, inaandika rangi ya sasa ya RGB kwa safu ya LED. Kwa njia hii unaweza kutengeneza maandishi ya rangi moja au kwa kazi ya ziada badilisha rangi baada ya kila safu, kila herufi au hata baada ya kila pikseli.

"Barua" inaweza kuhifadhiwa kwa kubadilisha-ka moja wakati bitmap nyeusi na nyeupe inahitaji kuhifadhiwa katika aina fulani ya safu.

Muundo wa data ni hii:

Kamba: newtext = "Hello";

Fonti: herufi uint32 = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn,…… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; Rangi: uint32 rgbcolor = 0xHHBBGGRR; // Mwangaza, Bluu, Kijani, Nyekundu kila moja kama thamani ya 8bit

Kubadilisha kamba kwa onyesho tunafanya yafuatayo:

pata Tabia (): H (8bit)

getColumn (int i): safu (32bit) (i huanza na safu ya kwanza, inaendesha hadi ya mwisho.) ikiwa (bit in column is 1) LED in Strip is set to color. Safu ya Ukanda wa LED ni LEDs 64 zilizo na rangi 32bit kila moja!

Na ikiwa safu hii itaonyeshwa tunaendelea na inayofuata.

Ni hii rahisi.

Hatua ya 5: Jaribio la kwanza

Mtihani wa Kwanza
Mtihani wa Kwanza
Mtihani wa Kwanza
Mtihani wa Kwanza
Mtihani wa Kwanza
Mtihani wa Kwanza

Sasa kwa kuwa programu inaendesha, tuko tayari kwa majaribio ya kwanza.

Njia rahisi ya kujaribu kazi iliyoingia ni na programu ya majaribio ya nishati ya chini ya Bluetooth. Kama Programu za Nordic au Cypress.

Nordic: nRF Unganisha kwa rununu

Cypress: CySmart

Anza Pov-Stick na angalia jinsi safu ya onyesho itaonyeshwa. Mara baada ya kumaliza hii ni wakati wa kuanza programu. Tafuta kifaa cha Povstick na bonyeza bonyeza.

Mara tu unganisho likianzishwa programu hugundua kiatomati huduma na sifa zote zilizoainishwa.

Tafuta huduma ya kwanza (inapaswa kuanza na 0000ccce…). Bonyeza juu yake kuifungua na kuonyesha tabia ya kwanza (huanza na 0000ccc1). Kisha bonyeza kitufe cha kuandika (au kupakia) na andika alama 1 kwa tabia hii.

Mara tu utakapotuma tuma, POVstick itaanza uhuishaji wa Rider-Knight aka Larson Scanner na rangi zinazobadilika.

Gratulations ulituma thamani yako ya kwanza kupitia BLE!

Hatua ya 6: Chagua michoro

Chagua michoro
Chagua michoro
Chagua michoro
Chagua michoro
Chagua michoro
Chagua michoro
Chagua michoro
Chagua michoro

Katika programu tulielezea enum "e_Animation" na maadili yafuatayo:

typedef enum {Knightrider = 0, ColourKnightRider, Upinde wa mvua, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, TextAnimation, Animation_Max} e_

Hizi ndizo maadili ambayo ni halali kwa tabia ya ccc1. Ikiwa ungependa kuona CandyCane-Animation lazima uandike 4, 5 au 6 kwa tabia hii. Wanatofautiana katika rangi.

Mifano kwa michoro mbili maalum ni RGB_Control na TextAnimation. Ikiwa ulichagua kuamilisha hizi, fimbo haitaonyesha chochote mwanzoni. Lakini inakupa chaguzi za ziada kudhibiti fimbo na huduma zingine.

Hatua ya 7: Udhibiti wa RGB

Udhibiti wa RGB
Udhibiti wa RGB
Udhibiti wa RGB
Udhibiti wa RGB
Udhibiti wa RGB
Udhibiti wa RGB
Udhibiti wa RGB
Udhibiti wa RGB

Udhibiti wa RGB unaweza kujaribiwa kwa urahisi na Programu ya CySmart kwa sababu nilitumia UUID sawa kwa tabia hii kama vile Densi ya Cypress.

Anza programu ya CySmart na unganisha kwenye Povstick. Kwanza lazima uandike "0x0A" kwa tabia ya ccc1.

0x0A ni thamani ya hex kwa 10, ambayo ni uhuishaji wa RGB-Control kwenye enum.

Basi unaweza kubadili Jopo la Udhibiti wa RGB-LED katika Programu ya CySmart. Labda lazima uanze upya programu ili ufikie skrini hii. Basi unaweza kudhibiti rangi ya LED zote na mchoro huu wa RGB.

Kwa kweli unaweza pia kuandika maadili moja kwa moja kwenye tabia.

Hatua ya 8: Huduma ya Nakala_Uhuishaji na Huduma ya Kuhifadhi ya Kuendelea

Huduma ya Maandishi ya Maandishi na Huduma ya Kuhifadhi ya Kuendelea
Huduma ya Maandishi ya Maandishi na Huduma ya Kuhifadhi ya Kuendelea

Huduma hizi sio rahisi kujaribu.

Kitaalam unaweza pia kutumia programu ya nordic kwa hii, lakini unahitaji kujua ni maadili gani ya kuandika ni tabia gani.

Kwa hivyo ikiwa unataka kujaribu hizi, unapaswa kuangalia mradi wa PSoC, ambayo tabia ina UUID gani.

La muhimu ni tabia ya "Kuweka-Kasi". Kwa tabia hii unaweza kudhibiti jinsi michoro ni haraka.

Ukiwa na tabia ya "Set_Animation" ya PersistentStorageService unaweza kudhibiti fonti na rangi za kamba ya maandishi. Thamani halali hufafanuliwa katika "povanimation.h", fonti mbili "mono" na "serif" na rangi moja na rangi ya upinde wa mvua. Thamani 0 na 1 huonyesha maandishi na rangi iliyowekwa, inayoweza kudhibitiwa kupitia tabia ya RGB_Control. Maadili 2 na 3 hubadilisha rangi kwa kila safu na ipe kamba upinde wa mvua mzuri.

"Andika_Text_Service" ni aina tofauti. Unaweza kuandika kamba mpya kwa kifaa kwa kuandika herufi binafsi kwa tabia ya "Set_Character". Kwenye kila maandishi, utapata arifu nyuma ya urefu wa sasa wa kamba.

Kuanzisha kamba mpya, andika "kweli" kwa "Clear_String".

Huu sio utekelezaji bora, lakini inafanya kazi kwa kamba yoyote hadi herufi 250 bila kubadilisha saizi ya MTU.

Uonyesho wa kamba mpya na kuanza wakati kitufe kwenye Povstick kimechapishwa.

Hatua ya 9: Anzisha App ya Android

Hii ni hatua muhimu, lakini zaidi ya upeo wa hii inayoweza kufundishwa. Samahani kwa hilo!

Labda naweza kupakia programu yangu ya majaribio kwenye duka la kucheza, lakini bado haijakamilika au kutolewa.

Hatua ya 10: Andika Ujumbe katika Picha

Andika Ujumbe kwenye Picha
Andika Ujumbe kwenye Picha
Andika Ujumbe kwenye Picha
Andika Ujumbe kwenye Picha
Andika Ujumbe kwenye Picha
Andika Ujumbe kwenye Picha

Kweli, ndio sababu ninaunda kijiti hiki mahali pa kwanza: Kuandika ujumbe kwenye picha.

Unahitaji kitatu, kamera iliyo na kazi ya mfiduo mrefu na mahali pazuri.

Weka kamera na urekebishe wakati wa mfiduo kuwa 10 kwa jaribio la kwanza.

Kuchochea kutolewa na kuanza kutembea kupitia picha, kuanzia maonyesho ya maandishi kwenye fimbo.

Et Voila hapo tupo!

Pamoja na mchanganyiko sahihi wa mwangaza wa mwangaza wa LED, kufungua na wakati wa mfiduo inawezekana kuchukua picha alfajiri.

Picha tatu katika hatua hii zinaonyesha wigo kamili wa uwezekano.

Katika kwanza, taa za taa zinaonyeshwa kupita kiasi na zinaunda mwangaza wa kichawi. Lakini ndio sababu tafakari juu ya ardhi inaonekana na msingi ni mzuri.

Picha ya pili imefunuliwa kwa LED, lakini hiyo inaacha historia ikiwa nyeusi kabisa.

Na ya tatu inaonyesha taa nyepesi za LED muda mfupi baada ya jua kutua. Taa zinaangaza kama kwenye picha zingine, lakini mazingira yalikuwa mkali sana hivi kwamba nililazimika kutumia kiunzi kidogo na ISO ya chini ili taa zionekane kuwa nyeusi.

Fanya Mashindano ya Glow 2018
Fanya Mashindano ya Glow 2018
Fanya Mashindano ya Glow 2018
Fanya Mashindano ya Glow 2018

Tuzo ya pili katika Shindano la Kuifanya iwe Inang'aa 2018

Ilipendekeza: