СИЛИКОН ЛОГО

SILICON LABS Lab 3B – өзгөртүү күйгүзүү/өчүрүү Колдонуучунун колдонмосу

SILICON LABS Lab 3B - өзгөртүү күйгүзүү/өчүрүү

Бул практикалык көнүгүү слардын бирине кантип өзгөртүү киргизүүнү көрсөтөтampZ-Wave SDK бөлүгү катары жөнөтүлгөн тиркемелер.

Бул көнүгүү "Z-Wave 1 күндүк курс" сериясынын бир бөлүгү болуп саналат.

  1. SmartStart колдонууну камтыйт
  2. Zniffer аркылуу Z-Wave RF алкактарынын шифрин чечиңиз
  3. 3A: Компиляция которуштурууну күйгүзүү/өчүрүү жана мүчүлүштүктөрдү оңдоону иштетүү
    3B: күйгүзүү/өчүрүү өзгөртүү
  4. FLiRS түзмөктөрүн түшүнүү

 

НЕГИЗГИ ФУНКЦИЯЛАРЫ

  • GPIO өзгөртүү
  • PWM ишке ашыруу
  • Борттогу RGB LEDди колдонуңуз

 

1. Киришүү

Бул көнүгүү "3A: Compile Switch On/Off жана мүчүлүштүктөрдү оңдоону иштетүү" деген мурунку көнүгүүлөрдүн үстүнө курулууда, ал күйгүзүү/өчүрүүнү компиляциялоону жана колдонууну көрсөткөн.ample application.

Бул көнүгүүдө биз с үчүн өзгөртүү киргизебизample колдонмо, LED башкарган GPIO өзгөртүү менен. Мындан тышкары, биз RGB LEDди колдонуп, түстөрдү өзгөртүү үчүн PWMди кантип колдонууну үйрөнөбүз.

1.1 Аппараттык камсыздоого талаптар

  • 1 WSTK Негизги өнүктүрүү кеңеши
  • 1 Z-Wave радио өнүктүрүү башкармалыгы: ZGM130S SiP модулу
  • 1 UZB Controller
  • 1 USB Zniffer

1.2 Программалык камсыздоого талаптар

  • Simplicity Studio v4
  • Z-Wave 7 SDK
  • Z-Wave PC контроллери
  • Z-Wave Zniffer

FIG 1 Z-Wave SiP модулу менен негизги өнүктүрүү кеңеши

1-сүрөт: Z-Wave SiP модулу менен негизги өнүктүрүү кеңеши

1.3 Пререквизиттер
Мурунку Hands-On көнүгүүлөрү Z-Wave тармагын куруу жана өнүктүрүү максатында RF байланышын тартуу үчүн PC Controller жана Zniffer тиркемесин кантип колдонууну камтыган. Бул көнүгүү сиз бул куралдар менен тааныш экениңизди билдирет.

Мурунку Hands-On көнүгүүлөр, ошондой эле с кантип колдонууну камтыганampZ-Wave SDK менен жөнөтүлгөн тиркемелер. Бул көнүгүү сиз s бирин колдонуу жана түзүү менен тааныш деп болжолдойтample колдонмолору.

 

2. Башкарманын интерфейсинде навигация

Z-Wave алкагы board.h жана board.c тарабынан аныкталган аппараттык абстракция катмары (HAL) менен келет, бул сиздин ар бир аппараттык платформаңызды ишке ашыруу мүмкүнчүлүгүн берет.

Аппараттык абстракция катмары (HAL) – бул системанын аппараттык камсыздоосу менен анын программалык камсыздоосунун ортосундагы программалык код, ал бир нече түрдүү аппараттык платформаларда иштей турган тиркемелер үчүн ырааттуу интерфейсти камсыз кылат. Аванс алууtagБул мүмкүнчүлүктөн улам, тиркемелер жабдыкка түз эмес, HAL тарабынан берилген API аркылуу кирүүлөрү керек. Андан кийин, сиз жаңы жабдыкка өткөндө, HALды жаңыртышыңыз керек.

2.1 Ачык Sample Project
Бул көнүгүү үчүн сиз күйгүзүү / өчүрүү баскычын ачышыңыз керекample application. Эгерде сиз "3A Compile Switch OnOff жана мүчүлүштүктөрдү оңдоону иштетүү" көнүгүүсүн аткарган болсоңуз, ал Simplicity Studio IDEде ачылган болушу керек.

Бул бөлүмдө биз тактаны карап чыгабыз fileс жана LED кантип инициализацияланганын түшүнүңүз.

  1. Негизгиден file “SwitchOnOff.c”, “ApplicationInit()” табыңыз жана Board_Init()га чалууну байкаңыз.
  2. Курсуңузду Board_Init()ге коюп, декларацияны ачуу үчүн F3 баскычын басыңыз.

FIG 2 Ачык Sample Project

3. Board_Init()де BOARD_LED_COUNT камтылган диоддор Board_Con-figLed() деп аталган кантип инициализацияланып жатканын байкаңыз.

FIG 3 Ачык Sample Project

4. Декларацияны ачуу үчүн курстарыңызды BOARD_LED_COUNTга коюп, F3 баскычын басыңыз.
5. led_id_t ичинде аныкталган LED'лер төмөнкүдөй:

FIG 4 Ачык Sample Project

6. Тактага кайтуу.c file.
7. Курстарыңызды Board_ConfigLed()ге коюп, декларацияны ачуу үчүн F3 баскычын басыңыз.
8. led_id_t ичинде аныкталган бардык LED'лер андан кийин Board_ConfigLed() ичинде чыгаруу катары конфигурацияланганына көңүл буруңуз.

FIG 5 Ачык Sample Project

Бул эмнени билдирет, иштеп чыгуу тактасындагы бардык LED'лер мурунтан эле натыйжалар катары аныкталган жана колдонууга даяр.

 

3. Z-Wave S модификациясын жасаңызample Application

Бул көнүгүүдө биз күйгүзүү/өчүрүү баскычтарында LED үчүн колдонулган GPIOлорду өзгөртөбүзample application. Мурунку бөлүмдө биз иштеп чыгуу тактасындагы бардык диоддор кантип инициализацияланганын жана колдонууга даяр экенин билдик.

3.1 RGB LEDди колдонуңуз

Биз баскыч тактасындагы LEDдин ордуна Z-Wave иштеп чыгуу модулунда борттогу RGB LEDди колдонобуз.

1. SwitchOnOff.c негизги тиркемесинде 6-сүрөттө көрүнүп тургандай RefreshMMI функциясын табыңыз file.

FIG 6 RefreshMMI эч кандай өзгөртүүсүз

Сүрөт 6: RefreshMMI эч кандай өзгөртүүсүз

2. Биз "Board_SetLed" функциясын колдонобуз, бирок GPIOну өзгөртөбүз
o BOARD_RGB1_R
o BOARD_RGB1_G
o BOARD_RGB1_B

3. “Board_SetLed” 3-сүрөттө көрсөтүлгөндөй, ӨЧҮРҮҮ абалында да, ON абалында да 7 жолу чалыңыз.

FIG 7 RefreshMMI RGB LEDди колдонуу үчүн өзгөртүлгөн

Биздин жаңы өзгөртүүлөр азыр ишке ашырылды жана сиз компиляциялоого даярсыз.
Түзмөктү программалоо кадамдары "3A Compile Switch OnOff жана мүчүлүштүктөрдү оңдоону иштетүү" көнүгүүсүндө камтылган жана бул жерде кыскача кайталанат:

  1. "Куруу" баскычын чыкылдатыңыз ICON 1 долбоорду курууну баштоо үчүн баскыч.
  2. Куруу аяктагандан кийин, "Binary" папкасын кеңейтип, *.hexти оң баскыч менен чыкылдатыңыз file "Түзмөккө жарк" тандоо үчүн.
  3. Калкыма терезеден туташкан жабдыкты тандаңыз. "Flash Programmer" азыр бардык керектүү маалыматтар менен толтурулган жана сиз "Программаны" басууга даярсыз.
  4. "Программа" чыкылдатыңыз.

Бир аз убакыттан кийин программалоо аяктайт жана акыркы түзмөгүңүз азыр күйгүзүү/өчүрүүнүн өзгөртүлгөн версиясы менен жарк этет.

3.1.1 Функционалдыкты текшерүү

Мурунку көнүгүүлөрдө биз SmartStart аркылуу аппаратты коопсуз Z-Wave тармагына кошконбуз. Көрсөтмөлөрдү алуу үчүн “SmartStart колдонууну кошуу” көнүгүүсүн караңыз.

Ички кеңеш file система кайра программалоонун ортосунда өчүрүлбөйт. Бул түйүнгө тармакта калууга жана аны кайра программалаганыңызда ошол эле тармак баскычтарын сактоого мүмкүндүк берет.

Эгер сиз, мисалы, модулдун иштеген жыштыгын же DSKди өзгөртүү керек болсо, жаңы жыштык ички NVMге жазылгыча чипти “тазалоо” керек.

Ошентип, сиздин түзмөгүңүз мурунтан эле тармакка киргизилген.

RGB LEDди КҮЙГҮЗҮҮ жана ӨЧҮРҮҮ мүмкүндүгүн текшерүү менен функцияны сынап көрүңүз.

  • ЖК контроллериндеги “Негизги топтом ON” жана “Негизги орнотуу ӨЧҮРҮҮ” аркылуу функционалдуулукту текшериңиз. RGB LED күйгүзүлүп жана өчүрүлүп турушу керек.
  • RGB LED да аппараттык BTN0 колдонуу менен КҮЙГҮЗҮҮ жана ӨЧҮРҮҮ мүмкүн.

Биз азыр модификация күтүлгөндөй иштеп жатканын текшердик жана S форматында колдонулган GPIOну ийгиликтүү өзгөрттүкample Application

3.2 RGB түс компонентин өзгөртүү

Бул бөлүмдө биз RGB LEDди өзгөртүп, түс компоненттерин аралаштырууга аракет кылабыз.

“RGB түс моделиндеги түс кызыл, жашыл жана көк түстөрдүн ар биринин канчасы камтылганын көрсөтүү менен сүрөттөлөт. Түс RGB триплет (r,g,b) катары көрсөтүлөт, анын ар бир компоненти нөлдөн аныкталган максималдуу мааниге чейин өзгөрүшү мүмкүн. Эгерде бардык компоненттер нөлгө барабар болсо, натыйжа кара; эгерде бардыгы максималдуу болсо, натыйжа эң ачык ак түс болуп саналат."

Википедиядан RGB түс модели.

FIG 8 RGB түстүү компоненттери аралаш

Мурунку бөлүмдө бардык түстүү компоненттерди иштеткендиктен, RGB LED күйгүзүлгөндө ак болот. Жеке компоненттерди күйгүзүү жана өчүрүү менен биз LEDди өзгөртө алабыз. Мындан тышкары, ар бир түс компоненттеринин интенсивдүүлүгүн тууралоо менен, биз алардын ортосундагы бардык түстөрдү жасай алабыз. Бул үчүн, биз GPIO башкаруу үчүн PWM колдонобуз.

  1. ApplicationTask() ичинде PwmTimerди инициализациялаңыз жана 9-сүрөттө көрсөтүлгөндөй RGB пиндерин PWMге орнотуңуз.                                                                                FIG 9 PWM ApplicationTaskте инициализацияланган
  2. RefreshMMI() ичинде биз ар бир түс компоненти үчүн кокус санды колдонобуз. LED күйгүзүлгөн сайын жаңы маани алуу үчүн rand() колдонуңуз.
  3. Жаңы түзүлгөн маанини сериялык мүчүлүштүктөрдү оңдоо портуна жазуу үчүн DPRINTF() колдонуңуз.
  4. Кокус маанини колдонуу үчүн Board_SetLed() ды Board_RgbLedSetPwm() менен алмаштырыңыз.
  5. Жаңыртылган RefreshMMI() үчүн 10-сүрөттү караңыз.

FIG 10 RefreshMMI PWM менен жаңыртылды

10-сүрөт: RefreshMMI PWM менен жаңыртылган

Биздин жаңы өзгөртүүлөр азыр ишке ашырылды жана сиз компиляциялоого даярсыз.

  1. "Куруу" баскычын чыкылдатыңыз ICON 1 долбоорду курууну баштоо үчүн баскыч.
  2. Куруу аяктагандан кийин, "Binary" папкасын кеңейтип, *.hexти оң баскыч менен чыкылдатыңыз file "Түзмөккө жарк" тандоо үчүн.
  3. Калкыма терезеден туташкан жабдыкты тандаңыз. "Flash Programmer" азыр бардык керектүү маалыматтар менен толтурулган жана сиз "Программаны" басууга даярсыз.
  4. "Программа" чыкылдатыңыз.

Бир аз убакыттан кийин программалоо аяктайт жана акыркы түзмөгүңүз азыр күйгүзүү/өчүрүүнүн өзгөртүлгөн версиясы менен жарк этет.

3.2.1 Функционалдыкты текшерүү

RGB LED түсүн өзгөртө аларыңызды текшерүү менен функцияны текшериңиз.

  1. ЖК контроллериндеги “Негизги орнотуу ON” аркылуу функцияны текшериңиз.
  2. Түстүн өзгөрүшүн көрүү үчүн "Негизги Set ON" дегенди басыңыз.

Биз азыр өзгөртүү күтүлгөндөй иштеп жатканын текшерип, PWM колдонуу үчүн GPIOну ийгиликтүү өзгөрттүк.

4.Талкуулоо

Бул көнүгүүдө биз күйгүзүү/өчүрүү режимин жөнөкөй LEDди башкаруудан көп түстүү LEDди башкарууга чейин өзгөрттүк. PWM баалуулуктарына жараша, биз азыр каалаган түскө жана интенсивдүүлүккө өзгөртө алабыз.

  • Бул колдонмо үчүн Түзмөк түрү катары "Экилик которуу" колдонулушу керекпи?
  • Кайсы командалык класстар көп түстүү LED үчүн ылайыктуу?

Суроого жооп берүү үчүн Z-Wave спецификациясына кайрылышыңыз керек:

  • Z-Wave Plus v2 Түзмөк түрүнүн спецификациясы
  • Z-Wave Колдонмо Command Class Specification

Бул Z-Wave S GPIOлорун кантип өзгөртүү жана өзгөртүү боюнча окуу куралын жыйынтыктайт.ample Application.

 

Бул колдонмо жөнүндө көбүрөөк окуу жана PDF жүктөп алуу:

Документтер / Ресурстар

SILICON LABS Lab 3B - өзгөртүү күйгүзүү/өчүрүү [pdf] Колдонуучунун колдонмосу
Lab 3B, өзгөртүү которуу, күйгүзүү, өчүрүү, Z-Wave, SDK

Шилтемелер

Комментарий калтырыңыз

Сиздин электрондук почта дарегиңиз жарыяланбайт. Талап кылынган талаалар белгиленген *