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 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
រូបភាពទី 1៖ ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ចម្បងជាមួយម៉ូឌុល Z-Wave SiP
1.3 តម្រូវការជាមុន
លំហាត់ Hands-On ពីមុនបានរៀបរាប់អំពីរបៀបប្រើ PC Controller និងកម្មវិធី Zniffer ដើម្បីបង្កើតបណ្តាញ Z-Wave និងការចាប់យកទំនាក់ទំនង RF សម្រាប់គោលបំណងអភិវឌ្ឍន៍។ លំហាត់នេះសន្មត់ថាអ្នកស៊ាំជាមួយឧបករណ៍ទាំងនេះ។
លំហាត់ Hands-On ពីមុនក៏បានរៀបរាប់អំពីរបៀបប្រើ sample កម្មវិធីដែលដឹកជញ្ជូនជាមួយ Z-Wave SDK ។ លំហាត់នេះសន្មត់ថាអ្នកស៊ាំនឹងការប្រើប្រាស់ និងការចងក្រងមួយនៃ sampកម្មវិធីឡេ។
ក្របខ័ណ្ឌ 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 ត្រូវបានចាប់ផ្តើម។
- ពីមេ 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
យើងនឹងប្រើ LED RGB នៅលើបន្ទះនៅលើម៉ូឌុលអភិវឌ្ឍន៍ 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 and enable debug" ហើយបានធ្វើឡើងវិញដោយសង្ខេបនៅទីនេះ៖
- ចុចលើ "សាងសង់"
ប៊ូតុងដើម្បីចាប់ផ្តើមសាងសង់គម្រោង។
- នៅពេលការស្ថាបនាបញ្ចប់ ពង្រីកថត "ប្រព័ន្ធគោលពីរ" ហើយចុចខាងស្តាំលើ *.hex file ដើម្បីជ្រើសរើស "Flash to Device.."
- ជ្រើសរើសផ្នែករឹងដែលបានភ្ជាប់នៅក្នុងបង្អួចដែលលេចឡើង។ “Flash Programmer” ឥឡូវនេះត្រូវបានបំពេញជាមុនជាមួយនឹងទិន្នន័យដែលត្រូវការទាំងអស់ ហើយអ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីចុចលើ “Program”។
- ចុច "កម្មវិធី" ។
បន្ទាប់ពីរយៈពេលខ្លី ខណៈពេលដែលការសរសេរកម្មវិធីបានបញ្ចប់ ហើយឧបករណ៍បញ្ចប់របស់អ្នកឥឡូវនេះត្រូវបានបញ្ចេញជាមួយនឹងកំណែដែលបានកែប្រែនៃ 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 ។
ដោយសារយើងបើកសមាសធាតុពណ៌ទាំងអស់ក្នុងផ្នែកមុន RGB LED មានពណ៌សពេលបើក។ តាមរយៈការបើក និងបិទធាតុផ្សំនីមួយៗ យើងអាចផ្លាស់ប្តូរ LED ។ លើសពីនេះ តាមរយៈការកែតម្រូវអាំងតង់ស៊ីតេនៃសមាសធាតុពណ៌នីមួយៗ យើងអាចបង្កើតពណ៌ទាំងអស់នៅចន្លោះ។ សម្រាប់នោះ យើងនឹងប្រើប្រាស់ PWM ដើម្បីគ្រប់គ្រង GPIOs។
- នៅក្នុង ApplicationTask() ចាប់ផ្តើម PwmTimer ហើយដំឡើងម្ជុល RGB ទៅ PWM ដូចបង្ហាញក្នុងរូបភាពទី 9 ។
- នៅក្នុង RefreshMMI() យើងនឹងប្រើលេខចៃដន្យសម្រាប់រាល់សមាសធាតុពណ៌។ ប្រើ rand() ដើម្បីទទួលបានតម្លៃថ្មីរាល់ពេលដែល LED ត្រូវបានបើក។
- ប្រើ DPRINTF() ដើម្បីសរសេរតម្លៃដែលបានបង្កើតថ្មីទៅកាន់ច្រកបំបាត់កំហុសសៀរៀល។
- ជំនួស Board_SetLed() ជាមួយ Board_RgbLedSetPwm() ដើម្បីប្រើតម្លៃចៃដន្យ។
- សូមមើលរូបភាពទី 10 សម្រាប់ RefreshMMI() ដែលបានធ្វើបច្ចុប្បន្នភាព។
រូបភាពទី 10៖ RefreshMMI បានធ្វើបច្ចុប្បន្នភាពជាមួយ PWM
ការកែប្រែថ្មីរបស់យើងឥឡូវនេះត្រូវបានអនុវត្ត ហើយអ្នកត្រៀមខ្លួនជាស្រេចក្នុងការចងក្រង។
- ចុចលើ "សាងសង់"
ប៊ូតុងដើម្បីចាប់ផ្តើមសាងសង់គម្រោង។
- នៅពេលការស្ថាបនាបញ្ចប់ ពង្រីកថត "ប្រព័ន្ធគោលពីរ" ហើយចុចខាងស្តាំលើ *.hex file ដើម្បីជ្រើសរើស "Flash to Device.."
- ជ្រើសរើសផ្នែករឹងដែលបានភ្ជាប់នៅក្នុងបង្អួចដែលលេចឡើង។ “Flash Programmer” ឥឡូវនេះត្រូវបានបំពេញជាមុនជាមួយនឹងទិន្នន័យដែលត្រូវការទាំងអស់ ហើយអ្នកត្រៀមខ្លួនរួចរាល់ហើយដើម្បីចុចលើ “Program”។
- ចុច "កម្មវិធី" ។
បន្ទាប់ពីរយៈពេលខ្លី ខណៈពេលដែលការសរសេរកម្មវិធីបានបញ្ចប់ ហើយឧបករណ៍បញ្ចប់របស់អ្នកឥឡូវនេះត្រូវបានបញ្ចេញជាមួយនឹងកំណែដែលបានកែប្រែនៃ Switch On/Off របស់អ្នក។
3.2.1 សាកល្បងមុខងារ
សាកល្បងមុខងារដោយផ្ទៀងផ្ទាត់ថាអ្នកអាចផ្លាស់ប្តូរពណ៌របស់ LED RGB ។
- សាកល្បងមុខងារដោយប្រើ "Basic Set ON" នៅក្នុង PC Controller ។
- ចុចលើ "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 |