និមិត្តសញ្ញាស៊ីលីកុន

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 sampកម្មវិធី le ។

នៅក្នុងលំហាត់នេះ យើងនឹងធ្វើការកែប្រែទៅលើ sample កម្មវិធីដោយផ្លាស់ប្តូរ GPIO ដែលគ្រប់គ្រង LED ។ លើសពីនេះទៀតយើងនឹងប្រើ RGB LED និងរៀនពីរបៀបប្រើ PWM ដើម្បីផ្លាស់ប្តូរពណ៌។

1.1 តម្រូវការផ្នែករឹង

  • 1 ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ចម្បង WSTK
  • 1 ក្រុមប្រឹក្សាអភិវឌ្ឍន៍វិទ្យុ Z-Wave៖ ម៉ូឌុល ZGM130S SiP
  • 1 ឧបករណ៍បញ្ជា UZB
  • 1 USB Zniffer

1.2 តម្រូវការកម្មវិធី

  • ស្ទូឌីយោសាមញ្ញ v4
  • Z-Wave 7 SDK
  • ឧបករណ៍បញ្ជាកុំព្យូទ័រ Z-Wave
  • 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កម្មវិធីឡេ។

 

2. រុករកចំណុចប្រទាក់ក្រុមប្រឹក្សាភិបាល

ក្របខ័ណ្ឌ Z-Wave ភ្ជាប់មកជាមួយស្រទាប់អរូបីផ្នែករឹង (HAL) ដែលកំណត់ដោយ board.h និង board.c ដែលផ្តល់លទ្ធភាពនៃការមានការអនុវត្តសម្រាប់វេទិកាផ្នែករឹងនីមួយៗរបស់អ្នក។

Hardware Abstraction Layer (HAL) គឺជាកូដកម្មវិធីរវាងផ្នែករឹងរបស់ប្រព័ន្ធ និងកម្មវិធីរបស់វា ដែលផ្តល់នូវចំណុចប្រទាក់ស្របគ្នាសម្រាប់កម្មវិធីដែលអាចដំណើរការលើវេទិកាផ្នែករឹងផ្សេងៗគ្នាជាច្រើន។ ដើម្បីយក advantage នៃសមត្ថភាពនេះ កម្មវិធីគួរតែចូលប្រើផ្នែករឹងតាមរយៈ API ដែលផ្តល់ដោយ HAL ជាជាងដោយផ្ទាល់។ បន្ទាប់មក នៅពេលអ្នកផ្លាស់ទីទៅផ្នែករឹងថ្មី អ្នកគ្រាន់តែធ្វើបច្ចុប្បន្នភាព HAL ប៉ុណ្ណោះ។

2.1 បើក Sampគម្រោងឡេ
សម្រាប់លំហាត់នេះ អ្នកត្រូវបើក ​​Switch On/Off sampកម្មវិធី le ។ ប្រសិនបើអ្នកបានបញ្ចប់លំហាត់ "3A Compile Switch OnOff and enable debug" វាគួរតែត្រូវបានបើករួចហើយនៅក្នុង Simplicity Studio IDE របស់អ្នក។

នៅក្នុងផ្នែកនេះយើងនឹងពិនិត្យមើលក្តារ files និងយល់ពីរបៀបដែល LEDs ត្រូវបានចាប់ផ្តើម។

  1. ពីមេ file “SwitchOnOff.c” កំណត់ទីតាំង “ApplicationInit()” ហើយកត់សម្គាល់ការហៅទៅកាន់ Board_Init()។
  2. ដាក់គ្រូរបស់អ្នកនៅលើ Board_Init() ហើយចុចលើ F3 ដើម្បីបើកការប្រកាស។

រូបភាពទី 2 បើក Sampគម្រោងឡេ

3. នៅក្នុង Board_Init()កត់សំគាល់ពីរបៀបដែល LEDs ដែលមាននៅក្នុង BOARD_LED_COUNT កំពុងត្រូវបានចាប់ផ្តើមដោយហៅថា Board_Con-figLed()

រូបភាពទី 3 បើក Sampគម្រោងឡេ

4. ដាក់គ្រូរបស់អ្នកនៅលើ BOARD_LED_COUNT ហើយចុចលើ F3 ដើម្បីបើកការប្រកាស។
5. LEDs ដែលកំណត់ក្នុង led_id_t មានដូចខាងក្រោម៖

រូបភាពទី 4 បើក Sampគម្រោងឡេ

6. ត្រឡប់ទៅ board.c file.
7. ដាក់គ្រូរបស់អ្នកនៅលើ Board_ConfigLed() ហើយចុចលើ F3 ដើម្បីបើកការប្រកាស។
8. សូមកត់សម្គាល់ LEDs ទាំងអស់ដែលបានកំណត់នៅក្នុង led_id_t បន្ទាប់មកត្រូវបានកំណត់រចនាសម្ព័ន្ធនៅក្នុង Board_ConfigLed() ជាលទ្ធផល។

រូបភាពទី 5 បើក Sampគម្រោងឡេ

នេះមានន័យថា LEDs ទាំងអស់នៅលើបន្ទះអភិវឌ្ឍន៍ត្រូវបានកំណត់ថាជាលទ្ធផល និងរួចរាល់ក្នុងការប្រើប្រាស់។

 

3. ធ្វើការកែប្រែទៅ Z-Wave Sampការដាក់ពាក្យ

នៅក្នុងលំហាត់នេះ យើងនឹងកែប្រែ GPIOs ដែលប្រើសម្រាប់ LED នៅក្នុង Switch On/Off sampកម្មវិធី le ។ នៅក្នុងផ្នែកមុន យើងបានរៀនពីរបៀបដែល LEDs ទាំងអស់នៅលើក្រុមប្រឹក្សាភិបាលអភិវឌ្ឍន៍ត្រូវបានចាប់ផ្តើមរួចហើយជាលទ្ធផល និងរួចរាល់ក្នុងការប្រើប្រាស់។

3.1 ប្រើ RGB LED

យើងនឹងប្រើ LED RGB នៅលើបន្ទះនៅលើម៉ូឌុលអភិវឌ្ឍន៍ 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 and enable debug" ហើយ​បាន​ធ្វើ​ឡើង​វិញ​ដោយ​សង្ខេប​នៅ​ទីនេះ៖

  1. ចុចលើ "សាងសង់" ICON ១០០ ប៊ូតុងដើម្បីចាប់ផ្តើមសាងសង់គម្រោង។
  2. នៅពេលការស្ថាបនាបញ្ចប់ ពង្រីកថត "ប្រព័ន្ធគោលពីរ" ហើយចុចខាងស្តាំលើ *.hex file ដើម្បីជ្រើសរើស "Flash to Device.."
  3. ជ្រើសរើសផ្នែករឹងដែលបានភ្ជាប់នៅក្នុងបង្អួចដែលលេចឡើង។ “Flash Programmer” ឥឡូវនេះត្រូវបានបំពេញជាមុនជាមួយនឹងទិន្នន័យដែលត្រូវការទាំងអស់ ហើយអ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីចុចលើ “Program”។
  4. ចុច "កម្មវិធី" ។

បន្ទាប់ពីរយៈពេលខ្លី ខណៈពេលដែលការសរសេរកម្មវិធីបានបញ្ចប់ ហើយឧបករណ៍បញ្ចប់របស់អ្នកឥឡូវនេះត្រូវបានបញ្ចេញជាមួយនឹងកំណែដែលបានកែប្រែនៃ Switch On/Off របស់អ្នក។

3.1.1 សាកល្បងមុខងារ

នៅក្នុងលំហាត់ពីមុន យើងបានបញ្ចូលឧបករណ៍ទៅក្នុងបណ្តាញ Z-Wave ដែលមានសុវត្ថិភាពដោយប្រើ SmartStart រួចហើយ។ សូមមើលលំហាត់ "រួមបញ្ចូលការប្រើ SmartStart" សម្រាប់ការណែនាំ។

ណែនាំផ្ទៃក្នុង file ប្រព័ន្ធមិនត្រូវបានលុបចោលរវាងការសរសេរកម្មវិធីឡើងវិញទេ។ នេះអនុញ្ញាតឱ្យថ្នាំងស្នាក់នៅក្នុងបណ្តាញ និងរក្សាសោបណ្តាញដូចគ្នា នៅពេលអ្នករៀបចំវាឡើងវិញ។

ប្រសិនបើអ្នកត្រូវការផ្លាស់ប្តូរឧទាហរណ៍ប្រេកង់ដែលម៉ូឌុលដំណើរការឬ DSK អ្នកត្រូវ "លុប" បន្ទះឈីបមុនពេលប្រេកង់ថ្មីនឹងត្រូវបានសរសេរទៅ NVM ខាងក្នុង។

ដូច្នេះ ឧបករណ៍របស់អ្នកត្រូវបានបញ្ចូលក្នុងបណ្តាញរួចហើយ។

សាកល្បងមុខងារដោយផ្ទៀងផ្ទាត់ថាអ្នកអាចបើក និងបិទ RGB LED ។

  • សាកល្បងមុខងារដោយប្រើ "Basic Set ON" និង "Basic Set OFF" នៅក្នុង PC Controller ។ LED RGB គួរតែបើក និងបិទ។
  • RGB LED ក៏អាចបើក និងបិទដោយប្រើ BTN0 នៅលើផ្នែករឹង។

ឥឡូវនេះ យើងបានផ្ទៀងផ្ទាត់ថាការកែប្រែកំពុងដំណើរការដូចការរំពឹងទុក និងបានផ្លាស់ប្តូរដោយជោគជ័យនូវ GPIO ដែលបានប្រើនៅក្នុង Sampការដាក់ពាក្យ

3.2 ផ្លាស់ប្តូរសមាសធាតុពណ៌ RGB

នៅក្នុងផ្នែកនេះ យើងនឹងធ្វើការកែប្រែ RGB LED ហើយព្យាយាមលាយសមាសធាតុពណ៌។

"ពណ៌មួយនៅក្នុងគំរូពណ៌ RGB ត្រូវបានពិពណ៌នាដោយបង្ហាញពីចំនួនពណ៌ក្រហម បៃតង និងពណ៌ខៀវនីមួយៗត្រូវបានរួមបញ្ចូល។ ពណ៌ត្រូវបានបង្ហាញជា RGB triplet (r,g,b) សមាសធាតុនីមួយៗដែលអាចប្រែប្រួលពីសូន្យទៅតម្លៃអតិបរមាដែលបានកំណត់។ ប្រសិនបើសមាសធាតុផ្សំទាំងអស់នៅសូន្យ លទ្ធផលគឺខ្មៅ។ ប្រសិនបើទាំងអស់គឺអតិបរមា លទ្ធផលគឺពណ៌សដែលភ្លឺបំផុត”

ពីវិគីភីឌា ម៉ូដែលពណ៌ RGB ។

FIG 8 សមាសធាតុពណ៌ RGB លាយបញ្ចូលគ្នា

ដោយសារ​យើង​បើក​សមាសធាតុ​ពណ៌​ទាំងអស់​ក្នុង​ផ្នែក​មុន​ RGB LED មាន​ពណ៌​ស​ពេល​បើក។ តាមរយៈការបើក និងបិទធាតុផ្សំនីមួយៗ យើងអាចផ្លាស់ប្តូរ LED ។ លើសពីនេះ តាមរយៈការកែតម្រូវអាំងតង់ស៊ីតេនៃសមាសធាតុពណ៌នីមួយៗ យើងអាចបង្កើតពណ៌ទាំងអស់នៅចន្លោះ។ សម្រាប់នោះ យើងនឹងប្រើប្រាស់ PWM ដើម្បីគ្រប់គ្រង GPIOs។

  1. នៅក្នុង ApplicationTask() ចាប់ផ្តើម PwmTimer ហើយដំឡើងម្ជុល RGB ទៅ PWM ដូចបង្ហាញក្នុងរូបភាពទី 9 ។                                                                                រូបភាពទី 9 PWM បានចាប់ផ្តើមនៅក្នុង ApplicationTask
  2. នៅក្នុង RefreshMMI() យើងនឹងប្រើលេខចៃដន្យសម្រាប់រាល់សមាសធាតុពណ៌។ ប្រើ rand() ដើម្បីទទួលបានតម្លៃថ្មីរាល់ពេលដែល LED ត្រូវបានបើក។
  3. ប្រើ DPRINTF() ដើម្បីសរសេរតម្លៃដែលបានបង្កើតថ្មីទៅកាន់ច្រកបំបាត់កំហុសសៀរៀល។
  4. ជំនួស Board_SetLed() ជាមួយ Board_RgbLedSetPwm() ដើម្បីប្រើតម្លៃចៃដន្យ។
  5. សូមមើលរូបភាពទី 10 សម្រាប់ RefreshMMI() ដែលបានធ្វើបច្ចុប្បន្នភាព។

FIG 10 RefreshMMI បានធ្វើបច្ចុប្បន្នភាពជាមួយ PWM

រូបភាពទី 10៖ RefreshMMI បានធ្វើបច្ចុប្បន្នភាពជាមួយ PWM

ការកែប្រែថ្មីរបស់យើងឥឡូវនេះត្រូវបានអនុវត្ត ហើយអ្នកត្រៀមខ្លួនជាស្រេចក្នុងការចងក្រង។

  1. ចុចលើ "សាងសង់" ICON ១០០ ប៊ូតុងដើម្បីចាប់ផ្តើមសាងសង់គម្រោង។
  2. នៅពេលការស្ថាបនាបញ្ចប់ ពង្រីកថត "ប្រព័ន្ធគោលពីរ" ហើយចុចខាងស្តាំលើ *.hex file ដើម្បីជ្រើសរើស "Flash to Device.."
  3. ជ្រើសរើសផ្នែករឹងដែលបានភ្ជាប់នៅក្នុងបង្អួចដែលលេចឡើង។ “Flash Programmer” ឥឡូវនេះត្រូវបានបំពេញជាមុនជាមួយនឹងទិន្នន័យដែលត្រូវការទាំងអស់ ហើយអ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីចុចលើ “Program”។
  4. ចុច "កម្មវិធី" ។

បន្ទាប់ពីរយៈពេលខ្លី ខណៈពេលដែលការសរសេរកម្មវិធីបានបញ្ចប់ ហើយឧបករណ៍បញ្ចប់របស់អ្នកឥឡូវនេះត្រូវបានបញ្ចេញជាមួយនឹងកំណែដែលបានកែប្រែនៃ Switch On/Off របស់អ្នក។

3.2.1 សាកល្បងមុខងារ

សាកល្បងមុខងារដោយផ្ទៀងផ្ទាត់ថាអ្នកអាចផ្លាស់ប្តូរពណ៌របស់ LED RGB ។

  1. សាកល្បងមុខងារដោយប្រើ "Basic Set ON" នៅក្នុង PC Controller ។
  2. ចុចលើ "Basic Set ON" ដើម្បីមើលការផ្លាស់ប្តូរពណ៌។

ឥឡូវនេះយើងបានផ្ទៀងផ្ទាត់ថាការកែប្រែកំពុងដំណើរការដូចការរំពឹងទុក ហើយបានផ្លាស់ប្តូរ GPIO ដោយជោគជ័យដើម្បីប្រើ PWM ។

៤.៤ ការពិភាក្សា

នៅក្នុងលំហាត់នេះ យើងបានកែប្រែ Switch On/Off ពីការគ្រប់គ្រង LED ធម្មតាទៅគ្រប់គ្រង LED ពហុពណ៌។ អាស្រ័យលើតម្លៃ PWM ឥឡូវនេះយើងអាចប្តូរទៅជាពណ៌ និងអាំងតង់ស៊ីតេណាមួយ។

  • តើ "Binary Switch" គួរតែត្រូវបានប្រើជាប្រភេទឧបករណ៍សម្រាប់កម្មវិធីនេះដែរឬទេ?
  • តើថ្នាក់ពាក្យបញ្ជាណាដែលសាកសមជាងសម្រាប់ LED ពហុពណ៌?

ដើម្បីឆ្លើយសំណួរ អ្នកគួរតែយោងទៅលើការបញ្ជាក់ Z-Wave៖

  • ការបញ្ជាក់ប្រភេទឧបករណ៍ Z-Wave Plus v2
  • ការបញ្ជាក់ថ្នាក់ពាក្យបញ្ជាកម្មវិធី Z-Wave

នេះបញ្ចប់ការបង្រៀនអំពីរបៀបកែប្រែ និងផ្លាស់ប្តូរ GPIOs នៃ Z-Wave Sampការដាក់ពាក្យ។

 

សូមអានបន្ថែមអំពីសៀវភៅណែនាំនេះ និងទាញយក PDF៖

ឯកសារ/ធនធាន

SILICON LABS Lab 3B - កែប្រែការបើក/បិទ [pdf] ការណែនាំអ្នកប្រើប្រាស់
Lab 3B, Modify Switch, On, Off, Z-Wave, SDK

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *