SILICON LABS Lab 3B – แก้ไขคู่มือผู้ใช้สวิตช์เปิด/ปิด
แบบฝึกหัดภาคปฏิบัตินี้จะสาธิตวิธีการแก้ไขข้อใดข้อหนึ่งampแอปพลิเคชันที่จัดส่งโดยเป็นส่วนหนึ่งของ Z-Wave SDK
แบบฝึกหัดนี้เป็นส่วนหนึ่งของซีรีส์ “Z-Wave 1-Day Course”
- รวมโดยใช้ SmartStart
- ถอดรหัส Z-Wave RF Frames โดยใช้ Zniffer
- 3A: เปิด/ปิดคอมไพล์และเปิดใช้งาน Debug
3B: แก้ไขสวิตช์เปิด/ปิด - ทำความเข้าใจอุปกรณ์ FLiRS
คุณสมบัติที่สำคัญ
- เปลี่ยน GPIO
- ใช้ PWM
- ใช้ RGB LED ออนบอร์ด
1. บทนำ
แบบฝึกหัดนี้สร้างจากแบบฝึกหัดก่อนหน้า “3A: Compile Switch On/Off and enable debug” ซึ่งสาธิตวิธีการคอมไพล์และใช้งานสวิตช์เปิด/ปิดampแอปพลิเคชัน
ในแบบฝึกหัดนี้ เราจะทำการปรับเปลี่ยน sampแอปพลิเคชันโดยเปลี่ยน GPIO ที่ควบคุม LED นอกจากนี้ เราจะใช้ RGB LED และเรียนรู้วิธีใช้ PWM เพื่อเปลี่ยนสี
1.1 ข้อกำหนดด้านฮาร์ดแวร์
- 1 WSTK กระดานพัฒนาหลัก
- 1 คณะกรรมการพัฒนาวิทยุ Z-Wave: โมดูล ZGM130S SiP
- 1 UZB คอนโทรลเลอร์
- USB Zniffer 1 อัน
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 ก่อนหน้ายังครอบคลุมถึงวิธีใช้ sampแอปพลิเคชันที่มาพร้อมกับ Z-Wave SDK แบบฝึกหัดนี้ถือว่าคุณคุ้นเคยกับการใช้และรวบรวมหนึ่งใน sampแอปพลิเคชัน
เฟรมเวิร์ก Z-Wave มาพร้อมกับเลเยอร์ที่เป็นนามธรรมของฮาร์ดแวร์ (HAL) ที่กำหนดโดย board.h และ board.c ซึ่งให้ความเป็นไปได้ในการใช้งานสำหรับแพลตฟอร์มฮาร์ดแวร์แต่ละแพลตฟอร์มของคุณ
Hardware Abstraction Layer (HAL) คือรหัสโปรแกรมระหว่างฮาร์ดแวร์ของระบบและซอฟต์แวร์ที่มีอินเทอร์เฟซที่สอดคล้องกันสำหรับแอปพลิเคชันที่สามารถทำงานบนแพลตฟอร์มฮาร์ดแวร์ต่างๆ ที่จะใช้ advantagจากความสามารถนี้ แอปพลิเคชันควรเข้าถึงฮาร์ดแวร์ผ่าน API ที่ HAL จัดเตรียมไว้ให้ แทนที่จะเข้าถึงโดยตรง จากนั้น เมื่อคุณย้ายไปยังฮาร์ดแวร์ใหม่ คุณจะต้องอัปเดต HAL เท่านั้น
2.1 เปิด Sampเลอ โปรเจ็กต์
สำหรับแบบฝึกหัดนี้ คุณต้องเปิดสวิตช์เปิด / ปิด sampแอปพลิเคชัน หากคุณทำแบบฝึกหัด "3A Compile Switch OnOff และเปิดใช้งานการดีบัก" เสร็จแล้ว แบบฝึกหัดนี้ควรเปิดอยู่ใน Simplicity Studio IDE ของคุณแล้ว
ในส่วนนี้เราจะดูที่กระดาน fileและเข้าใจวิธีการเริ่มต้น LED
- จากหลัก file “SwitchOnOff.c” ค้นหา “ApplicationInit()” และสังเกตการเรียกไปที่ Board_Init()
- วางหลักสูตรของคุณบน Board_Init() และกด F3 เพื่อเปิดการประกาศ
3. ใน Board_Init() ให้สังเกตว่า LED ที่อยู่ใน BOARD_LED_COUNT กำลังถูกเริ่มต้นโดยเรียกว่า Board_Con-figLed()
4. วางหลักสูตรของคุณบน BOARD_LED_COUNT และกด F3 เพื่อเปิดการประกาศ
5. ไฟ LED ที่กำหนดใน led_id_t มีดังนี้:
6. กลับไปที่ board.c file.
7. วางหลักสูตรของคุณบน Board_ConfigLed() และกด F3 เพื่อเปิดการประกาศ
8. สังเกตว่า LED ทั้งหมดที่กำหนดไว้ใน led_id_t นั้นได้รับการกำหนดค่าใน Board_ConfigLed() เป็นเอาต์พุต
สิ่งนี้หมายความว่า LED ทั้งหมดบนบอร์ดพัฒนาถูกกำหนดเป็นเอาต์พุตและพร้อมใช้งานแล้ว
3. ทำการปรับเปลี่ยน Z-Wave Sampแอปพลิเคชัน
ในแบบฝึกหัดนี้ เราจะทำการปรับเปลี่ยน GPIO ที่ใช้สำหรับ LED ในสวิตช์เปิด/ปิด sampแอปพลิเคชัน ในส่วนก่อนหน้านี้ เราได้เรียนรู้ว่า LED ทั้งหมดบนบอร์ดพัฒนาได้รับการเตรียมใช้งานเป็นเอาต์พุตและพร้อมใช้งานอย่างไร
3.1 ใช้ RGB LED
เราจะใช้ LED 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 and enable debug” และทำซ้ำสั้นๆ ที่นี่:
- คลิกที่ "สร้าง"
ปุ่มเพื่อเริ่มสร้างโครงการ
- เมื่อสร้างเสร็จสิ้น ให้ขยายโฟลเดอร์ "ไบนารี" และคลิกขวาที่ *.hex file เพื่อเลือก “Flash to Device..”
- เลือกฮาร์ดแวร์ที่เชื่อมต่อในหน้าต่างป๊อปอัป ตอนนี้ "โปรแกรมเมอร์ Flash" ได้รับการกรอกข้อมูลที่จำเป็นทั้งหมดไว้ล่วงหน้าแล้ว และคุณพร้อมที่จะคลิก "โปรแกรม"
- คลิก "โปรแกรม"
ไม่นานในขณะที่การเขียนโปรแกรมเสร็จสิ้น และอุปกรณ์ปลายทางของคุณก็กระพริบด้วยสวิตช์เปิด/ปิดเวอร์ชันที่แก้ไขแล้วของคุณ
3.1.1 ทดสอบการทำงาน
ในแบบฝึกหัดก่อนหน้านี้ เราได้รวมอุปกรณ์ไว้ในเครือข่าย Z-Wave ที่ปลอดภัยแล้วโดยใช้ SmartStart อ้างถึงแบบฝึกหัด “รวมการใช้ SmartStart” สำหรับคำแนะนำ
คำแนะนำภายใน file ระบบจะไม่ถูกลบระหว่างการตั้งโปรแกรมใหม่ ซึ่งช่วยให้โหนดอยู่ในเครือข่ายและเก็บคีย์เครือข่ายเดิมไว้เมื่อคุณตั้งโปรแกรมใหม่
หากคุณต้องการเปลี่ยน เช่น ความถี่ที่โมดูลทำงานหรือ DSK คุณต้อง "ลบ" ชิปก่อน ความถี่ใหม่จะถูกเขียนไปยัง NVM ภายใน
ด้วยเหตุนี้ อุปกรณ์ของคุณจึงรวมอยู่ในเครือข่ายแล้ว
ทดสอบการทำงานโดยตรวจสอบว่าคุณสามารถเปิดและปิด RGB LED ได้
- ทดสอบการทำงานโดยใช้ "เปิดการตั้งค่าพื้นฐาน" และ "ปิดการตั้งค่าพื้นฐาน" ในตัวควบคุมพีซี RGB LED ควรเปิดและปิด
- RGB LED ยังสามารถเปิดและปิดได้โดยใช้ BTN0 บนฮาร์ดแวร์
ขณะนี้เราได้ตรวจสอบแล้วว่าการปรับเปลี่ยนทำงานตามที่คาดไว้และได้เปลี่ยน GPIO ที่ใช้ใน S . เรียบร้อยแล้วampแอปพลิเคชัน
3.2 เปลี่ยนองค์ประกอบสี RGB
ในส่วนนี้ เราจะปรับเปลี่ยน RGB LED และพยายามผสมส่วนประกอบสี
“สีในแบบจำลองสี RGB อธิบายโดยระบุว่าแต่ละสีแดง เขียว และน้ำเงินรวมอยู่เท่าใด สีจะแสดงเป็น RGB triplet (r,g,b) ซึ่งแต่ละองค์ประกอบสามารถเปลี่ยนแปลงได้จากศูนย์ไปจนถึงค่าสูงสุดที่กำหนดไว้ หากส่วนประกอบทั้งหมดอยู่ที่ศูนย์ ผลลัพธ์จะเป็นสีดำ ถ้าทั้งหมดอยู่ที่ระดับสูงสุด ผลลัพธ์จะเป็นสีขาวที่สว่างที่สุด”
จากวิกิพีเดีย on รุ่นสี RGB
เนื่องจากเราเปิดใช้งานส่วนประกอบสีทั้งหมดในส่วนก่อนหน้า ไฟ LED RGB จะเป็นสีขาวเมื่อเปิด โดยการเปิดและปิดส่วนประกอบแต่ละส่วน เราสามารถเปลี่ยน LED ได้ นอกจากนี้ โดยการปรับความเข้มขององค์ประกอบสีแต่ละสี เราสามารถสร้างสีทั้งหมดในระหว่างนั้นได้ สำหรับสิ่งนั้น เราจะใช้ PWM เพื่อควบคุม GPIO
- ใน ApplicationTask() เริ่มต้น PwmTimer และตั้งค่าพิน RGB เป็น PWM ดังแสดงในรูปที่ 9
- ใน RefreshMMI() เราจะใช้ตัวเลขสุ่มสำหรับทุกองค์ประกอบสี ใช้ rand() เพื่อรับค่าใหม่ทุกครั้งที่เปิด LED
- ใช้ DPRINTF() เพื่อเขียนค่าที่สร้างขึ้นใหม่ไปยังพอร์ตดีบักแบบอนุกรม
- แทนที่ Board_SetLed() ด้วย Board_RgbLedSetPwm() เพื่อใช้ค่าสุ่ม
- โปรดดูรูปที่ 10 สำหรับ RefreshMMI() ที่อัพเดต
รูปที่ 10: RefreshMMI อัพเดตด้วย PWM
การปรับเปลี่ยนใหม่ของเราได้รับการใช้งานแล้ว และคุณพร้อมที่จะคอมไพล์แล้ว
- คลิกที่ "สร้าง"
ปุ่มเพื่อเริ่มสร้างโครงการ
- เมื่อสร้างเสร็จสิ้น ให้ขยายโฟลเดอร์ "ไบนารี" และคลิกขวาที่ *.hex file เพื่อเลือก “Flash to Device..”
- เลือกฮาร์ดแวร์ที่เชื่อมต่อในหน้าต่างป๊อปอัป ตอนนี้ "โปรแกรมเมอร์ Flash" ได้รับการกรอกข้อมูลที่จำเป็นทั้งหมดไว้ล่วงหน้าแล้ว และคุณพร้อมที่จะคลิก "โปรแกรม"
- คลิก "โปรแกรม"
ไม่นานในขณะที่การเขียนโปรแกรมเสร็จสิ้น และอุปกรณ์ปลายทางของคุณก็กระพริบด้วยสวิตช์เปิด/ปิดเวอร์ชันที่แก้ไขแล้วของคุณ
3.2.1 ทดสอบการทำงาน
ทดสอบการทำงานโดยตรวจสอบว่าคุณสามารถเปลี่ยนสีของไฟ LED RGB ได้
- ทดสอบการทำงานโดยใช้ “เปิดการตั้งค่าพื้นฐาน” ใน PC Controller
- คลิกที่ "Basic Set ON" เพื่อดูการเปลี่ยนสี
ตอนนี้เราได้ตรวจสอบแล้วว่าการดัดแปลงทำงานตามที่คาดไว้และได้เปลี่ยน GPIO ไปใช้ PWM สำเร็จแล้ว
4 การอภิปราย
ในแบบฝึกหัดนี้ เราได้ปรับเปลี่ยนสวิตช์เปิด/ปิดจากการควบคุม LED ธรรมดาเป็นการควบคุม LED หลายสี ขึ้นอยู่กับค่า PWM ตอนนี้เราสามารถเปลี่ยนเป็นสีและความเข้มใดก็ได้
- ควรใช้ “สวิตช์ไบนารี” เป็นประเภทอุปกรณ์สำหรับแอปพลิเคชันนี้หรือไม่
- คลาสคำสั่งใดที่เหมาะกับ LED หลายสีมากกว่า
ในการตอบคำถาม คุณควรอ้างอิงข้อกำหนด Z-Wave:
- ข้อมูลจำเพาะประเภทอุปกรณ์ Z-Wave Plus v2
- ข้อมูลจำเพาะคลาสคำสั่งแอปพลิเคชัน Z-Wave
สรุปบทช่วยสอนเกี่ยวกับวิธีการแก้ไขและเปลี่ยน GPIO ของ Z-Wave Sampแอปพลิเคชัน
อ่านเพิ่มเติมเกี่ยวกับคู่มือนี้และดาวน์โหลด PDF:
เอกสาร / แหล่งข้อมูล
![]() |
SILICON LABS Lab 3B - แก้ไขสวิตช์เปิด/ปิด [พีดีเอฟ] คู่มือการใช้งาน Lab 3B, Modify Switch, เปิด, ปิด, Z-Wave, SDK |