โลโก้ซิลิโคน

SILICON LABS Lab 3B – แก้ไขคู่มือผู้ใช้สวิตช์เปิด/ปิด

SILICON LABS Lab 3B - แก้ไขสวิตช์เปิด/ปิด

แบบฝึกหัดภาคปฏิบัตินี้จะสาธิตวิธีการแก้ไขข้อใดข้อหนึ่งampแอปพลิเคชันที่จัดส่งโดยเป็นส่วนหนึ่งของ Z-Wave SDK

แบบฝึกหัดนี้เป็นส่วนหนึ่งของซีรีส์ “Z-Wave 1-Day Course”

  1. รวมโดยใช้ SmartStart
  2. ถอดรหัส Z-Wave RF Frames โดยใช้ Zniffer
  3. 3A: เปิด/ปิดคอมไพล์และเปิดใช้งาน Debug
    3B: แก้ไขสวิตช์เปิด/ปิด
  4. ทำความเข้าใจอุปกรณ์ 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: บอร์ดพัฒนาหลักพร้อมโมดูล Z-Wave SiP

1.3 ข้อกำหนดเบื้องต้น
แบบฝึกหัด Hands-On ก่อนหน้านี้ครอบคลุมวิธีใช้ PC Controller และแอปพลิเคชัน Zniffer เพื่อสร้างเครือข่าย Z-Wave และจับภาพการสื่อสาร RF เพื่อวัตถุประสงค์ในการพัฒนา แบบฝึกหัดนี้ถือว่าคุณคุ้นเคยกับเครื่องมือเหล่านี้

แบบฝึกหัด Hands-On ก่อนหน้ายังครอบคลุมถึงวิธีใช้ sampแอปพลิเคชันที่มาพร้อมกับ Z-Wave SDK แบบฝึกหัดนี้ถือว่าคุณคุ้นเคยกับการใช้และรวบรวมหนึ่งใน sampแอปพลิเคชัน

 

2. นำทางไปยังอินเทอร์เฟซของบอร์ด

เฟรมเวิร์ก 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

  1. จากหลัก file “SwitchOnOff.c” ค้นหา “ApplicationInit()” และสังเกตการเรียกไปที่ Board_Init()
  2. วางหลักสูตรของคุณบน Board_Init() และกด F3 เพื่อเปิดการประกาศ

รูปที่ 2 เปิด Sampเลอ โปรเจ็กต์

3. ใน Board_Init() ให้สังเกตว่า LED ที่อยู่ใน BOARD_LED_COUNT กำลังถูกเริ่มต้นโดยเรียกว่า Board_Con-figLed()

รูปที่ 3 เปิด Sampเลอ โปรเจ็กต์

4. วางหลักสูตรของคุณบน BOARD_LED_COUNT และกด F3 เพื่อเปิดการประกาศ
5. ไฟ LED ที่กำหนดใน led_id_t มีดังนี้:

รูปที่ 4 เปิด Sampเลอ โปรเจ็กต์

6. กลับไปที่ board.c file.
7. วางหลักสูตรของคุณบน Board_ConfigLed() และกด F3 เพื่อเปิดการประกาศ
8. สังเกตว่า LED ทั้งหมดที่กำหนดไว้ใน led_id_t นั้นได้รับการกำหนดค่าใน Board_ConfigLed() เป็นเอาต์พุต

รูปที่ 5 เปิด Sampเลอ โปรเจ็กต์

สิ่งนี้หมายความว่า 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 โดยไม่มีการปรับเปลี่ยนใด ๆ

รูปที่ 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

รูปที่ 7 RefreshMMI ถูกดัดแปลงให้ใช้ RGB LED

การปรับเปลี่ยนใหม่ของเราได้รับการใช้งานแล้ว และคุณพร้อมที่จะคอมไพล์แล้ว
ขั้นตอนในการตั้งโปรแกรมอุปกรณ์ครอบคลุมในแบบฝึกหัด “3A Compile Switch OnOff and enable debug” และทำซ้ำสั้นๆ ที่นี่:

  1. คลิกที่ "สร้าง" ไอคอน 1 ปุ่มเพื่อเริ่มสร้างโครงการ
  2. เมื่อสร้างเสร็จสิ้น ให้ขยายโฟลเดอร์ "ไบนารี" และคลิกขวาที่ *.hex file เพื่อเลือก “Flash to Device..”
  3. เลือกฮาร์ดแวร์ที่เชื่อมต่อในหน้าต่างป๊อปอัป ตอนนี้ "โปรแกรมเมอร์ Flash" ได้รับการกรอกข้อมูลที่จำเป็นทั้งหมดไว้ล่วงหน้าแล้ว และคุณพร้อมที่จะคลิก "โปรแกรม"
  4. คลิก "โปรแกรม"

ไม่นานในขณะที่การเขียนโปรแกรมเสร็จสิ้น และอุปกรณ์ปลายทางของคุณก็กระพริบด้วยสวิตช์เปิด/ปิดเวอร์ชันที่แก้ไขแล้วของคุณ

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

มะเดื่อ 8 ส่วนประกอบสี RGB ผสมกัน

เนื่องจากเราเปิดใช้งานส่วนประกอบสีทั้งหมดในส่วนก่อนหน้า ไฟ LED RGB จะเป็นสีขาวเมื่อเปิด โดยการเปิดและปิดส่วนประกอบแต่ละส่วน เราสามารถเปลี่ยน LED ได้ นอกจากนี้ โดยการปรับความเข้มขององค์ประกอบสีแต่ละสี เราสามารถสร้างสีทั้งหมดในระหว่างนั้นได้ สำหรับสิ่งนั้น เราจะใช้ PWM เพื่อควบคุม GPIO

  1. ใน ApplicationTask() เริ่มต้น PwmTimer และตั้งค่าพิน RGB เป็น PWM ดังแสดงในรูปที่ 9                                                                                รูปที่ 9 PWM เริ่มต้นใน ApplicationTask
  2. ใน RefreshMMI() เราจะใช้ตัวเลขสุ่มสำหรับทุกองค์ประกอบสี ใช้ rand() เพื่อรับค่าใหม่ทุกครั้งที่เปิด LED
  3. ใช้ DPRINTF() เพื่อเขียนค่าที่สร้างขึ้นใหม่ไปยังพอร์ตดีบักแบบอนุกรม
  4. แทนที่ Board_SetLed() ด้วย Board_RgbLedSetPwm() เพื่อใช้ค่าสุ่ม
  5. โปรดดูรูปที่ 10 สำหรับ RefreshMMI() ที่อัพเดต

รูปที่ 10 RefreshMMI อัพเดตด้วย PWM

รูปที่ 10: RefreshMMI อัพเดตด้วย PWM

การปรับเปลี่ยนใหม่ของเราได้รับการใช้งานแล้ว และคุณพร้อมที่จะคอมไพล์แล้ว

  1. คลิกที่ "สร้าง" ไอคอน 1 ปุ่มเพื่อเริ่มสร้างโครงการ
  2. เมื่อสร้างเสร็จสิ้น ให้ขยายโฟลเดอร์ "ไบนารี" และคลิกขวาที่ *.hex file เพื่อเลือก “Flash to Device..”
  3. เลือกฮาร์ดแวร์ที่เชื่อมต่อในหน้าต่างป๊อปอัป ตอนนี้ "โปรแกรมเมอร์ Flash" ได้รับการกรอกข้อมูลที่จำเป็นทั้งหมดไว้ล่วงหน้าแล้ว และคุณพร้อมที่จะคลิก "โปรแกรม"
  4. คลิก "โปรแกรม"

ไม่นานในขณะที่การเขียนโปรแกรมเสร็จสิ้น และอุปกรณ์ปลายทางของคุณก็กระพริบด้วยสวิตช์เปิด/ปิดเวอร์ชันที่แก้ไขแล้วของคุณ

3.2.1 ทดสอบการทำงาน

ทดสอบการทำงานโดยตรวจสอบว่าคุณสามารถเปลี่ยนสีของไฟ LED RGB ได้

  1. ทดสอบการทำงานโดยใช้ “เปิดการตั้งค่าพื้นฐาน” ใน PC Controller
  2. คลิกที่ "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

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *