SILICON LABS ဓာတ်ခွဲခန်း 3B – အသုံးပြုသူလမ်းညွှန်ကို အဖွင့်/အပိတ် ပြင်ဆင်ပါ။
ဤလက်တွေ့လေ့ကျင့်ခန်းသည် s များထဲမှ တစ်ခုကို ပြုပြင်မွမ်းမံနည်းကို သရုပ်ပြပါမည်။ampZ-Wave SDK ၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် ပေးပို့သော အပလီကေးရှင်းများ။
ဤလေ့ကျင့်ခန်းသည် "Z-Wave 1-Day Course" စီးရီး၏တစ်စိတ်တစ်ပိုင်းဖြစ်သည်။
- SmartStart ကို အသုံးပြု၍ ထည့်သွင်းပါ။
- Zniffer ကို အသုံးပြု၍ Z-Wave RF Frames များကို ကုဒ်ဝှက်ပါ။
- 3A- ခလုတ်ကို ဖွင့်/ပိတ် စုစည်းပြီး အမှားရှာပြင်ခြင်းကို ဖွင့်ပါ။
3B- ခလုတ် အဖွင့်/အပိတ်ကို ပြင်ဆင်ပါ။ - FLiRS စက်များကို နားလည်ပါ။
အဓိကအင်္ဂါရပ်များ
- GPIO ကိုပြောင်းပါ။
- PWM ကို အကောင်အထည်ဖော်ပါ။
- on-board RGB LED ကိုသုံးပါ။
1. နိဒါန်း
ဤလေ့ကျင့်ခန်းသည် ယခင်လေ့ကျင့်ခန်း “3A: Compile Switch On/Off and enabled debug” ၏အပေါ်တွင် တည်ဆောက်ထားပြီး၊ Switch On/Off s ကို မည်သို့စုစည်း၍ အသုံးပြုရမည်ကို သရုပ်ပြထားသည်။ample လျှောက်လွှာ။
ဤလေ့ကျင့်ခန်းတွင်ကျွန်ုပ်တို့သည် s ကိုပြုပြင်မွမ်းမံခြင်းပြုလုပ်လိမ့်မည်။ampအပလီကေးရှင်း၊ LED ကိုထိန်းချုပ်သော GPIO ကိုပြောင်းလဲခြင်းဖြင့်။ ထို့အပြင်၊ ကျွန်ုပ်တို့သည် RGB LED ကိုအသုံးပြုပြီး အရောင်များကိုပြောင်းလဲရန် PWM ကိုအသုံးပြုပုံကို လေ့လာပါမည်။
1.1 ဟာ့ဒ်ဝဲလိုအပ်ချက်များ
- WSTK ပင်မဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်အဖွဲ့ 1 ခု
- 1 Z-Wave ရေဒီယို ဖွံ့ဖြိုးတိုးတက်ရေးဘုတ်အဖွဲ့- ZGM130S SiP မော်ဂျူး
- UZB ထိန်းချုပ်ကိရိယာ ၁ ခု
- USB Zniffer 1 ခု
1.2 Software လိုအပ်ချက်များ
- Simplicity Studio v4
- Z-Wave 7 SDK
- Z-Wave PC Controller
- Z-Wave Zniffer
ပုံ 1- Z-Wave SiP Module ဖြင့် အဓိက ဖွံ့ဖြိုးတိုးတက်မှုဘုတ်အဖွဲ့
1.3 ကြိုတင်လိုအပ်ချက်များ
ယခင် Hands-On လေ့ကျင့်ခန်းများသည် Z-Wave ကွန်ရက်တည်ဆောက်ရန်နှင့် ဖွံ့ဖြိုးတိုးတက်မှုရည်ရွယ်ချက်အတွက် RF ဆက်သွယ်ရေးကို ဖမ်းယူရန်အတွက် PC Controller နှင့် Zniffer အက်ပ်လီကေးရှင်းကို အသုံးပြုနည်းကို အကျုံးဝင်ပါသည်။ ဤလေ့ကျင့်ခန်းသည် ဤကိရိယာများနှင့် ရင်းနှီးသည်ဟု ယူဆသည်။
ယခင် Hands-On လေ့ကျင့်ခန်းများသည် s ကိုအသုံးပြုပုံကိုလည်း ဖော်ပြထားပါသည်။ampZ-Wave SDK ဖြင့်ပေးပို့သော အပလီကေးရှင်းများ။ ဤလေ့ကျင့်ခန်းသည် သင်အသုံးပြုပြီး s များထဲမှ တစ်ခုကို စုစည်းခြင်းနှင့် ရင်းနှီးသည်ဟု ယူဆသည်။ample applications များ။
Z-Wave မူဘောင်သည် board.h နှင့် board.c မှသတ်မှတ်ထားသော ဟာ့ဒ်ဝဲအလွှာ (HAL) ပါ၀င်ပြီး သင့်ဟာ့ဒ်ဝဲပလပ်ဖောင်းတစ်ခုစီအတွက် အကောင်အထည်ဖော်မှုများပြုလုပ်နိုင်ခြေကို ပေးဆောင်ပါသည်။
Hardware Abstraction Layer (HAL) သည် စနစ်တစ်ခု၏ ဟာ့ဒ်ဝဲနှင့် ၎င်း၏ဆော့ဖ်ဝဲလ်ကြားရှိ ပရိုဂရမ်ကုဒ်သည် မတူညီသော ဟာ့ဒ်ဝဲပလပ်ဖောင်းများစွာပေါ်တွင် လုပ်ဆောင်နိုင်သော အပလီကေးရှင်းများအတွက် တစ်သမတ်တည်းသော မျက်နှာပြင်ကို ထောက်ပံ့ပေးသည်။ advan ယူရန်tagဤစွမ်းရည်၏ e၊ အပလီကေးရှင်းများသည် တိုက်ရိုက်မဟုတ်ဘဲ HAL မှပေးသော API မှတစ်ဆင့် ဟာ့ဒ်ဝဲကို ဝင်ရောက်သင့်သည်။ ထို့နောက်၊ သင်သည် ဟာ့ဒ်ဝဲအသစ်သို့ ပြောင်းရွှေ့သောအခါ၊ သင်သည် HAL ကို မွမ်းမံရန်သာ လိုအပ်သည်။
2.1 S ကိုဖွင့်ပါ။ample စီမံကိန်း
ဤလေ့ကျင့်ခန်းအတွက် သင်သည် Switch On/Off ကိုဖွင့်ရန် လိုအပ်သည်။ample လျှောက်လွှာ။ သင်သည် “3A Compile Switch OnOff and enable debug” လေ့ကျင့်ခန်းကို ပြီးမြောက်ပါက၊ ၎င်းကို သင်၏ Simplicity Studio IDE တွင် ဖွင့်ထားသင့်သည်။
ဤကဏ္ဍတွင် ကျွန်ုပ်တို့သည် ဘုတ်အဖွဲ့ကို ကြည့်ပါမည်။ files နှင့် LEDs များကိုမည်ကဲ့သို့စတင်လုပ်ဆောင်သည်ကိုနားလည်ပါ။
- ပင်မကနေ file “SwitchOnOff.c”၊ “ApplicationInit()” ကိုရှာပြီး Board_Init() သို့ ခေါ်ဆိုမှုကို သတိပြုပါ။
- သင်၏သင်တန်းဆရာကို Board_Init() တွင်ထားကာ ကြေငြာချက်ကိုဖွင့်ရန် F3 ကိုနှိပ်ပါ။
3. Board_Init()တွင် BOARD_LED_COUNT တွင်ပါရှိသော LED များကို Board_Con-figLed() ဟုခေါ်ပြီး စတင်လုပ်ဆောင်ပုံကို သတိပြုပါ။
4. သင်၏သင်တန်းဆရာကို BOARD_LED_COUNT တွင် ထားကာ ကြေငြာချက်ကိုဖွင့်ရန် F3 ကိုနှိပ်ပါ။
5. led_id_t တွင် သတ်မှတ်ထားသော LED များသည် အောက်ပါအတိုင်းဖြစ်သည်-
6. board.c သို့ ပြန်သွားရန် file.
7. သင်၏သင်တန်းဆရာကို Board_ConfigLed() တွင်ထားကာ ကြေငြာချက်ကိုဖွင့်ရန် F3 ကိုနှိပ်ပါ။
8. led_id_t တွင် သတ်မှတ်ထားသော LED အားလုံးကို Board_ConfigLed() တွင် အထွက်အဖြစ် သတ်မှတ်ပြီး သတိပြုပါ။
ဆိုလိုသည်မှာ ဖွံ့ဖြိုးတိုးတက်မှုဘုတ်အဖွဲ့ရှိ LED များအားလုံးသည် အထွက်များအဖြစ် သတ်မှတ်ပြီး အသုံးပြုရန် အသင့်ဖြစ်နေပြီဖြစ်သည်။
3. Z-Wave S သို့ ပြုပြင်ပြောင်းလဲမှု ပြုလုပ်ပါ။ample လျှောက်လွှာ
ဤလေ့ကျင့်ခန်းတွင် ကျွန်ုပ်တို့သည် Switch On/Off တွင် LED အတွက်အသုံးပြုသည့် GPIO များကို ပြုပြင်မွမ်းမံမည်ဖြစ်သည်။ample လျှောက်လွှာ။ ယခင်အပိုင်းတွင် ဖွံ့ဖြိုးတိုးတက်မှုဘုတ်အဖွဲ့ရှိ LED အားလုံးကို အထွက်အထွက်အဖြစ် စတင်လုပ်ဆောင်ပြီး အသုံးပြုရန် အဆင်သင့်ဖြစ်ပုံကို လေ့လာခဲ့သည်။
3.1 RGB LED ကိုသုံးပါ။
ခလုတ်ဘုတ်ပေါ်ရှိ LED အစား Z-Wave ဖွံ့ဖြိုးတိုးတက်မှု မော်ဂျူးရှိ onboard RGB LED ကို အသုံးပြုပါမည်။
1. SwitchOnOff.c ပင်မအပလီကေးရှင်းတွင် ပုံ 6 တွင်မြင်ရသည့်အတိုင်း RefreshMMI လုပ်ဆောင်ချက်ကို ရှာပါ file.
ပုံ 6- ပြုပြင်မွမ်းမံမှုမရှိဘဲ ပြန်လည်စတင်ပါ။
2. ကျွန်ုပ်တို့သည် “Board_SetLed” လုပ်ဆောင်ချက်ကို အသုံးပြုနေသော်လည်း GPIO ကို ပြောင်းလဲပါ။
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. ပုံ 3 တွင်ပြထားသည့်အတိုင်း OFF အခြေအနေနှင့် ON အခြေအနေတွင် “Board_SetLed” 7 ကြိမ်ခေါ်ဆိုပါ။
ကျွန်ုပ်တို့၏ ပြုပြင်မွမ်းမံမှုအသစ်ကို ယခုအကောင်အထည် ဖော်ပြီးဖြစ်၍ သင်စုစည်းရန် အသင့်ဖြစ်နေပါပြီ။
စက်ပစ္စည်းတစ်ခုအား ပရိုဂရမ်ပြုလုပ်ရန် အဆင့်များကို လေ့ကျင့်ခန်း “3A Compile Switch OnOff and enable debug” တွင် အကျုံးဝင်ပြီး ဤနေရာတွင် အတိုချုံး ထပ်ခါတလဲလဲ ဖော်ပြထားပါသည်။
- "Build" ကိုနှိပ်ပါ
ပရောဂျက်စတင်တည်ဆောက်ရန်ခလုတ်။
- တည်ဆောက်မှုပြီးသောအခါ၊ “Binaries” ဖိုင်တွဲကို ချဲ့ပြီး *.hex ပေါ်တွင် right click နှိပ်ပါ။ file “Flash to Device..” ကိုရွေးချယ်ရန်။
- ပေါ်လာသောဝင်းဒိုးတွင် ချိတ်ဆက်ထားသော ဟာ့ဒ်ဝဲကို ရွေးပါ။ “Flash Programmer” သည် ယခုအခါ လိုအပ်သော အချက်အလက်အားလုံးကို ကြိုတင်ဖြည့်ထားပြီး၊ သင်သည် “ပရိုဂရမ်” ကို နှိပ်ရန် အဆင်သင့်ဖြစ်ပါပြီ။
- “Program” ကိုနှိပ်ပါ။
ပရိုဂရမ်ရေးဆွဲခြင်း ပြီးသွားချိန်တွင် ခဏအကြာတွင်၊ သင်၏ ပြုပြင်ထားသော ခလုတ်ဖွင့်/ပိတ် ဗားရှင်းဖြင့် သင်၏ စက်ပစ္စည်း အဆုံးကို ယခု မီးလင်းသွားပါပြီ။
3.1.1 လုပ်ဆောင်နိုင်စွမ်းကို စမ်းသပ်ပါ။
ယခင်လေ့ကျင့်ခန်းများတွင် ကျွန်ုပ်တို့သည် SmartStart ကို အသုံးပြု၍ လုံခြုံသော Z-Wave ကွန်ရက်တွင် စက်ပစ္စည်းကို ထည့်သွင်းထားပြီးဖြစ်သည်။ ညွှန်ကြားချက်များအတွက် “SmartStart ကိုအသုံးပြု၍ ပါဝင်ပါ” လေ့ကျင့်ခန်းကို ကိုးကားပါ။
အတွင်းပိုင်း အရိပ်အမြွက် file reprogramming ကြားတွင် system ကို ဖျက်မထားပါ။ ၎င်းသည် node တစ်ခုကို ကွန်ရက်တစ်ခုတွင် ဆက်ရှိနေစေပြီး ၎င်းကို ပြန်လည်ပရိုဂရမ်လုပ်သောအခါ တူညီသောကွန်ရက်ကီးများကို သိမ်းဆည်းထားနိုင်စေပါသည်။
ဥပမာ- module လည်ပတ်သည့် ကြိမ်နှုန်း သို့မဟုတ် DSK ကို ပြောင်းလဲရန် လိုအပ်ပါက၊ သင်သည် ကြိမ်နှုန်းအသစ်ကို internal NVM သို့ မရေးမီ ချစ်ပ်ကို "ဖျက်ရန်" လိုအပ်ပါသည်။
ထို့ကြောင့်၊ သင့်စက်ပစ္စည်းသည် ကွန်ရက်တွင် ပါဝင်ပြီးဖြစ်သည်။
RGB LED ကို ဖွင့်နိုင်ပြီး ပိတ်နိုင်သည်ကို အတည်ပြုခြင်းဖြင့် လုပ်ဆောင်နိုင်စွမ်းကို စမ်းသပ်ပါ။
- PC Controller ရှိ "Basic Set ON" နှင့် "Basic Set OFF" ကိုအသုံးပြု၍ လုပ်ဆောင်နိုင်စွမ်းကို စမ်းသပ်ပါ။ RGB LED သည် ON နှင့် OFF ဖြစ်သင့်သည်။
- ဟာ့ဒ်ဝဲပေါ်တွင် BTN0 ကို အသုံးပြု၍ RGB LED ကိုလည်း ဖွင့်နိုင်ပြီး ပိတ်နိုင်သည်။
ပြုပြင်မွမ်းမံမှုသည် မျှော်လင့်ထားသည့်အတိုင်း လုပ်ဆောင်နေကြောင်း ကျွန်ုပ်တို့ အတည်ပြုခဲ့ပြီး S တွင်အသုံးပြုထားသော GPIO ကို အောင်မြင်စွာပြောင်းလဲနိုင်ခဲ့သည်။ample လျှောက်လွှာ
3.2 RGB အရောင် အစိတ်အပိုင်းကို ပြောင်းပါ။
ဤကဏ္ဍတွင်၊ ကျွန်ုပ်တို့သည် RGB LED ကိုမွမ်းမံပြီး အရောင်အစိတ်အပိုင်းများကို ရောနှောရန် ကြိုးစားပါမည်။
“RGB အရောင်မော်ဒယ်ရှိ အရောင်တစ်ခုစီတွင် အနီ၊ အစိမ်းနှင့် အပြာမည်မျှပါဝင်သည်ကို ညွှန်ပြခြင်းဖြင့် ဖော်ပြသည်။ အရောင်ကို RGB triplet (r,g,b), သုညမှ သတ်မှတ်ထားသော အမြင့်ဆုံးတန်ဖိုးအထိ ကွဲပြားနိုင်သည့် အစိတ်အပိုင်းတစ်ခုစီကို RGB triplet အဖြစ် ဖော်ပြသည်။ Compo-nent အားလုံး သုညမှာ ရလဒ်က အနက်ရောင်၊ အားလုံးက အမြင့်ဆုံးဖြစ်နေရင် ရလဒ်က အတောက်ပဆုံး ကိုယ်စားပြုတဲ့ အဖြူရောင်ပါ။”
Wikipedia မှ စ၍ RGB အရောင်မော်ဒယ်။
ယခင်အပိုင်းရှိ အရောင်အစိတ်အပိုင်းအားလုံးကို ကျွန်ုပ်တို့ ဖွင့်ထားသောကြောင့် RGB LED သည် အဖြူရောင်ဖြစ်သည်။ အစိတ်အပိုင်းတစ်ခုချင်းစီကို အဖွင့်အပိတ်လုပ်ခြင်းဖြင့် LED ကို ပြောင်းလဲနိုင်ပါသည်။ ထို့အပြင်၊ အရောင်အစိတ်အပိုင်းတစ်ခုစီ၏ပြင်းထန်မှုကိုချိန်ညှိခြင်းဖြင့်၊ ကျွန်ုပ်တို့ကြားရှိအရောင်အားလုံးကိုပြုလုပ်နိုင်သည်။ ယင်းအတွက်၊ ကျွန်ုပ်တို့သည် GPIO များကို ထိန်းချုပ်ရန် PWM ကို အသုံးပြုပါမည်။
- ApplicationTask() တွင် PwmTimer ကို စတင်ပြီး ပုံ 9 တွင် ပြထားသည့်အတိုင်း RGB pins များကို PWM သို့ စနစ်ထည့်သွင်းပါ။
- RefreshMMI() တွင် အရောင်အစိတ်အပိုင်းတိုင်းအတွက် ကျပန်းနံပါတ်တစ်ခုကို အသုံးပြုပါမည်။ LED ကိုဖွင့်တိုင်း တန်ဖိုးအသစ်တစ်ခုရရန် rand() ကိုသုံးပါ။
- အသစ်ထုတ်လုပ်လိုက်သော တန်ဖိုးကို အမှတ်စဉ် အမှားရှာအပေါက်သို့ ရေးရန် DPRINTF() ကို အသုံးပြုပါ။
- ကျပန်းတန်ဖိုးကိုအသုံးပြုရန်အတွက် Board_SetLed() ကို Board_RgbLedSetPwm() ဖြင့် အစားထိုးပါ။
- မွမ်းမံထားသော RefreshMMI() အတွက် ပုံ 10 ကို ကိုးကားပါ။
ပုံ 10- RefreshMMI ကို PWM ဖြင့် အပ်ဒိတ်လုပ်ထားသည်။
ကျွန်ုပ်တို့၏ ပြုပြင်မွမ်းမံမှုအသစ်ကို ယခုအကောင်အထည် ဖော်ပြီးဖြစ်၍ သင်စုစည်းရန် အသင့်ဖြစ်နေပါပြီ။
- "Build" ကိုနှိပ်ပါ
ပရောဂျက်စတင်တည်ဆောက်ရန်ခလုတ်။
- တည်ဆောက်မှုပြီးသောအခါ၊ “Binaries” ဖိုင်တွဲကို ချဲ့ပြီး *.hex ပေါ်တွင် right click နှိပ်ပါ။ file “Flash to Device..” ကိုရွေးချယ်ရန်။
- ပေါ်လာသောဝင်းဒိုးတွင် ချိတ်ဆက်ထားသော ဟာ့ဒ်ဝဲကို ရွေးပါ။ “Flash Programmer” သည် ယခုအခါ လိုအပ်သော အချက်အလက်အားလုံးကို ကြိုတင်ဖြည့်ထားပြီး၊ သင်သည် “ပရိုဂရမ်” ကို နှိပ်ရန် အဆင်သင့်ဖြစ်ပါပြီ။
- “Program” ကိုနှိပ်ပါ။
ပရိုဂရမ်ရေးဆွဲခြင်း ပြီးသွားချိန်တွင် ခဏအကြာတွင်၊ သင်၏ ပြုပြင်ထားသော ခလုတ်ဖွင့်/ပိတ် ဗားရှင်းဖြင့် သင်၏ စက်ပစ္စည်း အဆုံးကို ယခု မီးလင်းသွားပါပြီ။
3.2.1 လုပ်ဆောင်နိုင်စွမ်းကို စမ်းသပ်ပါ။
RGB LED ၏အရောင်ကိုပြောင်းလဲနိုင်သည်ကိုအတည်ပြုခြင်းဖြင့်လုပ်ဆောင်နိုင်စွမ်းကိုစမ်းသပ်ပါ။
- PC Controller ရှိ "Basic Set ON" ကို အသုံးပြု၍ လုပ်ဆောင်နိုင်စွမ်းကို စမ်းသပ်ပါ။
- အရောင်ပြောင်းလဲမှုကိုကြည့်ရန် "အခြေခံသတ်မှတ်မှုဖွင့်ပါ" ကိုနှိပ်ပါ။
ပြုပြင်မွမ်းမံမှုသည် မျှော်လင့်ထားသည့်အတိုင်း လုပ်ဆောင်နေကြောင်း ယခု ကျွန်ုပ်တို့ အတည်ပြုပြီး GPIO ကို PWM အသုံးပြုရန် အောင်မြင်စွာ ပြောင်းလဲလိုက်ပါပြီ။
၂.၅ ဆွေးနွေးခြင်း
ဤလေ့ကျင့်ခန်းတွင် ကျွန်ုပ်တို့သည် ရိုးရှင်းသော LED ကို ထိန်းချုပ်ခြင်းမှ ရောင်စုံ LED ကို ထိန်းချုပ်ခြင်းသို့ ခလုတ်အဖွင့်/အပိတ်ကို ပြောင်းလဲထားသည်။ PWM တန်ဖိုးများပေါ်မူတည်၍ မည်သည့်အရောင်နှင့် ပြင်းထန်မှုသို့ ပြောင်းလဲနိုင်မည်နည်း။
- ဤအပလီကေးရှင်းအတွက် "Binary Switch" ကို စက်ပစ္စည်းအမျိုးအစားအဖြစ် အသုံးပြုသင့်ပါသလား။
- ရောင်စုံ LED အတွက် ဘယ် command class တွေက ပိုသင့်တော်လဲ။
မေးခွန်းဖြေဆိုရန်အတွက် Z-Wave သတ်မှတ်ချက်ကို ကိုးကားသင့်သည်-
- Z-Wave Plus v2 စက်ပစ္စည်း အမျိုးအစား သတ်မှတ်ချက်
- Z-Wave Application Command Class Specification
ဤသည်မှာ Z-Wave S ၏ GPIO များကို မွမ်းမံပြင်ဆင်ခြင်းနှင့် ပြောင်းလဲခြင်းဆိုင်ရာ သင်ခန်းစာကို နိဂုံးချုပ်သည်။ample လျှောက်လွှာ။
ဤလက်စွဲစာအုပ်အကြောင်း ပိုမိုဖတ်ရှုပြီး PDF ကို ဒေါင်းလုဒ်လုပ်ပါ-
စာရွက်စာတမ်းများ / အရင်းအမြစ်များ
![]() |
SILICON LABS ဓာတ်ခွဲခန်း 3B - ခလုတ်ကို အဖွင့်/အပိတ် ပြင်ဆင်ပါ။ [pdf] အသုံးပြုသူလမ်းညွှန် Lab 3B၊ Modify Switch၊ On၊ Off၊ Z-Wave၊ SDK |