SILICON LABS Lab 3B - Modifi Ŝaltilon/Malŝalti Uzantan Gvidilon
Ĉi tiu praktika ekzerco montros kiel fari modifon sur unu el la sample-aplikoj, kiuj sendas kiel parto de la Z-Wave SDK.
Ĉi tiu ekzerco estas parto de la serio "Z-Wave 1-Taga Kurso".
- Inkluzivi uzi SmartStart
- Malĉifri Z-Wave RF-Kadrojn uzante la Zniffer
- 3A: Kompilu Ŝalti/Malŝalti kaj Ebligi Sencimigon
3B: Modifi Ŝaltilon/Malŝalti - Komprenu FLiRS-aparatojn
Ŝlosilaj Trajtoj
- Ŝanĝu GPIO
- Efektivigu PWM
- Uzu enkonstruitan RGB-LED
1. Enkonduko
Ĉi tiu ekzerco estas konstruata sur la antaŭa ekzerco "3A: Kompilu Ŝalti/Malŝalti kaj ebligi sencimigon", kiu montris kiel kompili kaj uzi la Ŝaltilo/Malŝalti.ample aplikaĵo.
En ĉi tiu ekzerco ni faros modifon al la sample aplikaĵo, ŝanĝante la GPIO kiu kontrolas la LED. Krome, ni uzos RGB-LED kaj lernos kiel uzi PWM por ŝanĝi kolorojn.
1.1 Aparataro Postuloj
- 1 Ĉefa Disvolva Estraro de WSTK
- 1 Z-Wave Radio Development Board: ZGM130S SiP-Modulo
- 1 UZB-Regilo
- 1 USB Zniffer
1.2 Programaraj Postuloj
- Simplicity Studio v4
- Z-Wave 7 SDK
- Z-Wave PC-Regilo
- Z-Ondo Zniffer
Bildo 1: Ĉefa Disvolva Estraro kun Z-Wave SiP-Modulo
1.3 Antaŭkondiĉoj
Antaŭaj praktikaj ekzercoj priskribis kiel uzi la PC-Regilon kaj Zniffer-aplikaĵon por konstrui Z-Wave-reton kaj kapti la RF-komunikadon por disvolva celo. Ĉi tiu ekzerco supozas, ke vi konas ĉi tiujn ilojn.
Antaŭaj Manekzercoj ankaŭ kovris kiel uzi la sample-aplikoj, kiuj estas sendataj kun la Z-Wave SDK. Ĉi tiu ekzerco supozas, ke vi konas uzi kaj kompili unu el la sample aplikoj.
La kadro Z-Wave venas kun hardvara abstrakta tavolo (HAL) difinita de board.h kaj board.c, havigante la eblecon havi efektivigojn por ĉiu el viaj aparataj platformoj.
La Hardware Abstraction Layer (HAL) estas programkodo inter la aparataro de sistemo kaj ĝia softvaro kiu disponigas konsekvencan interfacon por aplikoj kiuj povas funkcii per pluraj malsamaj hardvarplatformoj. AntaŭenigitagDe ĉi tiu kapablo, aplikoj devus aliri aparataron per la API disponigita fare de la HAL, prefere ol rekte. Tiam, kiam vi moviĝas al nova aparataro, vi nur bezonas ĝisdatigi la HAL.
2.1 Malfermu Sample Projekto
Por ĉi tiu ekzerco vi devas malfermi la Ŝaltilon / Malŝaltiample aplikaĵo. Se vi kompletigis ekzercon "3A Kompilu Ŝaltu OnOff kaj ebligu sencimigon", ĝi jam devus esti malfermita en via Simplicity Studio IDE.
En ĉi tiu sekcio ni rigardos la tabulon files kaj komprenu kiel la LED-oj estas pravigitaj.
- De la ĉefa file "SwitchOnOff.c", lokalizu "ApplicationInit()" kaj rimarku la vokon al Board_Init().
- Metu vian kursilon sur Board_Init() kaj premu F3 por malfermi la deklaron.
3. En Board_Init()rimarku kiel LEDoj enhavitaj en BOARD_LED_COUNT estas pravaligitaj per nomita Board_Con-figLed()
4. Metu vian kursilon sur BOARD_LED_COUNT kaj premu F3 por malfermi la deklaron.
5. La LED-oj difinitaj en led_id_t estas jenaj:
6. Reiru al la estraro.c file.
7. Metu vian kursilon sur Board_ConfigLed() kaj premu F3 por malfermi la deklaron.
8. Rimarku, ke ĉiuj LED-oj difinitaj en led_id_t estas tiam agorditaj en Board_ConfigLed() kiel eligo.
Tio ĉi signifas, ke ĉiuj LED-oj sur la evolutabulo jam estas difinitaj kiel eliroj kaj pretaj por uzi.
3. Faru Modifon al Z-Wave Sample Apliko
En ĉi tiu ekzerco ni modifos la GPIO-ojn uzatajn por la LED en la Ŝaltilo/Malŝaltoample aplikaĵo. En la antaŭa sekcio ni lernis kiel ĉiuj LED-oj sur la evolutabulo jam estas pravigitaj kiel eligo kaj pretaj por uzi.
3.1 Uzu la RGB-LED
Ni uzos la enkonstruitan RGB-LED sur la disvolva modulo Z-Wave, anstataŭ la LED sur la butontabulo.
1. Trovu la funkcion RefreshMMI, kiel vidite en Figuro 6, en la ĉefa aplikaĵo SwitchOnOff.c file.
Figuro 6: RefreshMMI sen iuj modifoj
2. Ni uzos la funkcion "Board_SetLed" sed ŝanĝos la GPIO al
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. Voku "Board_SetLed" 3 fojojn kaj en la stato OFF kaj en la stato ON, kiel montrite en Figuro 7.
Nia nova modifo nun estas efektivigita, kaj vi pretas kompili.
La paŝoj por programi aparaton estas kovritaj en ekzerco "3A Kompilu Ŝaltu Malŝalti kaj ebligu sencimigon", kaj mallonge ripetataj ĉi tie:
- Alklaku la "Konstrui"
butonon por komenci konstrui la projekton.
- Kiam la konstruo finiĝas, vastigu la dosierujon "Binaroj" kaj dekstre alklaku la *.hex file por elekti "Flash al Aparato...".
- Elektu la konektitan aparataron en la ŝprucfenestro. La "Flash Programmer" nun estas antaŭplenigita kun ĉiuj bezonataj datumoj, kaj vi pretas klaki sur "Programo".
- Alklaku "Programo".
Post mallonga tempo la programado finiĝas, kaj via fina aparato nun ekbrilas kun via modifita versio de Ŝaltilo/Malŝalto.
3.1.1 Testu la funkciecon
En antaŭaj ekzercoj ni jam enmetis la aparaton en sekuran reton Z-Wave uzante SmartStart. Vidu al ekzerco "Inkluzivi uzante SmartStart" por instrukcioj.
Sugesto La interna file sistemo ne estas forigita inter reprogramado. Ĉi tio permesas al nodo resti en reto kaj konservi la samajn retajn ŝlosilojn kiam vi reprogramas ĝin.
Se vi bezonas ŝanĝi ekz. la frekvencon je kiu funkcias la modulo aŭ la DSK, vi devas "Forviŝi" la blaton antaŭ ol la nova frekvenco estos skribita al la interna NVM.
Kiel tia, via aparato jam estas inkluzivita en la reto.
Testu la funkciojn kontrolante, ke vi povas ŝalti kaj malŝalti la RGB-LED.
- Testu la funkciojn uzante la "Baza Agordo ON" kaj "Baza Aro OFF" en la PC-Regilo. La RGB LED devus ŝalti kaj malŝalti.
- La RGB LED ankaŭ povas esti ŝaltita kaj malŝaltita uzante BTN0 sur la aparataro.
Ni nun kontrolis, ke la modifo funkcias kiel atendite kaj sukcese ŝanĝis la GPIO uzatan en Sample Apliko
3.2 Ŝanĝu la RGB-kolorkomponenton
En ĉi tiu sekcio, ni modifos la RGB-LED kaj provos miksi la kolorkomponentojn.
"Koloro en la RGB-kolormodelo estas priskribita indikante kiom da ĉiu el la ruĝa, verda kaj blua estas inkluzivita. La koloro estas esprimita kiel RGB-triopo (r,g,b), ĉiu komponento de kiu povas varii de nul al difinita maksimuma valoro. Se ĉiuj komponantoj estas je nulo la rezulto estas nigra; se ĉiuj estas maksimume, la rezulto estas la plej brila reprezentebla blanka."
De Vikipedio plu RGB Kolora Modelo.
Ĉar ni ebligis ĉiujn kolorkomponentojn en antaŭa sekcio, la RGB-LED estas blanka kiam ŝaltita. Enŝaltante kaj malŝaltante la individuajn komponantojn, ni povas ŝanĝi la LED. Krome, ĝustigante la intensecon de ĉiu koloraj komponantoj, ni povas fari ĉiujn kolorojn intere. Por tio, ni uzos PWM por kontroli la GPIOojn.
- En ApplicationTask() pravigu la PwmTimer kaj agordu la RGB-stiftojn al PWM, kiel montrite en Figuro 9.
- En RefreshMMI(), ni uzos hazardan nombron por ĉiu kolora komponanto. Uzu rand() por akiri novan valoron ĉiufoje kiam la LED estas ŝaltita.
- Uzu DPRINTF() por skribi la nove generitan valoron al la seria sencimiga haveno.
- Anstataŭigi Board_SetLed() per Board_RgbLedSetPwm(), por uzi la hazardan valoron.
- Vidu al Figuro 10 por la ĝisdatigita RefreshMMI().
Figuro 10: RefreshMMI ĝisdatigita kun PWM
Nia nova modifo nun estas efektivigita, kaj vi pretas kompili.
- Alklaku la "Konstrui"
butonon por komenci konstrui la projekton.
- Kiam la konstruo finiĝas, vastigu la dosierujon "Binaroj" kaj dekstre alklaku la *.hex file por elekti "Flash al Aparato...".
- Elektu la konektitan aparataron en la ŝprucfenestro. La "Flash Programmer" nun estas antaŭplenigita kun ĉiuj bezonataj datumoj, kaj vi pretas klaki sur "Programo".
- Alklaku "Programo".
Post mallonga tempo la programado finiĝas, kaj via fina aparato nun ekbrilas kun via modifita versio de Ŝaltilo/Malŝalto.
3.2.1 Testu la Funkcion
Provu la funkciojn kontrolante, ke vi povas ŝanĝi la koloron de la RGB LED.
- Testu la funkciojn uzante la "Baza Aro ON" en la PC-Regilo.
- Alklaku "Baza Agordu ON" por vidi ŝanĝon en koloro.
Ni nun kontrolis, ke la modifo funkcias kiel atendite kaj sukcese ŝanĝis la GPIO por uzi PWM.
4 Diskuto
En ĉi tiu ekzerco ni modifis Ŝalti/Malŝalti de kontrolado de simpla LED al kontrolo de plurkolora LED. Depende de la PWM-valoroj, ni nun povas ŝanĝi al ajna koloro kaj intenseco.
- Ĉu "Binara Ŝaltilo" devus esti uzata kiel Aparato-Tipo por ĉi tiu aplikaĵo?
- Kiuj komandklasoj pli taŭgas por plurkolora LED?
Por respondi la demandon, vi devus raporti al la Z-Wave-specifo:
- Specifo pri Aparato-Tipo Z-Wave Plus v2
- Specifo de Klaso de Komando de Z-Wave Apliko
Ĉi tio finas la lernilon pri kiel modifi kaj ŝanĝi la GPIO-ojn de Z-Wave Sample Apliko.
Legu pli pri ĉi tiu manlibro kaj elŝutu PDF:
Dokumentoj/Rimedoj
![]() |
SILICON LABS Lab 3B - Modifi Ŝaltilon On/Malŝalti [pdf] Uzantogvidilo Laboratorio 3B, Modifi Ŝaltilon, Ŝalti, Malŝalti, Z-Ondo, SDK |