SILICON LABS Lab 3B – ແກ້ໄຂການເປີດ/ປິດ ຄູ່ມືຜູ້ໃຊ້
ການອອກກໍາລັງກາຍແບບມືນີ້ຈະເປັນການສະແດງໃຫ້ເຫັນວິທີການດັດແປງໃນຫນຶ່ງຂອງ sample ຄໍາຮ້ອງສະຫມັກທີ່ສົ່ງເປັນສ່ວນຫນຶ່ງຂອງ Z-Wave SDK.
ການອອກກໍາລັງກາຍນີ້ແມ່ນສ່ວນຫນຶ່ງຂອງຊຸດ "Z-Wave 1-Day Course".
- ລວມມີການໃຊ້ SmartStart
- ຖອດລະຫັດ Z-Wave RF Frames ໂດຍໃຊ້ Zniffer
- 3A: ລວບລວມປຸ່ມເປີດ/ປິດ ແລະເປີດໃຊ້ດີບັກ
3B: ແກ້ໄຂປຸ່ມເປີດ/ປິດ - ເຂົ້າໃຈອຸປະກອນ FLiRS
ຄຸນສົມບັດຫຼັກ
- ປ່ຽນ GPIO
- ປະຕິບັດ PWM
- ໃຊ້ LED RGB ເທິງກະດານ
1. ບົດແນະນຳ
ບົດຝຶກຫັດນີ້ແມ່ນສ້າງຢູ່ເທິງສຸດຂອງບົດຝຶກຫັດທີ່ຜ່ານມາ “3A: Compile Switch On/Off and enable debug”, ເຊິ່ງສະແດງໃຫ້ເຫັນວິທີການລວບລວມແລະໃຊ້ Switch On/Off s.ampຄໍາຮ້ອງສະຫມັກ le.
ໃນບົດຝຶກຫັດນີ້, ພວກເຮົາຈະເຮັດການດັດແກ້ເພື່ອ s ໄດ້ampຄໍາຮ້ອງສະຫມັກ, ໂດຍການປ່ຽນແປງ GPIO ທີ່ຄວບຄຸມ LED. ນອກຈາກນັ້ນ, ພວກເຮົາຈະໃຊ້ RGB LED ແລະຮຽນຮູ້ວິທີການໃຊ້ PWM ເພື່ອປ່ຽນສີ.
1.1 ຄວາມຕ້ອງການດ້ານຮາດແວ
- 1 ຄະນະພັດທະນາຫຼັກ WSTK
- 1 ຄະນະພັດທະນາວິທະຍຸ Z-Wave: ZGM130S SiP Module
- 1 UZB Controller
- 1 USB Zniffer
1.2 ຄວາມຕ້ອງການຊອບແວ
- Simplicity Studio v4
- Z-Wave 7 SDK
- Z-Wave PC Controller
- Z-Wave Zniffer
ຮູບທີ 1: ຄະນະກໍາມະການພັດທະນາຕົ້ນຕໍທີ່ມີໂມດູນ Z-Wave SiP
1.3 ເງື່ອນໄຂເບື້ອງຕົ້ນ
ການອອກກໍາລັງກາຍ Hands-On ທີ່ຜ່ານມາໄດ້ກວມເອົາວິທີການນໍາໃຊ້ PC Controller ແລະຄໍາຮ້ອງສະຫມັກ Zniffer ເພື່ອສ້າງເຄືອຂ່າຍ Z-Wave ແລະການຈັບພາບການສື່ສານ RF ສໍາລັບການພັດທະນາ. ອອກກໍາລັງກາຍນີ້ສົມມຸດວ່າທ່ານຄຸ້ນເຄີຍກັບເຄື່ອງມືເຫຼົ່ານີ້.
ການອອກກໍາລັງກາຍແບບ Hands-On ທີ່ຜ່ານມາຍັງໄດ້ກວມເອົາວິທີການນໍາໃຊ້ sample ແອັບພລິເຄຊັນທີ່ສົ່ງກັບ Z-Wave SDK. ອອກກໍາລັງກາຍນີ້ສົມມຸດວ່າທ່ານຄຸ້ນເຄີຍກັບການນໍາໃຊ້ແລະການລວບລວມຫນຶ່ງໃນ sampຄໍາຮ້ອງສະຫມັກ le.
ກອບ Z-Wave ມາພ້ອມກັບຊັ້ນ abstraction ຂອງຮາດແວ (HAL) ທີ່ກໍານົດໂດຍ board.h ແລະ board.c, ສະຫນອງຄວາມເປັນໄປໄດ້ຂອງການຈັດຕັ້ງປະຕິບັດສໍາລັບແຕ່ລະແພລະຕະຟອມຮາດແວຂອງທ່ານ.
Hardware Abstraction Layer (HAL) ແມ່ນລະຫັດໂປຣແກມລະຫວ່າງຮາດແວຂອງລະບົບ ແລະຊອຟແວຂອງມັນທີ່ສະໜອງການໂຕ້ຕອບທີ່ສອດຄ່ອງກັນສໍາລັບແອັບພລິເຄຊັນທີ່ສາມາດແລ່ນໃນຫຼາຍແພລດຟອມຮາດແວທີ່ແຕກຕ່າງກັນ. ເອົາ advantage ຂອງຄວາມສາມາດນີ້, ແອັບພລິເຄຊັນຄວນເຂົ້າເຖິງຮາດແວໂດຍຜ່ານ API ທີ່ສະຫນອງໂດຍ HAL, ແທນທີ່ຈະໂດຍກົງ. ຫຼັງຈາກນັ້ນ, ເມື່ອທ່ານຍ້າຍໄປຮາດແວໃຫມ່, ທ່ານພຽງແຕ່ຕ້ອງການອັບເດດ HAL.
2.1 ເປີດ Sampໂຄງການ le
ສໍາລັບການອອກກໍາລັງກາຍນີ້, ທ່ານຈໍາເປັນຕ້ອງເປີດ Switch On / Off sampຄໍາຮ້ອງສະຫມັກ le. ຖ້າທ່ານສໍາເລັດການອອກກໍາລັງກາຍ "3A Compile Switch OnOff ແລະເປີດໃຊ້ການດີບັກ", ມັນຄວນຈະຖືກເປີດຢູ່ໃນ Simplicity Studio IDE ຂອງທ່ານແລ້ວ.
ໃນພາກນີ້, ພວກເຮົາຈະເບິ່ງກະດານ files ແລະເຂົ້າໃຈວິທີການເລີ່ມຕົ້ນຂອງ LEDs.
- ຈາກຕົ້ນຕໍ file “SwitchOnOff.c”, ຊອກຫາ “ApplicationInit()” ແລະສັງເກດເຫັນການໂທຫາ Board_Init().
- ວາງຫຼັກສູດຂອງທ່ານໃສ່ Board_Init() ແລະກົດປຸ່ມ F3 ເພື່ອເປີດການປະກາດ.
3. ໃນ Board_Init()ສັງເກດເຫັນວ່າ LEDs ທີ່ມີຢູ່ໃນ BOARD_LED_COUNT ຈະຖືກເລີ່ມຕົ້ນໂດຍເອີ້ນວ່າ Board_Con-figLed()
4. ວາງຄູສອນຂອງທ່ານໃສ່ BOARD_LED_COUNT ແລະກົດປຸ່ມ F3 ເພື່ອເປີດການປະກາດ.
5. LEDs ທີ່ກໍານົດໄວ້ໃນ led_id_t ມີດັ່ງຕໍ່ໄປນີ້:
6. ກັບຄືນໄປຫາ board.c file.
7. ວາງຄູສອນຂອງເຈົ້າໃສ່ Board_ConfigLed() ແລະກົດປຸ່ມ F3 ເພື່ອເປີດການປະກາດ.
8. ສັງເກດເຫັນທຸກ LEDs ທີ່ກໍານົດໄວ້ໃນ led_id_t ໄດ້ຖືກຕັ້ງຄ່າແລ້ວໃນ Board_ConfigLed() ເປັນຜົນຜະລິດ.
ນີ້ຫມາຍຄວາມວ່າແນວໃດ, LEDs ທັງຫມົດໃນຄະນະກໍາມະການພັດທະນາແມ່ນຖືກກໍານົດໄວ້ແລ້ວເປັນຜົນຜະລິດແລະພ້ອມທີ່ຈະໃຊ້.
3. ປັບປ່ຽນເປັນ Z-Wave Sampຄໍາຮ້ອງສະຫມັກ
ໃນບົດຝຶກຫັດນີ້ພວກເຮົາຈະປັບປຸງແກ້ໄຂ GPIOs ທີ່ໃຊ້ສໍາລັບ LED ໃນ Switch On / Off sampຄໍາຮ້ອງສະຫມັກ le. ໃນພາກກ່ອນ, ພວກເຮົາໄດ້ຮຽນຮູ້ວິທີການ LEDs ທັງຫມົດໃນຄະນະກໍາມະການພັດທະນາໄດ້ຖືກເລີ່ມຕົ້ນແລ້ວເປັນຜົນຜະລິດແລະພ້ອມທີ່ຈະໃຊ້.
3.1 ໃຊ້ RGB LED
ພວກເຮົາຈະໃຊ້ onboard RGB LED ໃນໂມດູນການພັດທະນາ Z-Wave, ແທນທີ່ຈະເປັນ LED ໃນກະດານປຸ່ມ.
1. ຊອກຫາຟັງຊັນ RefreshMMI, ດັ່ງທີ່ເຫັນໃນຮູບ 6, ໃນແອັບພລິເຄຊັນຫຼັກ SwitchOnOff.c file.
ຮູບທີ 6: RefreshMMI ໂດຍບໍ່ມີການດັດແປງໃດໆ
2. ພວກເຮົາຈະໃຊ້ຟັງຊັນ “Board_SetLed” ແຕ່ປ່ຽນ GPIO ເປັນ
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. ໂທຫາ “Board_SetLed” 3 ເທື່ອທັງໃນສະຖານະ OFF ແລະໃນສະຖານະ ON, ດັ່ງທີ່ສະແດງໃນຮູບ 7.
ການດັດແກ້ໃຫມ່ຂອງພວກເຮົາໄດ້ຖືກປະຕິບັດໃນປັດຈຸບັນ, ແລະທ່ານພ້ອມທີ່ຈະລວບລວມ.
ຂັ້ນຕອນໃນການຂຽນໂປຣແກຣມອຸປະກອນແມ່ນກວມເອົາໃນບົດຝຶກຫັດ "3A Compile Switch OnOff ແລະເປີດໃຊ້ການດີບັກ", ແລະເຮັດຊ້ໍາອີກຄັ້ງນີ້:
- ໃຫ້ຄລິກໃສ່ "ສ້າງ"
ປຸ່ມເພື່ອເລີ່ມຕົ້ນການກໍ່ສ້າງໂຄງການ.
- ເມື່ອການສ້າງສຳເລັດ, ຂະຫຍາຍໂຟນເດີ “Binaries” ແລະຄລິກຂວາໃສ່ປຸ່ມ *.hex file ເພື່ອເລືອກ “Flash to Device..”.
- ເລືອກຮາດແວທີ່ເຊື່ອມຕໍ່ຢູ່ໃນປ່ອງຢ້ຽມປັອບອັບ. ໃນປັດຈຸບັນ "Flash Programmer" ໄດ້ຖືກຕື່ມຂໍ້ມູນທີ່ຈໍາເປັນທັງຫມົດ, ແລະທ່ານພ້ອມທີ່ຈະຄລິກໃສ່ "ໂຄງການ".
- ກົດ "ໂຄງການ".
ຫຼັງຈາກທີ່ບໍ່ດົນໃນຂະນະທີ່ການດໍາເນີນໂຄງການສໍາເລັດຮູບ, ແລະອຸປະກອນທ້າຍຂອງທ່ານໃນປັດຈຸບັນກະພິບກັບສະຫຼັບການປັບປຸງແກ້ໄຂ / ປິດ.
3.1.1 ທົດສອບການທໍາງານ
ໃນການອອກກໍາລັງກາຍທີ່ຜ່ານມາພວກເຮົາໄດ້ລວມເອົາອຸປະກອນເຂົ້າໄປໃນເຄືອຂ່າຍ Z-Wave ທີ່ປອດໄພໂດຍໃຊ້ SmartStart. ອ້າງອີງການອອກກໍາລັງກາຍ “ລວມເອົາການໃຊ້ SmartStart” ສໍາລັບຄໍາແນະນໍາ.
ຄໍາແນະນໍາພາຍໃນ file ລະບົບບໍ່ໄດ້ຖືກລຶບລ້າງລະຫວ່າງ reprogramming. ນີ້ອະນຸຍາດໃຫ້ node ຢູ່ໃນເຄືອຂ່າຍແລະຮັກສາລະຫັດເຄືອຂ່າຍດຽວກັນໃນເວລາທີ່ທ່ານ reprogram ມັນ.
ຖ້າທ່ານຕ້ອງການປ່ຽນແປງເຊັ່ນ: ຄວາມຖີ່ທີ່ໂມດູນເຮັດວຽກຫຼື DSK, ທ່ານຈໍາເປັນຕ້ອງ "Erase" ຊິບກ່ອນທີ່ຄວາມຖີ່ໃຫມ່ຈະຖືກຂຽນໃສ່ NVM ພາຍໃນ.
ດັ່ງນັ້ນ, ອຸປະກອນຂອງທ່ານໄດ້ຖືກລວມເຂົ້າໃນເຄືອຂ່າຍແລ້ວ.
ທົດສອບການເຮັດວຽກໂດຍການຢັ້ງຢືນວ່າທ່ານສາມາດເປີດແລະປິດ RGB LED ໄດ້.
- ທົດສອບການເຮັດວຽກໂດຍໃຊ້ "Basic Set ON" ແລະ "Basic Set OFF" ໃນ PC Controller. RGB LED ຄວນເປີດແລະປິດ.
- LED RGB ຍັງສາມາດເປີດແລະປິດໄດ້ໂດຍໃຊ້ BTN0 ໃນຮາດແວ.
ດຽວນີ້ພວກເຮົາໄດ້ກວດສອບແລ້ວວ່າການດັດແກ້ແມ່ນເຮັດວຽກຕາມທີ່ຄາດໄວ້ ແລະໄດ້ປ່ຽນ GPIO ທີ່ໃຊ້ໃນ Sampຄໍາຮ້ອງສະຫມັກ
3.2 ປ່ຽນອົງປະກອບສີ RGB
ໃນພາກນີ້, ພວກເຮົາຈະດັດແປງ RGB LED ແລະພະຍາຍາມປະສົມອົງປະກອບສີ.
"ສີໃນແບບສີ RGB ແມ່ນອະທິບາຍໂດຍການຊີ້ບອກວ່າແຕ່ລະສີແດງ, ສີຂຽວ, ແລະສີຟ້າແມ່ນລວມຢູ່ໃນຈໍານວນເທົ່າໃດ. ສີສະແດງອອກເປັນ RGB triplet (r,g,b), ແຕ່ລະອົງປະກອບຂອງທີ່ສາມາດແຕກຕ່າງກັນຈາກສູນເຖິງຄ່າສູງສຸດທີ່ກໍານົດໄວ້. ຖ້າ compo-nent ທັງຫມົດຢູ່ທີ່ສູນ, ຜົນໄດ້ຮັບແມ່ນສີດໍາ; ຖ້າທັງຫມົດແມ່ນສູງສຸດ, ຜົນໄດ້ຮັບແມ່ນສີຂາວທີ່ສົດໃສທີ່ສຸດ."
ຈາກ Wikipedia ສຸດ ຮູບແບບສີ RGB.
ເນື່ອງຈາກພວກເຮົາເປີດໃຊ້ອົງປະກອບສີທັງໝົດໃນພາກກ່ອນໜ້າ, RGB LED ຈະເປັນສີຂາວເມື່ອເປີດ. ໂດຍການເປີດແລະປິດຂອງອົງປະກອບສ່ວນບຸກຄົນ, ພວກເຮົາສາມາດປ່ຽນ LED ໄດ້. ນອກຈາກນັ້ນ, ໂດຍການປັບຄວາມເຂັ້ມຂອງແຕ່ລະອົງປະກອບສີ, ພວກເຮົາສາມາດເຮັດໃຫ້ສີທັງຫມົດຢູ່ໃນລະຫວ່າງ. ສໍາລັບນັ້ນ, ພວກເຮົາຈະໃຊ້ PWM ເພື່ອຄວບຄຸມ GPIOs.
- ໃນ ApplicationTask() ເລີ່ມຕົ້ນ PwmTimer ແລະຕິດຕັ້ງ pins RGB ກັບ PWM, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 9.
- ໃນ RefreshMMI(), ພວກເຮົາຈະໃຊ້ຕົວເລກສຸ່ມສໍາລັບທຸກໆອົງປະກອບສີ. ໃຊ້ rand() ເພື່ອໃຫ້ໄດ້ຮັບຄ່າໃຫມ່ທຸກຄັ້ງທີ່ LED ເປີດ.
- ໃຊ້ DPRINTF() ເພື່ອຂຽນຄ່າທີ່ສ້າງຂຶ້ນໃໝ່ໃສ່ພອດດີບັກ serial.
- ແທນທີ່ Board_SetLed() ດ້ວຍ Board_RgbLedSetPwm(), ເພື່ອໃຊ້ຄ່າສຸ່ມ.
- ເບິ່ງຮູບ 10 ສໍາລັບການປັບປຸງໃຫມ່ RefreshMMI().
ຮູບທີ 10: RefreshMMI ປັບປຸງດ້ວຍ PWM
ການດັດແກ້ໃຫມ່ຂອງພວກເຮົາໄດ້ຖືກປະຕິບັດໃນປັດຈຸບັນ, ແລະທ່ານພ້ອມທີ່ຈະລວບລວມ.
- ໃຫ້ຄລິກໃສ່ "ສ້າງ"
ປຸ່ມເພື່ອເລີ່ມຕົ້ນການກໍ່ສ້າງໂຄງການ.
- ເມື່ອການສ້າງສຳເລັດ, ຂະຫຍາຍໂຟນເດີ “Binaries” ແລະຄລິກຂວາໃສ່ປຸ່ມ *.hex file ເພື່ອເລືອກ “Flash to Device..”.
- ເລືອກຮາດແວທີ່ເຊື່ອມຕໍ່ຢູ່ໃນປ່ອງຢ້ຽມປັອບອັບ. ໃນປັດຈຸບັນ "Flash Programmer" ໄດ້ຖືກຕື່ມຂໍ້ມູນທີ່ຈໍາເປັນທັງຫມົດ, ແລະທ່ານພ້ອມທີ່ຈະຄລິກໃສ່ "ໂຄງການ".
- ກົດ "ໂຄງການ".
ຫຼັງຈາກທີ່ບໍ່ດົນໃນຂະນະທີ່ການດໍາເນີນໂຄງການສໍາເລັດຮູບ, ແລະອຸປະກອນທ້າຍຂອງທ່ານໃນປັດຈຸບັນກະພິບກັບສະຫຼັບການປັບປຸງແກ້ໄຂ / ປິດ.
3.2.1 ທົດສອບການທໍາງານ
ທົດສອບການເຮັດວຽກໂດຍການຢັ້ງຢືນວ່າທ່ານສາມາດປ່ຽນສີຂອງ RGB LED ໄດ້.
- ທົດສອບການທໍາງານໂດຍໃຊ້ "Basic Set ON" ໃນ PC Controller.
- ໃຫ້ຄລິກໃສ່ "ຕັ້ງພື້ນຖານ" ເພື່ອເບິ່ງການປ່ຽນແປງຂອງສີ.
ຕອນນີ້ພວກເຮົາໄດ້ກວດສອບແລ້ວວ່າການດັດແກ້ແມ່ນເຮັດວຽກຕາມທີ່ຄາດໄວ້ ແລະໄດ້ປ່ຽນ GPIO ເພື່ອໃຊ້ PWM ສຳເລັດແລ້ວ.
4 ການສົນທະນາ
ໃນບົດຝຶກຫັດນີ້, ພວກເຮົາໄດ້ດັດແປງ Switch On/Off ຈາກການຄວບຄຸມ LED ແບບງ່າຍດາຍໄປສູ່ການຄວບຄຸມ LED ຫຼາຍສີ. ອີງຕາມຄ່າ PWM, ດຽວນີ້ພວກເຮົາສາມາດປ່ຽນເປັນສີໃດ ໜຶ່ງ ແລະຄວາມເຂັ້ມຂົ້ນ.
- ຄວນໃຊ້ “Binary Switch” ເປັນປະເພດອຸປະກອນສຳລັບແອັບພລິເຄຊັນນີ້ບໍ?
- ຫ້ອງຮຽນຄໍາສັ່ງໃດທີ່ເຫມາະສົມກັບ LED ຫຼາຍສີ?
ເພື່ອຕອບຄໍາຖາມ, ທ່ານຄວນອ້າງອີງເຖິງຂໍ້ກໍານົດ Z-Wave:
- Z-Wave Plus v2 ປະເພດອຸປະກອນສະເພາະ
- Z-Wave Application Command Class Specification
ນີ້ສະຫຼຸບການສອນໃນວິທີການດັດແປງແລະປ່ຽນ GPIOs ຂອງ Z-Wave Sampຄໍາຮ້ອງສະຫມັກ.
ອ່ານເພີ່ມເຕີມກ່ຽວກັບຄູ່ມືນີ້ ແລະດາວໂຫຼດ PDF:
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
SILICON LABS Lab 3B - ແກ້ໄຂການເປີດ/ປິດສະວິດ [pdf] ຄູ່ມືຜູ້ໃຊ້ Lab 3B, Modify Switch, On, Off, Z-Wave, SDK |