LOGO SILIKUNU

SILICON LABS Lab 3B – Ibdel il-Gwida tal-Utent Switch On/Off

SILICON LABS Lab 3B - Immodifika Switch On/Off

Dan l-eżerċizzju prattiku se juri kif tagħmel modifika fuq waħda mill-sample applikazzjonijiet li jintbagħtu bħala parti mill-SDK Z-Wave.

Dan l-eżerċizzju huwa parti mis-serje "Z-Wave 1-Day Course".

  1. Inkludi l-użu ta' SmartStart
  2. Decrypt Z-Wave RF Frames bl-użu ta 'Zniffer
  3. 3A: Ikkompila Ixgħel/Itfi u Attiva d-Debug
    3B: Immodifika Ixgħel/Itfi
  4. Ifhem l-apparati FLiRS

 

KARATTERISTIĊI EWLENIN

  • Bidla GPIO
  • Implimenta PWM
  • Uża l-LED RGB abbord

 

1. Introduzzjoni

Dan l-eżerċizzju qed jibni fuq l-eżerċizzju preċedenti "3A: Ikkompila Ixgħel/Itfi u ppermetti d-debug", li wera kif tikkompila u tuża l-Iswiċċ Ixgħel/Itfi.ample applikazzjoni.

F'dan l-eżerċizzju se nkunu qed nagħmlu modifika lill-sample applikazzjoni, billi tibdel il-GPIO li jikkontrolla l-LED. Barra minn hekk, se nkunu qed nużaw LED RGB u nitgħallmu kif nużaw PWM biex nibdlu l-kuluri.

1.1 Rekwiżiti tal-Hardware

  • 1 Bord tal-Iżvilupp Prinċipali tal-WSTK
  • 1 Bord ta 'żvilupp tar-Radju Z-Wave: Modulu SiP ZGM130S
  • 1 Kontrollur UZB
  • 1 USB Zniffer

1.2 Rekwiżiti tas-Software

  • Simplicity Studio v4
  • Z-Wave 7 SDK
  • Kontrollur tal-PC Z-Wave
  • Z-Wave Zniffer

FIG 1 Bord tal-Iżvilupp Prinċipali b'Modulu SiP Z-Wave

Figura 1: Bord tal-Iżvilupp Prinċipali b'Modulu SiP Z-Wave

1.3 Prerekwiżiti
Eżerċizzji Hands-On preċedenti koprew kif tuża l-PC Controller u l-applikazzjoni Zniffer biex tibni netwerk Z-Wave u taqbad il-komunikazzjoni RF għal skop ta 'żvilupp. Dan l-eżerċizzju jassumi li inti familjari ma 'dawn l-għodod.

Eżerċizzji Hands-On preċedenti kopra wkoll kif tuża l-sample applikazzjonijiet li jintbagħtu bl-SDK Z-Wave. Dan l-eżerċizzju jassumi li inti familjari mal-użu u l-kumpilazzjoni ta’ wieħed mill-sample applikazzjonijiet.

 

2. Innaviga l-Interface tal-Bord

Il-qafas Z-Wave jiġi b'saff ta 'astrazzjoni tal-ħardwer (HAL) definit minn board.h u board.c, li jipprovdi l-possibbiltà li jkollok implimentazzjonijiet għal kull waħda mill-pjattaformi tal-hardware tiegħek.

Il-Hardware Abstraction Layer (HAL) huwa kodiċi ta' programm bejn il-ħardwer ta' sistema u s-softwer tagħha li jipprovdi interface konsistenti għal applikazzjonijiet li jistgħu jaħdmu fuq diversi pjattaformi ta' hardware differenti. Biex tieħu vantaġġtage ta 'din il-kapaċità, l-applikazzjonijiet għandhom jaċċessaw hardware permezz tal-API pprovduta mill-HAL, aktar milli direttament. Imbagħad, meta tmur għal hardware ġdid, għandek bżonn biss taġġorna l-HAL.

2.1 Iftaħ Sample Proġett
Għal dan l-eżerċizzju għandek bżonn tiftaħ is-Swiċċ Mixgħul / Mitfiample applikazzjoni. Jekk lestejt l-eżerċizzju "3A Ikkompila Aqleb OnOff u ppermetti d-debug", għandu diġà jinfetaħ fl-IDE ta' Simplicity Studio tiegħek.

F'din it-taqsima se nkunu qed inħarsu lejn il-bord files u jifhmu kif l-LEDs huma initialized.

  1. Mill-prinċipali file "SwitchOnOff.c", sib "ApplicationInit()" u avviż is-sejħa lil Board_Init().
  2. Poġġi l-kors tiegħek fuq Board_Init() u agħfas fuq F3 biex tiftaħ id-dikjarazzjoni.

FIG 2 Iftaħ Sample Proġett

3. F'Board_Init() innota kif LEDs li jinsabu f'BOARD_LED_COUNT qed jiġu inizjalizzati billi jissejħu Board_Con-figLed()

FIG 3 Iftaħ Sample Proġett

4. Poġġi l-kors tiegħek fuq BOARD_LED_COUNT u agħfas fuq F3 biex tiftaħ id-dikjarazzjoni.
5. L-LEDs definiti f'led_id_t huma kif ġej:

FIG 4 Iftaħ Sample Proġett

6. Irritorna lejn il-bord.c file.
7. Poġġi l-kors tiegħek fuq Board_ConfigLed() u agħfas fuq F3 biex tiftaħ id-dikjarazzjoni.
8. Avviż li l-LEDs kollha definiti f'led_id_t huma mbagħad ikkonfigurati f'Board_ConfigLed() bħala output.

FIG 5 Iftaħ Sample Proġett

Dan ifisser li l-LEDs kollha fuq il-bord tal-iżvilupp huma diġà definiti bħala outputs u lesti għall-użu.

 

3. Agħmel Modifika lil Z-Wave Sample Applikazzjoni

F'dan l-eżerċizzju se nkunu nimmodifikaw il-GPIOs użati għall-LED fl-Iswiċċ On/Off sample applikazzjoni. Fit-taqsima ta 'qabel tgħallimna kif l-LEDs kollha fuq il-bord tal-iżvilupp huma diġà inizjalizzati bħala output u lesti għall-użu.

3.1 Uża l-LED RGB

Se nkunu qed nużaw l-LED RGB abbord fuq il-modulu ta 'żvilupp Z-Wave, minflok l-LED fuq il-bord tal-buttuna.

1. Sib il-funzjoni RefreshMMI, kif jidher fil-Figura 6, fl-applikazzjoni ewlenija SwitchOnOff.c file.

FIG 6 RefreshMMI mingħajr ebda modifika

Figura 6: RefreshMMI mingħajr ebda modifika

2. Se nkunu qed nużaw il-funzjoni "Board_SetLed" iżda nibdlu l-GPIO għal
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. Ċempel "Board_SetLed" 3 darbiet kemm fl-istat OFF kif ukoll fl-istat ON, kif muri fil-Figura 7.

FIG 7 RefreshMMI modifikat biex juża RGB LED

Il-modifika l-ġdida tagħna issa hija implimentata, u inti lest biex tikkumpila.
Il-passi għall-ipprogrammar ta' apparat huma koperti fl-eżerċizzju "3A Ikkompila Ixgħel Itfi u ppermetti d-debug", u ripetuti fil-qosor hawn:

  1. Ikklikkja fuq il-"Bini" IKONA 1 buttuna biex tibda tibni l-proġett.
  2. Meta tispiċċa l-bini, jespandi l-folder "Binaries" u kklikkja bil-lemin fuq il-*.hex file biex tagħżel "Flash għall-Apparat...".
  3. Agħżel il-ħardwer konness fit-tieqa pop-up. Il-"Programmer Flash" issa huwa mimli minn qabel bid-dejta kollha meħtieġa, u inti lest li tikklikkja fuq "Programm".
  4. Ikklikkja "Programm".

Wara ftit żmien l-ipprogrammar jintemm, u t-tagħmir tat-tmiem tiegħek issa jiġi flashed bil-verżjoni modifikata tiegħek ta 'Swiċċ On/Off.

3.1.1 Ittestja l-funzjonalità

F'eżerċizzji preċedenti diġà inkludejna l-apparat f'netwerk Z-Wave sigur bl-użu ta 'SmartStart. Irreferi għall-eżerċizzju "Inkludi bl-użu ta' SmartStart" għall-istruzzjonijiet.

Ħjiel L-intern file sistema ma titħassarx bejn l-ipprogrammar mill-ġdid. Dan jippermetti li node jibqa' f'netwerk u jżomm l-istess ċwievet tan-netwerk meta tipprogrammah mill-ġdid.

Jekk għandek bżonn tibdel eż. il-frekwenza li biha jopera l-modulu jew id-DSK, trid "Ħassar" iċ-ċippa qabel ma l-frekwenza l-ġdida tinkiteb fl-NVM intern.

Bħala tali, it-tagħmir tiegħek huwa diġà inkluż fin-netwerk.

Ittestja l-funzjonalità billi tivverifika li tista' tixgħel u titfi l-LED RGB.

  • Ittestja l-funzjonalità billi tuża "Basic Set ON" u "Basic Set OFF" fil-Kontrollur tal-PC. L-LED RGB għandu jinxtegħel u jintefa.
  • L-LED RGB jista 'wkoll jinxtegħel u jintfew bl-użu ta' BTN0 fuq il-ħardwer.

Issa vverifikajna li l-modifika qed taħdem kif mistenni u bdilna b'suċċess il-GPIO użat f'Sample Applikazzjoni

3.2 Ibdel il-komponent tal-kulur RGB

F'din it-taqsima, se nkunu qed timmodifika l-LED RGB u nippruvaw inħalltu l-komponenti tal-kulur.

“Kulur fil-mudell tal-kulur RGB huwa deskritt billi jindika kemm minn kull aħmar, aħdar u blu huwa inkluż. Il-kulur huwa espress bħala triplet RGB (r,g,b), li kull komponent tiegħu jista 'jvarja minn żero għal valur massimu definit. Jekk il-komponenti kollha huma f'żero ir-riżultat huwa iswed; jekk kollha jkunu fil-massimu, ir-riżultat huwa l-aktar abjad brillanti rappreżentabbli.”

Mill-Wikipedija fuq Mudell tal-Kulur RGB.

FIG 8 Komponenti tal-Kulur RGB Imħallta Flimkien

Peress li ppermettejna l-komponenti kollha tal-kulur fis-sezzjoni preċedenti, l-LED RGB huwa abjad meta jinxtegħel. Billi tixgħel u titfi tal-komponenti individwali, nistgħu nibdlu l-LED. Barra minn hekk, billi naġġustaw l-intensità ta 'kull komponenti tal-kulur, nistgħu nagħmlu l-kuluri kollha bejniethom. Għal dan, se nkunu qed nużaw PWM biex nikkontrollaw il-GPIOs.

  1. F'ApplicationTask() inizjalizza l-PwmTimer u waqqaf il-brilli RGB għal PWM, kif muri fil-Figura 9.                                                                                FIG 9 PWM inizjalizzat f'ApplicationTask
  2. F'RefreshMMI(), se nkunu qed nużaw numru każwali għal kull komponent tal-kulur. Uża rand() biex tikseb valur ġdid kull darba li l-LED jinxtegħel.
  3. Uża DPRINTF() biex tikteb il-valur iġġenerat ġdid fil-port serjali tad-debug.
  4. Ibdel Board_SetLed() ma Board_RgbLedSetPwm(), sabiex tuża l-valur każwali.
  5. Irreferi għall-Figura 10 għal RefreshMMI() aġġornat.

FIG 10 RefreshMMI aġġornata b'PWM

Figura 10: RefreshMMI aġġornat b'PWM

Il-modifika l-ġdida tagħna issa hija implimentata, u inti lest biex tikkumpila.

  1. Ikklikkja fuq il-"Bini" IKONA 1 buttuna biex tibda tibni l-proġett.
  2. Meta tispiċċa l-bini, jespandi l-folder "Binaries" u kklikkja bil-lemin fuq il-*.hex file biex tagħżel "Flash għall-Apparat...".
  3. Agħżel il-ħardwer konness fit-tieqa pop-up. Il-"Programmer Flash" issa huwa mimli minn qabel bid-dejta kollha meħtieġa, u inti lest li tikklikkja fuq "Programm".
  4. Ikklikkja "Programm".

Wara ftit żmien l-ipprogrammar jintemm, u t-tagħmir tat-tmiem tiegħek issa jiġi flashed bil-verżjoni modifikata tiegħek ta 'Swiċċ On/Off.

3.2.1 Ittestja l-Funzjonalità

Ittestja l-funzjonalità billi tivverifika li tista 'tbiddel il-kulur tal-LED RGB.

  1. Ittestja l-funzjonalità billi tuża "Basic Set ON" fil-Kontrollur tal-PC.
  2. Ikklikkja fuq "Basic Set ON" biex tara bidla fil-kulur.

Issa vverifikajna li l-modifika qed taħdem kif mistenni u bdilna b'suċċess il-GPIO biex tuża PWM.

4 Diskussjoni

F'dan l-eżerċizzju modifikajna Switch On/Off milli tikkontrolla LED sempliċi għall-kontroll ta' LED b'ħafna kuluri. Skont il-valuri PWM, issa nistgħu nbiddlu għal kwalunkwe kulur u intensità.

  • Għandu jintuża "Binary Switch" bħala Tip ta' Apparat għal din l-applikazzjoni?
  • Liema klassijiet ta 'kmand huma aktar adattati għal LED b'ħafna kuluri?

Sabiex twieġeb il-mistoqsija, għandek tirreferi għall-ispeċifikazzjoni Z-Wave:

  • Speċifikazzjoni tat-Tip ta' Apparat Z-Wave Plus v2
  • Speċifikazzjoni tal-Klassi tal-Kmand tal-Applikazzjoni Z-Wave

Dan jikkonkludi t-tutorja dwar kif timmodifika u tbiddel il-GPIOs ta 'Z-Wave Sample Applikazzjoni.

 

Aqra Aktar Dwar Dan il-Manwal u Niżżel il-PDF:

Dokumenti / Riżorsi

SILICON LABS Lab 3B - Immodifika Switch On/Off [pdfGwida għall-Utent
Lab 3B, Immodifika Swiċċ, Mixgħul, Mitfi, Z-Wave, SDK

Referenzi

Ħalli kumment

L-indirizz elettroniku tiegħek mhux se jiġi ppubblikat. L-oqsma meħtieġa huma mmarkati *