ໂລໂກ້ຊິລິຄອນ

SILICON LABS Lab 3B – ແກ້ໄຂການເປີດ/ປິດ ຄູ່ມືຜູ້ໃຊ້

SILICON LABS Lab 3B - ແກ້ໄຂການເປີດ/ປິດສະວິດ

ການອອກກໍາລັງກາຍແບບມືນີ້ຈະເປັນການສະແດງໃຫ້ເຫັນວິທີການດັດແປງໃນຫນຶ່ງຂອງ sample ຄໍາຮ້ອງສະຫມັກທີ່ສົ່ງເປັນສ່ວນຫນຶ່ງຂອງ Z-Wave SDK.

ການອອກກໍາລັງກາຍນີ້ແມ່ນສ່ວນຫນຶ່ງຂອງຊຸດ "Z-Wave 1-Day Course".

  1. ລວມມີການໃຊ້ SmartStart
  2. ຖອດລະຫັດ Z-Wave RF Frames ໂດຍໃຊ້ Zniffer
  3. 3A: ລວບລວມປຸ່ມເປີດ/ປິດ ແລະເປີດໃຊ້ດີບັກ
    3B: ແກ້ໄຂປຸ່ມເປີດ/ປິດ
  4. ເຂົ້າໃຈອຸປະກອນ 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

FIG 1 ຄະນະກໍາມະການພັດທະນາຕົ້ນຕໍທີ່ມີໂມດູນ Z-Wave SiP

ຮູບທີ 1: ຄະນະກໍາມະການພັດທະນາຕົ້ນຕໍທີ່ມີໂມດູນ Z-Wave SiP

1.3 ເງື່ອນໄຂເບື້ອງຕົ້ນ
ການອອກກໍາລັງກາຍ Hands-On ທີ່ຜ່ານມາໄດ້ກວມເອົາວິທີການນໍາໃຊ້ PC Controller ແລະຄໍາຮ້ອງສະຫມັກ Zniffer ເພື່ອສ້າງເຄືອຂ່າຍ Z-Wave ແລະການຈັບພາບການສື່ສານ RF ສໍາລັບການພັດທະນາ. ອອກກໍາລັງກາຍນີ້ສົມມຸດວ່າທ່ານຄຸ້ນເຄີຍກັບເຄື່ອງມືເຫຼົ່ານີ້.

ການອອກກໍາລັງກາຍແບບ Hands-On ທີ່ຜ່ານມາຍັງໄດ້ກວມເອົາວິທີການນໍາໃຊ້ sample ແອັບພລິເຄຊັນທີ່ສົ່ງກັບ Z-Wave SDK. ອອກກໍາລັງກາຍນີ້ສົມມຸດວ່າທ່ານຄຸ້ນເຄີຍກັບການນໍາໃຊ້ແລະການລວບລວມຫນຶ່ງໃນ sampຄໍາຮ້ອງສະຫມັກ le.

 

2. ທ່ອງໄປຫາກະດານໂຕ້ຕອບ

ກອບ 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.

  1. ຈາກຕົ້ນຕໍ file “SwitchOnOff.c”, ຊອກຫາ “ApplicationInit()” ແລະສັງເກດເຫັນການໂທຫາ Board_Init().
  2. ວາງຫຼັກສູດຂອງທ່ານໃສ່ Board_Init() ແລະກົດປຸ່ມ F3 ເພື່ອເປີດການປະກາດ.

FIG 2 ເປີດ Sampໂຄງການ le

3. ໃນ Board_Init()ສັງເກດເຫັນວ່າ LEDs ທີ່ມີຢູ່ໃນ BOARD_LED_COUNT ຈະຖືກເລີ່ມຕົ້ນໂດຍເອີ້ນວ່າ Board_Con-figLed()

FIG 3 ເປີດ Sampໂຄງການ le

4. ວາງຄູສອນຂອງທ່ານໃສ່ BOARD_LED_COUNT ແລະກົດປຸ່ມ F3 ເພື່ອເປີດການປະກາດ.
5. LEDs ທີ່ກໍານົດໄວ້ໃນ led_id_t ມີດັ່ງຕໍ່ໄປນີ້:

FIG 4 ເປີດ Sampໂຄງການ le

6. ກັບຄືນໄປຫາ board.c file.
7. ວາງຄູສອນຂອງເຈົ້າໃສ່ Board_ConfigLed() ແລະກົດປຸ່ມ F3 ເພື່ອເປີດການປະກາດ.
8. ສັງເກດເຫັນທຸກ LEDs ທີ່ກໍານົດໄວ້ໃນ led_id_t ໄດ້ຖືກຕັ້ງຄ່າແລ້ວໃນ Board_ConfigLed() ເປັນຜົນຜະລິດ.

FIG 5 ເປີດ Sampໂຄງການ le

ນີ້ຫມາຍຄວາມວ່າແນວໃດ, 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.

FIG 6 RefreshMMI ໂດຍບໍ່ມີການດັດແປງໃດໆ

ຮູບທີ 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.

FIG 7 RefreshMMI ດັດແກ້ເພື່ອໃຊ້ RGB LED

ການດັດແກ້ໃຫມ່ຂອງພວກເຮົາໄດ້ຖືກປະຕິບັດໃນປັດຈຸບັນ, ແລະທ່ານພ້ອມທີ່ຈະລວບລວມ.
ຂັ້ນຕອນໃນການຂຽນໂປຣແກຣມອຸປະກອນແມ່ນກວມເອົາໃນບົດຝຶກຫັດ "3A Compile Switch OnOff ແລະເປີດໃຊ້ການດີບັກ", ແລະເຮັດຊ້ໍາອີກຄັ້ງນີ້:

  1. ໃຫ້ຄລິກໃສ່ "ສ້າງ" ໄອຄອນ 1 ປຸ່ມເພື່ອເລີ່ມຕົ້ນການກໍ່ສ້າງໂຄງການ.
  2. ເມື່ອການສ້າງສຳເລັດ, ຂະຫຍາຍໂຟນເດີ “Binaries” ແລະຄລິກຂວາໃສ່ປຸ່ມ *.hex file ເພື່ອເລືອກ “Flash to Device..”.
  3. ເລືອກຮາດແວທີ່ເຊື່ອມຕໍ່ຢູ່ໃນປ່ອງຢ້ຽມປັອບອັບ. ໃນປັດຈຸບັນ "Flash Programmer" ໄດ້ຖືກຕື່ມຂໍ້ມູນທີ່ຈໍາເປັນທັງຫມົດ, ແລະທ່ານພ້ອມທີ່ຈະຄລິກໃສ່ "ໂຄງການ".
  4. ກົດ "ໂຄງການ".

ຫຼັງ​ຈາກ​ທີ່​ບໍ່​ດົນ​ໃນ​ຂະ​ນະ​ທີ່​ການ​ດໍາ​ເນີນ​ໂຄງ​ການ​ສໍາ​ເລັດ​ຮູບ​, ແລະ​ອຸ​ປະ​ກອນ​ທ້າຍ​ຂອງ​ທ່ານ​ໃນ​ປັດ​ຈຸ​ບັນ​ກະ​ພິບ​ກັບ​ສະ​ຫຼັບ​ການ​ປັບ​ປຸງ​ແກ້​ໄຂ / ປິດ​.

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.

FIG 8 ອົງປະກອບສີ RGB ປະສົມເຂົ້າກັນ

ເນື່ອງຈາກພວກເຮົາເປີດໃຊ້ອົງປະກອບສີທັງໝົດໃນພາກກ່ອນໜ້າ, RGB LED ຈະເປັນສີຂາວເມື່ອເປີດ. ໂດຍການເປີດແລະປິດຂອງອົງປະກອບສ່ວນບຸກຄົນ, ພວກເຮົາສາມາດປ່ຽນ LED ໄດ້. ນອກຈາກນັ້ນ, ໂດຍການປັບຄວາມເຂັ້ມຂອງແຕ່ລະອົງປະກອບສີ, ພວກເຮົາສາມາດເຮັດໃຫ້ສີທັງຫມົດຢູ່ໃນລະຫວ່າງ. ສໍາລັບນັ້ນ, ພວກເຮົາຈະໃຊ້ PWM ເພື່ອຄວບຄຸມ GPIOs.

  1. ໃນ ApplicationTask() ເລີ່ມຕົ້ນ PwmTimer ແລະຕິດຕັ້ງ pins RGB ກັບ PWM, ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 9.                                                                                FIG 9 PWM ເລີ່ມຕົ້ນໃນ ApplicationTask
  2. ໃນ RefreshMMI(), ພວກເຮົາຈະໃຊ້ຕົວເລກສຸ່ມສໍາລັບທຸກໆອົງປະກອບສີ. ໃຊ້ rand() ເພື່ອໃຫ້ໄດ້ຮັບຄ່າໃຫມ່ທຸກຄັ້ງທີ່ LED ເປີດ.
  3. ໃຊ້ DPRINTF() ເພື່ອຂຽນຄ່າທີ່ສ້າງຂຶ້ນໃໝ່ໃສ່ພອດດີບັກ serial.
  4. ແທນທີ່ Board_SetLed() ດ້ວຍ Board_RgbLedSetPwm(), ເພື່ອໃຊ້ຄ່າສຸ່ມ.
  5. ເບິ່ງຮູບ 10 ສໍາລັບການປັບປຸງໃຫມ່ RefreshMMI().

FIG 10 RefreshMMI ປັບປຸງດ້ວຍ PWM

ຮູບທີ 10: RefreshMMI ປັບປຸງດ້ວຍ PWM

ການດັດແກ້ໃຫມ່ຂອງພວກເຮົາໄດ້ຖືກປະຕິບັດໃນປັດຈຸບັນ, ແລະທ່ານພ້ອມທີ່ຈະລວບລວມ.

  1. ໃຫ້ຄລິກໃສ່ "ສ້າງ" ໄອຄອນ 1 ປຸ່ມເພື່ອເລີ່ມຕົ້ນການກໍ່ສ້າງໂຄງການ.
  2. ເມື່ອການສ້າງສຳເລັດ, ຂະຫຍາຍໂຟນເດີ “Binaries” ແລະຄລິກຂວາໃສ່ປຸ່ມ *.hex file ເພື່ອເລືອກ “Flash to Device..”.
  3. ເລືອກຮາດແວທີ່ເຊື່ອມຕໍ່ຢູ່ໃນປ່ອງຢ້ຽມປັອບອັບ. ໃນປັດຈຸບັນ "Flash Programmer" ໄດ້ຖືກຕື່ມຂໍ້ມູນທີ່ຈໍາເປັນທັງຫມົດ, ແລະທ່ານພ້ອມທີ່ຈະຄລິກໃສ່ "ໂຄງການ".
  4. ກົດ "ໂຄງການ".

ຫຼັງ​ຈາກ​ທີ່​ບໍ່​ດົນ​ໃນ​ຂະ​ນະ​ທີ່​ການ​ດໍາ​ເນີນ​ໂຄງ​ການ​ສໍາ​ເລັດ​ຮູບ​, ແລະ​ອຸ​ປະ​ກອນ​ທ້າຍ​ຂອງ​ທ່ານ​ໃນ​ປັດ​ຈຸ​ບັນ​ກະ​ພິບ​ກັບ​ສະ​ຫຼັບ​ການ​ປັບ​ປຸງ​ແກ້​ໄຂ / ປິດ​.

3.2.1 ທົດສອບການທໍາງານ

ທົດສອບການເຮັດວຽກໂດຍການຢັ້ງຢືນວ່າທ່ານສາມາດປ່ຽນສີຂອງ RGB LED ໄດ້.

  1. ທົດສອບການທໍາງານໂດຍໃຊ້ "Basic Set ON" ໃນ PC Controller.
  2. ໃຫ້ຄລິກໃສ່ "ຕັ້ງພື້ນຖານ" ເພື່ອເບິ່ງການປ່ຽນແປງຂອງສີ.

ຕອນນີ້ພວກເຮົາໄດ້ກວດສອບແລ້ວວ່າການດັດແກ້ແມ່ນເຮັດວຽກຕາມທີ່ຄາດໄວ້ ແລະໄດ້ປ່ຽນ 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

ເອກະສານອ້າງອີງ

ອອກຄໍາເຫັນ

ທີ່ຢູ່ອີເມວຂອງເຈົ້າຈະບໍ່ຖືກເຜີຍແຜ່. ຊ່ອງຂໍ້ມູນທີ່ຕ້ອງການຖືກໝາຍໄວ້ *