SILICON LABS Lab 3B - Gebruikershandleiding voor Aan/Uit wijzigen
Deze praktische oefening laat zien hoe u een wijziging kunt aanbrengen in een van de sampbestandsapplicaties die worden geleverd als onderdeel van de Z-Wave SDK.
Deze oefening maakt deel uit van de serie “Z-Wave 1-daagse cursus”.
- Inclusief het gebruik van SmartStart
- Decodeer Z-Wave RF-frames met behulp van de Zniffer
- 3A: Compileer Aan/uit schakelen en Foutopsporing inschakelen
3B: Wijzig schakelaar aan/uit - Begrijp FLiRS-apparaten
BELANGRIJKSTE KENMERKEN
- GPIO wijzigen
- PWM implementeren
- Gebruik ingebouwde RGB-LED
1. Inleiding
Deze oefening bouwt voort op de vorige oefening “3A: Compile Switch On/Off and enable debug”, waarin werd gedemonstreerd hoe u de Switch On/Off-s compileert en gebruiktample applicatie.
In deze oefening zullen we een wijziging aanbrengen in de sample-toepassing, door de GPIO te wijzigen die de LED bestuurt. Daarnaast gaan we een RGB-LED gebruiken en leren we hoe we PWM kunnen gebruiken om kleuren te veranderen.
1.1 Hardwarevereisten
- 1 WSTK Hoofdontwikkelingsbord
- 1 Z-Wave-radio-ontwikkelingsbord: ZGM130S SiP-module
- 1 UZB-controller
- 1 USB-zniffer
1.2 Softwarevereisten
- Eenvoud Studio v4
- Z-Wave 7 SDK
- Z-Wave pc-controller
- Z-Wave Zniffer
Figuur 1: Hoofdontwikkelingsbord met Z-Wave SiP-module
1.3 Voorwaarden
Eerdere praktijkoefeningen hebben betrekking op het gebruik van de pc-controller en de Zniffer-applicatie om een Z-Wave-netwerk op te bouwen en de RF-communicatie vast te leggen voor ontwikkelingsdoeleinden. Bij deze oefening wordt ervan uitgegaan dat u bekend bent met deze hulpmiddelen.
In eerdere praktijkoefeningen is ook behandeld hoe u de s kunt gebruikenampbestandsapplicaties die worden meegeleverd met de Z-Wave SDK. Bij deze oefening wordt ervan uitgegaan dat u bekend bent met het gebruiken en compileren van een van de sample toepassingen.
Het Z-Wave-framework wordt geleverd met een hardware-abstractielaag (HAL) gedefinieerd door board.h en board.c, waardoor de mogelijkheid wordt geboden om implementaties te hebben voor elk van uw hardwareplatforms.
De Hardware Abstraction Layer (HAL) is programmacode tussen de hardware van een systeem en de software die een consistente interface biedt voor applicaties die op verschillende hardwareplatforms kunnen draaien. Om voordeel te halentagVanwege deze mogelijkheid moeten applicaties toegang krijgen tot hardware via de API die door de HAL wordt geleverd, in plaats van rechtstreeks. Wanneer u vervolgens overstapt op nieuwe hardware, hoeft u alleen de HAL bij te werken.
2.1 Open Samphet project
Voor deze oefening moet je de Aan/Uit-schakelaars openenample toepassing. Als u de oefening “3A Compile Switch OnOff and enable debug” hebt voltooid, zou deze al geopend moeten zijn in uw Simplicity Studio IDE.
In deze sectie bekijken we het bord files en begrijp hoe de LED's worden geïnitialiseerd.
- Vanuit de hoofd file “SwitchOnOff.c”, zoek “ApplicationInit()” en let op de aanroep van Board_Init().
- Plaats uw courser op Board_Init() en druk op F3 om de declaratie te openen.
3. Merk in Board_Init() op hoe LED's in BOARD_LED_COUNT worden geïnitialiseerd door Board_Con-figLed() aan te roepen
4. Plaats je courser op BOARD_LED_COUNT en druk op F3 om de aangifte te openen.
5. De LED's gedefinieerd in led_id_t zijn als volgt:
6. Terug naar het bestuur.c file.
7. Plaats uw courser op Board_ConfigLed() en druk op F3 om de declaratie te openen.
8. Merk op dat alle LED's die in led_id_t zijn gedefinieerd, vervolgens in Board_ConfigLed() als uitvoer worden geconfigureerd.
Wat dit betekent is dat alle LED's op het ontwikkelbord al zijn gedefinieerd als uitgangen en klaar zijn voor gebruik.
3. Breng een wijziging aan een Z-Wave S aanampde toepassing
In deze oefening zullen we de GPIO's aanpassen die worden gebruikt voor de LED in de aan/uit-schakelaarsample toepassing. In de vorige sectie hebben we geleerd hoe alle LED's op het ontwikkelbord al zijn geïnitialiseerd als uitvoer en klaar voor gebruik.
3.1 Gebruik de RGB-LED
We zullen de ingebouwde RGB-LED op de Z-Wave-ontwikkelmodule gebruiken, in plaats van de LED op het knoppenbord.
1. Zoek de RefreshMMI-functie, zoals weergegeven in Figuur 6, in de hoofdtoepassing SwitchOnOff.c file.
Figuur 6: RefreshMMI zonder enige aanpassingen
2. We zullen de functie "Board_SetLed" gebruiken, maar veranderen de GPIO naar
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B
3. Roep “Board_SetLed” drie keer op, zowel in de UIT- als in de AAN-status, zoals weergegeven in Afbeelding 3.
Onze nieuwe wijziging is nu geïmplementeerd en u bent klaar om te compileren.
De stappen om een apparaat te programmeren worden behandeld in oefening “3A Compile Switch OnOff and enable debug”, en worden hier kort herhaald:
- Klik op “Bouw”
knop om te beginnen met het bouwen van het project.
- Wanneer de build is voltooid, vouwt u de map "Binaries" uit en klikt u met de rechtermuisknop op *.hex file om “Flash naar apparaat...” te selecteren.
- Selecteer de aangesloten hardware in het pop-upvenster. De “Flash Programmer” is nu vooraf gevuld met alle benodigde gegevens en u bent klaar om op “Programmeren” te klikken.
- Klik op “Programma”.
Na korte tijd is de programmering voltooid en wordt uw eindapparaat nu geflasht met uw aangepaste versie van Switch On/Off.
3.1.1 Test de functionaliteit
In eerdere oefeningen hebben we het apparaat al opgenomen in een beveiligd Z-Wave-netwerk met behulp van SmartStart. Zie oefening “Inclusief het gebruik van SmartStart” voor instructies.
Tip De interne file systeem wordt tussen herprogrammering niet gewist. Hierdoor kan een knooppunt in een netwerk blijven en dezelfde netwerksleutels behouden wanneer u het opnieuw programmeert.
Als u bijvoorbeeld de frequentie waarop de module werkt of de DSK moet wijzigen, moet u de chip 'wissen' voordat de nieuwe frequentie naar de interne NVM wordt geschreven.
Uw apparaat is dus al opgenomen in het netwerk.
Test de functionaliteit door te controleren of u de RGB-LED kunt in- en uitschakelen.
- Test de functionaliteit met behulp van de “Basisset AAN” en “Basisset UIT” in de PC-controller. De RGB-LED moet AAN en UIT gaan.
- De RGB-LED kan ook worden in- en uitgeschakeld met behulp van BTN0 op de hardware.
We hebben nu geverifieerd dat de wijziging werkt zoals verwacht en hebben met succes de GPIO gewijzigd die in een Sampde toepassing
3.2 Wijzig de RGB-kleurcomponent
In deze sectie zullen we de RGB-LED aanpassen en proberen de kleurcomponenten te mengen.
“Een kleur in het RGB-kleurmodel wordt beschreven door aan te geven hoeveel van elk van de rode, groene en blauwe kleuren is inbegrepen. De kleur wordt uitgedrukt als een RGB-triplet (r,g,b), waarvan elke component kan variëren van nul tot een gedefinieerde maximale waarde. Als alle componenten op nul staan, is het resultaat zwart; als ze allemaal op maximum staan, is het resultaat het helderst representeerbare wit.”
Vanaf Wikipedia RGB-kleurenmodel.
Omdat we in het vorige gedeelte alle kleurcomponenten hebben ingeschakeld, is de RGB-LED wit wanneer deze AAN staat. Door de afzonderlijke componenten aan en uit te zetten, kunnen we de LED veranderen. Door de intensiteit van elke kleurcomponent aan te passen, kunnen we bovendien alle kleuren ertussen maken. Daarvoor zullen we PWM gebruiken om de GPIO's te besturen.
- Initialiseer in ApplicationTask() de PwmTimer en stel de RGB-pinnen in op PWM, zoals weergegeven in afbeelding 9.
- In RefreshMMI() gebruiken we een willekeurig getal voor elke kleurcomponent. Gebruik rand() om elke keer dat de LED wordt ingeschakeld een nieuwe waarde te krijgen.
- Gebruik DPRINTF() om de nieuw gegenereerde waarde naar de seriële foutopsporingspoort te schrijven.
- Vervang Board_SetLed() door Board_RgbLedSetPwm() om de willekeurige waarde te gebruiken.
- Raadpleeg Figuur 10 voor de bijgewerkte RefreshMMI().
Figuur 10: RefreshMMI bijgewerkt met PWM
Onze nieuwe wijziging is nu geïmplementeerd en u bent klaar om te compileren.
- Klik op “Bouw”
knop om te beginnen met het bouwen van het project.
- Wanneer de build is voltooid, vouwt u de map "Binaries" uit en klikt u met de rechtermuisknop op *.hex file om “Flash naar apparaat...” te selecteren.
- Selecteer de aangesloten hardware in het pop-upvenster. De “Flash Programmer” is nu vooraf gevuld met alle benodigde gegevens en u bent klaar om op “Programmeren” te klikken.
- Klik op “Programma”.
Na korte tijd is de programmering voltooid en wordt uw eindapparaat nu geflasht met uw aangepaste versie van Switch On/Off.
3.2.1 Test de functionaliteit
Test de functionaliteit door te controleren of u de kleur van de RGB-LED kunt wijzigen.
- Test de functionaliteit met behulp van de “Basisset AAN” in de PC-controller.
- Klik op “Basisset AAN” om een kleurverandering te zien.
We hebben nu geverifieerd dat de wijziging werkt zoals verwacht en hebben met succes de GPIO gewijzigd om PWM te gebruiken.
4 Discussie
In deze oefening hebben we het in- en uitschakelen aangepast van het besturen van een eenvoudige LED naar het besturen van een meerkleurige LED. Afhankelijk van de PWM-waarden kunnen we nu overschakelen naar elke kleur en intensiteit.
- Moet voor deze toepassing een “binaire schakelaar” als apparaattype worden gebruikt?
- Welke commandoklassen zijn beter geschikt voor een meerkleurige LED?
Om de vraag te beantwoorden, moet u de Z-Wave-specificatie raadplegen:
- Z-Wave Plus v2 Apparaattypespecificatie
- Specificatie van Z-Wave-toepassingsopdrachtklasse
Hiermee is de tutorial afgesloten over het wijzigen en wijzigen van de GPIO's van een Z-Wave Sample Applicatie.
Lees meer over deze handleiding en download PDF:
Documenten / Bronnen
![]() |
SILICON LABS Lab 3B - Wijzig schakelaar aan/uit [pdf] Gebruikershandleiding Lab 3B, schakelaar wijzigen, aan, uit, Z-Wave, SDK |