SILICON LABS Lab 3B – Modify Switch On/Off User Guide
Αυτή η πρακτική άσκηση θα δείξει πώς να κάνετε μια τροποποίηση σε ένα από τα sampΟι εφαρμογές που αποστέλλονται ως μέρος του Z-Wave SDK.
Αυτή η άσκηση είναι μέρος της σειράς "Z-Wave 1-Day Course".
- Συμπεριλάβετε τη χρήση του SmartStart
- Αποκρυπτογραφήστε τα πλαίσια RF Z-Wave χρησιμοποιώντας το Zniffer
- 3A: Compile Switch On/Off και Enable Debug
3B: Τροποποίηση διακόπτη On/Off - Κατανοήστε τις συσκευές FLiRS
ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ
- Αλλαγή GPIO
- Εφαρμογή PWM
- Χρησιμοποιήστε ενσωματωμένο RGB LED
1. Εισαγωγή
Αυτή η άσκηση βασίζεται στην προηγούμενη άσκηση «3A: Compile Switch On/Off and enable debug», η οποία έδειξε πώς να μεταγλωττίσετε και να χρησιμοποιήσετε το Switch On/Off sampη εφαρμογή.
Σε αυτή την άσκηση θα κάνουμε μια τροποποίηση στο sample εφαρμογή, αλλάζοντας το GPIO που ελέγχει το LED. Επιπλέον, θα χρησιμοποιήσουμε ένα RGB LED και θα μάθουμε πώς να χρησιμοποιούμε το PWM για να αλλάξουμε χρώματα.
1.1 Απαιτήσεις υλικού
- 1 Κύριο Συμβούλιο Ανάπτυξης WSTK
- 1 Z-Wave Radio Development Board: ZGM130S SiP Module
- 1 ελεγκτής UZB
- 1 USB Zniffer
1.2 Απαιτήσεις λογισμικού
- Simplicity Studio 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. Αυτή η άσκηση προϋποθέτει ότι είστε εξοικειωμένοι με τη χρήση και τη σύνταξη ενός από τα sample εφαρμογές.
Το πλαίσιο Z-Wave συνοδεύεται από ένα στρώμα αφαίρεσης υλικού (HAL) που ορίζεται από το board.h και το board.c, παρέχοντας τη δυνατότητα υλοποίησης για κάθε μία από τις πλατφόρμες υλικού σας.
Το Hardware Abstraction Layer (HAL) είναι κώδικας προγράμματος μεταξύ του υλικού ενός συστήματος και του λογισμικού του που παρέχει μια συνεπή διεπαφή για εφαρμογές που μπορούν να εκτελεστούν σε πολλές διαφορετικές πλατφόρμες υλικού. Για να λάβω μπροστάtagΑπό αυτήν τη δυνατότητα, οι εφαρμογές θα πρέπει να έχουν πρόσβαση στο υλικό μέσω του API που παρέχεται από το HAL και όχι απευθείας. Στη συνέχεια, όταν μεταβαίνετε σε νέο υλικό, χρειάζεται μόνο να ενημερώσετε το HAL.
2.1 Ανοίξτε το Sample Project
Για αυτήν την άσκηση πρέπει να ανοίξετε το Switch On / Off sample εφαρμογή. Εάν ολοκληρώσατε την άσκηση "3A Compile Switch OnOff and enable debug", θα πρέπει να είναι ήδη ανοιχτή στο Simplicity Studio IDE.
Σε αυτή την ενότητα θα εξετάσουμε τον πίνακα files και κατανοήστε πώς αρχικοποιούνται τα 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. Επιστρέψτε στον πίνακα.γ file.
7. Τοποθετήστε τον μαθητή σας στο Board_ConfigLed() και πατήστε F3 για να ανοίξετε τη δήλωση.
8. Σημειώστε ότι όλα τα LED που ορίζονται στο led_id_t διαμορφώνονται στη συνέχεια στο Board_ConfigLed() ως έξοδο.
Αυτό σημαίνει ότι όλα τα LED στην πλακέτα ανάπτυξης έχουν ήδη οριστεί ως έξοδοι και είναι έτοιμα για χρήση.
3. Κάντε μια τροποποίηση σε ένα Z-Wave Sample Εφαρμογή
Σε αυτήν την άσκηση θα τροποποιήσουμε τα GPIO που χρησιμοποιούνται για το LED στο διακόπτη On/Offample εφαρμογή. Στην προηγούμενη ενότητα μάθαμε πώς όλα τα LED στην πλακέτα ανάπτυξης έχουν ήδη αρχικοποιηθεί ως έξοδο και είναι έτοιμα για χρήση.
3.1 Χρησιμοποιήστε το RGB 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» είναι τώρα προγεμισμένος με όλα τα απαραίτητα δεδομένα και είστε έτοιμοι να κάνετε κλικ στο «Πρόγραμμα».
- Κάντε κλικ στο «Πρόγραμμα».
Μετά από λίγο, ο προγραμματισμός τελειώνει και η τελική σας συσκευή αναβοσβήνει τώρα με την τροποποιημένη έκδοση του Switch On/Off.
3.1.1 Ελέγξτε τη λειτουργικότητα
Σε προηγούμενες ασκήσεις έχουμε ήδη συμπεριλάβει τη συσκευή σε ένα ασφαλές δίκτυο Z-Wave χρησιμοποιώντας το SmartStart. Ανατρέξτε στην άσκηση «Συμπερίληψη χρήσης του SmartStart» για οδηγίες.
Υπόδειξη Το εσωτερικό file το σύστημα δεν διαγράφεται μεταξύ του επαναπρογραμματισμού. Αυτό επιτρέπει σε έναν κόμβο να παραμένει σε ένα δίκτυο και να διατηρεί τα ίδια κλειδιά δικτύου όταν τον επαναπρογραμματίζετε.
Εάν πρέπει να αλλάξετε π.χ. τη συχνότητα με την οποία λειτουργεί η μονάδα ή το DSK, πρέπει να «Διαγράψετε» το τσιπ προτού η νέα συχνότητα εγγραφεί στο εσωτερικό NVM.
Ως εκ τούτου, η συσκευή σας περιλαμβάνεται ήδη στο δίκτυο.
Ελέγξτε τη λειτουργικότητα επιβεβαιώνοντας ότι μπορείτε να ενεργοποιήσετε και να απενεργοποιήσετε τη λυχνία LED RGB.
- Ελέγξτε τη λειτουργικότητα χρησιμοποιώντας το "Basic Set ON" και το "Basic Set OFF" στον ελεγκτή υπολογιστή. Το LED RGB θα πρέπει να ανάβει και να σβήνει.
- Το LED RGB μπορεί επίσης να ενεργοποιηθεί και να απενεργοποιηθεί χρησιμοποιώντας το BTN0 στο υλικό.
Έχουμε πλέον επαληθεύσει ότι η τροποποίηση λειτουργεί όπως αναμενόταν και αλλάξαμε με επιτυχία το GPIO που χρησιμοποιείται σε ένα Sample Εφαρμογή
3.2 Αλλάξτε το στοιχείο χρώματος RGB
Σε αυτήν την ενότητα, θα τροποποιήσουμε το LED RGB και θα προσπαθήσουμε να αναμίξουμε τα στοιχεία χρώματος.
«Ένα χρώμα στο χρωματικό μοντέλο RGB περιγράφεται υποδεικνύοντας πόσο από καθένα από τα κόκκινα, πράσινα και μπλε περιλαμβάνονται. Το χρώμα εκφράζεται ως τριπλή RGB (r,g,b), κάθε στοιχείο της οποίας μπορεί να ποικίλλει από μηδέν έως μια καθορισμένη μέγιστη τιμή. Εάν όλα τα στοιχεία είναι στο μηδέν, το αποτέλεσμα είναι μαύρο. αν όλα είναι στο μέγιστο, το αποτέλεσμα είναι το πιο φωτεινό αναπαραστάσιμο λευκό."
Από τη Wikipedia και μετά Έγχρωμο μοντέλο 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» είναι τώρα προγεμισμένος με όλα τα απαραίτητα δεδομένα και είστε έτοιμοι να κάνετε κλικ στο «Πρόγραμμα».
- Κάντε κλικ στο «Πρόγραμμα».
Μετά από λίγο, ο προγραμματισμός τελειώνει και η τελική σας συσκευή αναβοσβήνει τώρα με την τροποποιημένη έκδοση του Switch On/Off.
3.2.1 Ελέγξτε τη λειτουργικότητα
Ελέγξτε τη λειτουργικότητα επιβεβαιώνοντας ότι μπορείτε να αλλάξετε το χρώμα του LED RGB.
- Ελέγξτε τη λειτουργικότητα χρησιμοποιώντας το "Basic Set ON" στον ελεγκτή υπολογιστή.
- Κάντε κλικ στο "Βασική ρύθμιση ON" για να δείτε μια αλλαγή στο χρώμα.
Έχουμε πλέον επαληθεύσει ότι η τροποποίηση λειτουργεί όπως αναμενόταν και αλλάξαμε με επιτυχία το GPIO για χρήση PWM.
4 Συζήτηση
Σε αυτή την άσκηση έχουμε τροποποιήσει το Switch On/Off από τον έλεγχο ενός απλού LED στον έλεγχο ενός πολύχρωμου LED. Ανάλογα με τις τιμές PWM, μπορούμε πλέον να αλλάξουμε σε οποιοδήποτε χρώμα και ένταση.
- Πρέπει να χρησιμοποιηθεί ένας "Δυαδικός διακόπτης" ως Τύπος συσκευής για αυτήν την εφαρμογή;
- Ποιες κατηγορίες εντολών είναι πιο κατάλληλες για ένα πολύχρωμο LED;
Για να απαντήσετε στην ερώτηση, θα πρέπει να ανατρέξετε στην προδιαγραφή Z-Wave:
- Προδιαγραφή τύπου συσκευής Z-Wave Plus v2
- Προδιαγραφές κλάσης εντολών εφαρμογής Z-Wave
Αυτό ολοκληρώνει το σεμινάριο σχετικά με τον τρόπο τροποποίησης και αλλαγής των GPIO ενός Z-Wave Sample Εφαρμογή.
Διαβάστε περισσότερα για αυτό το εγχειρίδιο και κατεβάστε το PDF:
Έγγραφα / Πόροι
![]() |
SILICON LABS Lab 3B - Modify Switch On/Off [pdf] Οδηγός χρήστη Lab 3B, Modify Switch, On, Off, Z-Wave, SDK |