SILICON LABS Lab 3B – Ibdel il-Gwida tal-Utent Switch On/Off
Dan l-eżerċizzju prattiku se juri kif tagħmel modifika fuq waħda mill-sample applikazzjonijiet li jintbagħtu bħala parti mill-SDK Z-Wave.
Dan l-eżerċizzju huwa parti mis-serje "Z-Wave 1-Day Course".
- Inkludi l-użu ta' SmartStart
- Decrypt Z-Wave RF Frames bl-użu ta 'Zniffer
- 3A: Ikkompila Ixgħel/Itfi u Attiva d-Debug
3B: Immodifika Ixgħel/Itfi - Ifhem l-apparati FLiRS
KARATTERISTIĊI EWLENIN
- Bidla GPIO
- Implimenta PWM
- Uża l-LED RGB abbord
1. Introduzzjoni
Dan l-eżerċizzju qed jibni fuq l-eżerċizzju preċedenti "3A: Ikkompila Ixgħel/Itfi u ppermetti d-debug", li wera kif tikkompila u tuża l-Iswiċċ Ixgħel/Itfi.ample applikazzjoni.
F'dan l-eżerċizzju se nkunu qed nagħmlu modifika lill-sample applikazzjoni, billi tibdel il-GPIO li jikkontrolla l-LED. Barra minn hekk, se nkunu qed nużaw LED RGB u nitgħallmu kif nużaw PWM biex nibdlu l-kuluri.
1.1 Rekwiżiti tal-Hardware
- 1 Bord tal-Iżvilupp Prinċipali tal-WSTK
- 1 Bord ta 'żvilupp tar-Radju Z-Wave: Modulu SiP ZGM130S
- 1 Kontrollur UZB
- 1 USB Zniffer
1.2 Rekwiżiti tas-Software
- Simplicity Studio v4
- Z-Wave 7 SDK
- Kontrollur tal-PC Z-Wave
- Z-Wave Zniffer
Figura 1: Bord tal-Iżvilupp Prinċipali b'Modulu SiP Z-Wave
1.3 Prerekwiżiti
Eżerċizzji Hands-On preċedenti koprew kif tuża l-PC Controller u l-applikazzjoni Zniffer biex tibni netwerk Z-Wave u taqbad il-komunikazzjoni RF għal skop ta 'żvilupp. Dan l-eżerċizzju jassumi li inti familjari ma 'dawn l-għodod.
Eżerċizzji Hands-On preċedenti kopra wkoll kif tuża l-sample applikazzjonijiet li jintbagħtu bl-SDK Z-Wave. Dan l-eżerċizzju jassumi li inti familjari mal-użu u l-kumpilazzjoni ta’ wieħed mill-sample applikazzjonijiet.
Il-qafas Z-Wave jiġi b'saff ta 'astrazzjoni tal-ħardwer (HAL) definit minn board.h u board.c, li jipprovdi l-possibbiltà li jkollok implimentazzjonijiet għal kull waħda mill-pjattaformi tal-hardware tiegħek.
Il-Hardware Abstraction Layer (HAL) huwa kodiċi ta' programm bejn il-ħardwer ta' sistema u s-softwer tagħha li jipprovdi interface konsistenti għal applikazzjonijiet li jistgħu jaħdmu fuq diversi pjattaformi ta' hardware differenti. Biex tieħu vantaġġtage ta 'din il-kapaċità, l-applikazzjonijiet għandhom jaċċessaw hardware permezz tal-API pprovduta mill-HAL, aktar milli direttament. Imbagħad, meta tmur għal hardware ġdid, għandek bżonn biss taġġorna l-HAL.
2.1 Iftaħ Sample Proġett
Għal dan l-eżerċizzju għandek bżonn tiftaħ is-Swiċċ Mixgħul / Mitfiample applikazzjoni. Jekk lestejt l-eżerċizzju "3A Ikkompila Aqleb OnOff u ppermetti d-debug", għandu diġà jinfetaħ fl-IDE ta' Simplicity Studio tiegħek.
F'din it-taqsima se nkunu qed inħarsu lejn il-bord files u jifhmu kif l-LEDs huma initialized.
- Mill-prinċipali file "SwitchOnOff.c", sib "ApplicationInit()" u avviż is-sejħa lil Board_Init().
- Poġġi l-kors tiegħek fuq Board_Init() u agħfas fuq F3 biex tiftaħ id-dikjarazzjoni.
3. F'Board_Init() innota kif LEDs li jinsabu f'BOARD_LED_COUNT qed jiġu inizjalizzati billi jissejħu Board_Con-figLed()
4. Poġġi l-kors tiegħek fuq BOARD_LED_COUNT u agħfas fuq F3 biex tiftaħ id-dikjarazzjoni.
5. L-LEDs definiti f'led_id_t huma kif ġej:
6. Irritorna lejn il-bord.c file.
7. Poġġi l-kors tiegħek fuq Board_ConfigLed() u agħfas fuq F3 biex tiftaħ id-dikjarazzjoni.
8. Avviż li l-LEDs kollha definiti f'led_id_t huma mbagħad ikkonfigurati f'Board_ConfigLed() bħala output.
Dan ifisser li l-LEDs kollha fuq il-bord tal-iżvilupp huma diġà definiti bħala outputs u lesti għall-użu.
3. Agħmel Modifika lil Z-Wave Sample Applikazzjoni
F'dan l-eżerċizzju se nkunu nimmodifikaw il-GPIOs użati għall-LED fl-Iswiċċ On/Off sample applikazzjoni. Fit-taqsima ta 'qabel tgħallimna kif l-LEDs kollha fuq il-bord tal-iżvilupp huma diġà inizjalizzati bħala output u lesti għall-użu.
3.1 Uża l-LED RGB
Se nkunu qed nużaw l-LED RGB abbord fuq il-modulu ta 'żvilupp Z-Wave, minflok l-LED fuq il-bord tal-buttuna.
1. Sib il-funzjoni RefreshMMI, kif jidher fil-Figura 6, fl-applikazzjoni ewlenija SwitchOnOff.c file.
Figura 6: RefreshMMI mingħajr ebda modifika
2. Se nkunu qed nużaw il-funzjoni "Board_SetLed" iżda nibdlu l-GPIO għal
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. Ċempel "Board_SetLed" 3 darbiet kemm fl-istat OFF kif ukoll fl-istat ON, kif muri fil-Figura 7.
Il-modifika l-ġdida tagħna issa hija implimentata, u inti lest biex tikkumpila.
Il-passi għall-ipprogrammar ta' apparat huma koperti fl-eżerċizzju "3A Ikkompila Ixgħel Itfi u ppermetti d-debug", u ripetuti fil-qosor hawn:
- Ikklikkja fuq il-"Bini"
buttuna biex tibda tibni l-proġett.
- Meta tispiċċa l-bini, jespandi l-folder "Binaries" u kklikkja bil-lemin fuq il-*.hex file biex tagħżel "Flash għall-Apparat...".
- Agħżel il-ħardwer konness fit-tieqa pop-up. Il-"Programmer Flash" issa huwa mimli minn qabel bid-dejta kollha meħtieġa, u inti lest li tikklikkja fuq "Programm".
- Ikklikkja "Programm".
Wara ftit żmien l-ipprogrammar jintemm, u t-tagħmir tat-tmiem tiegħek issa jiġi flashed bil-verżjoni modifikata tiegħek ta 'Swiċċ On/Off.
3.1.1 Ittestja l-funzjonalità
F'eżerċizzji preċedenti diġà inkludejna l-apparat f'netwerk Z-Wave sigur bl-użu ta 'SmartStart. Irreferi għall-eżerċizzju "Inkludi bl-użu ta' SmartStart" għall-istruzzjonijiet.
Ħjiel L-intern file sistema ma titħassarx bejn l-ipprogrammar mill-ġdid. Dan jippermetti li node jibqa' f'netwerk u jżomm l-istess ċwievet tan-netwerk meta tipprogrammah mill-ġdid.
Jekk għandek bżonn tibdel eż. il-frekwenza li biha jopera l-modulu jew id-DSK, trid "Ħassar" iċ-ċippa qabel ma l-frekwenza l-ġdida tinkiteb fl-NVM intern.
Bħala tali, it-tagħmir tiegħek huwa diġà inkluż fin-netwerk.
Ittestja l-funzjonalità billi tivverifika li tista' tixgħel u titfi l-LED RGB.
- Ittestja l-funzjonalità billi tuża "Basic Set ON" u "Basic Set OFF" fil-Kontrollur tal-PC. L-LED RGB għandu jinxtegħel u jintefa.
- L-LED RGB jista 'wkoll jinxtegħel u jintfew bl-użu ta' BTN0 fuq il-ħardwer.
Issa vverifikajna li l-modifika qed taħdem kif mistenni u bdilna b'suċċess il-GPIO użat f'Sample Applikazzjoni
3.2 Ibdel il-komponent tal-kulur RGB
F'din it-taqsima, se nkunu qed timmodifika l-LED RGB u nippruvaw inħalltu l-komponenti tal-kulur.
“Kulur fil-mudell tal-kulur RGB huwa deskritt billi jindika kemm minn kull aħmar, aħdar u blu huwa inkluż. Il-kulur huwa espress bħala triplet RGB (r,g,b), li kull komponent tiegħu jista 'jvarja minn żero għal valur massimu definit. Jekk il-komponenti kollha huma f'żero ir-riżultat huwa iswed; jekk kollha jkunu fil-massimu, ir-riżultat huwa l-aktar abjad brillanti rappreżentabbli.”
Mill-Wikipedija fuq Mudell tal-Kulur RGB.
Peress li ppermettejna l-komponenti kollha tal-kulur fis-sezzjoni preċedenti, l-LED RGB huwa abjad meta jinxtegħel. Billi tixgħel u titfi tal-komponenti individwali, nistgħu nibdlu l-LED. Barra minn hekk, billi naġġustaw l-intensità ta 'kull komponenti tal-kulur, nistgħu nagħmlu l-kuluri kollha bejniethom. Għal dan, se nkunu qed nużaw PWM biex nikkontrollaw il-GPIOs.
- F'ApplicationTask() inizjalizza l-PwmTimer u waqqaf il-brilli RGB għal PWM, kif muri fil-Figura 9.
- F'RefreshMMI(), se nkunu qed nużaw numru każwali għal kull komponent tal-kulur. Uża rand() biex tikseb valur ġdid kull darba li l-LED jinxtegħel.
- Uża DPRINTF() biex tikteb il-valur iġġenerat ġdid fil-port serjali tad-debug.
- Ibdel Board_SetLed() ma Board_RgbLedSetPwm(), sabiex tuża l-valur każwali.
- Irreferi għall-Figura 10 għal RefreshMMI() aġġornat.
Figura 10: RefreshMMI aġġornat b'PWM
Il-modifika l-ġdida tagħna issa hija implimentata, u inti lest biex tikkumpila.
- Ikklikkja fuq il-"Bini"
buttuna biex tibda tibni l-proġett.
- Meta tispiċċa l-bini, jespandi l-folder "Binaries" u kklikkja bil-lemin fuq il-*.hex file biex tagħżel "Flash għall-Apparat...".
- Agħżel il-ħardwer konness fit-tieqa pop-up. Il-"Programmer Flash" issa huwa mimli minn qabel bid-dejta kollha meħtieġa, u inti lest li tikklikkja fuq "Programm".
- Ikklikkja "Programm".
Wara ftit żmien l-ipprogrammar jintemm, u t-tagħmir tat-tmiem tiegħek issa jiġi flashed bil-verżjoni modifikata tiegħek ta 'Swiċċ On/Off.
3.2.1 Ittestja l-Funzjonalità
Ittestja l-funzjonalità billi tivverifika li tista 'tbiddel il-kulur tal-LED RGB.
- Ittestja l-funzjonalità billi tuża "Basic Set ON" fil-Kontrollur tal-PC.
- Ikklikkja fuq "Basic Set ON" biex tara bidla fil-kulur.
Issa vverifikajna li l-modifika qed taħdem kif mistenni u bdilna b'suċċess il-GPIO biex tuża PWM.
4 Diskussjoni
F'dan l-eżerċizzju modifikajna Switch On/Off milli tikkontrolla LED sempliċi għall-kontroll ta' LED b'ħafna kuluri. Skont il-valuri PWM, issa nistgħu nbiddlu għal kwalunkwe kulur u intensità.
- Għandu jintuża "Binary Switch" bħala Tip ta' Apparat għal din l-applikazzjoni?
- Liema klassijiet ta 'kmand huma aktar adattati għal LED b'ħafna kuluri?
Sabiex twieġeb il-mistoqsija, għandek tirreferi għall-ispeċifikazzjoni Z-Wave:
- Speċifikazzjoni tat-Tip ta' Apparat Z-Wave Plus v2
- Speċifikazzjoni tal-Klassi tal-Kmand tal-Applikazzjoni Z-Wave
Dan jikkonkludi t-tutorja dwar kif timmodifika u tbiddel il-GPIOs ta 'Z-Wave Sample Applikazzjoni.
Aqra Aktar Dwar Dan il-Manwal u Niżżel il-PDF:
Dokumenti / Riżorsi
![]() |
SILICON LABS Lab 3B - Immodifika Switch On/Off [pdfGwida għall-Utent Lab 3B, Immodifika Swiċċ, Mixgħul, Mitfi, Z-Wave, SDK |