СИЛІКОНОВИЙ ЛОГОТИП

SILICON LABS Lab 3B – Посібник користувача щодо зміни перемикача

SILICON LABS Lab 3B - зміна перемикача увімкнення/вимкнення

Ця практична вправа продемонструє, як внести зміни до одного з sample програми, які постачаються як частина Z-Wave SDK.

Ця вправа є частиною серії «1-денний курс Z-Wave».

  1. Включити за допомогою SmartStart
  2. Розшифруйте RF-кадри Z-Wave за допомогою Zniffer
  3. 3A: Увімкніть/вимкніть компіляції та ввімкніть налагодження
    3B: Змініть перемикач увімкнення/вимкнення
  4. Зрозумійте пристрої FLiRS

 

ОСНОВНІ ХАРАКТЕРИСТИКИ

  • Змінити GPIO
  • Впровадити ШІМ
  • Використовуйте вбудований світлодіод RGB

 

1. Вступ

Ця вправа побудована на основі попередньої вправи «3A: Компіляція, перемикач увімкнення/вимкнення та ввімкнення налагодження», яка продемонструвала, як компілювати та використовувати перемикач On/Off sampдодаток.

У цій вправі ми внесемо зміни в sampдодатку, змінивши GPIO, який керує світлодіодом. Крім того, ми будемо використовувати світлодіод RGB і навчимося використовувати ШІМ для зміни кольорів.

1.1 Вимоги до обладнання

  • 1 Головна рада розвитку WSTK
  • 1 Радіорозробник Z-Wave: модуль SiP ZGM130S
  • 1 УЗБ контролер
  • 1 USB Zniffer

1.2 Вимоги до програмного забезпечення

  • Простота студії v4
  • SDK Z-Wave 7
  • Контролер для ПК Z-Wave
  • Z-Wave Zniffer

РИСУНОК 1 Головна розробна плата з Z-Wave SiP-модулем

малюнок 1: Головна розробна плата з Z-Wave SiP модулем

1.3 Передумови
Попередні практичні вправи охоплювали, як використовувати PC Controller і додаток Zniffer для побудови мережі Z-Wave та захоплення радіочастотного зв’язку з метою розробки. Ця вправа передбачає, що ви знайомі з цими інструментами.

Попередні практичні вправи також охоплювали, як використовувати sample програми, які постачаються з Z-Wave SDK. Ця вправа передбачає, що ви знайомі з використанням та компіляцією одного з sampле додатків.

 

2. Перейдіть в інтерфейс плати

Фреймворк Z-Wave поставляється з рівнем апаратної абстракції (HAL), визначеним board.h і board.c, що забезпечує можливість реалізації для кожної з ваших апаратних платформ.

Рівень апаратної абстракції (HAL) — це програмний код між апаратним забезпеченням системи та її програмним забезпеченням, що забезпечує узгоджений інтерфейс для додатків, які можуть працювати на кількох різних апаратних платформах. Взяти авансtagЗавдяки цій можливості програми повинні отримувати доступ до обладнання через API, наданий HAL, а не безпосередньо. Потім, коли ви переходите на нове обладнання, вам потрібно лише оновити HAL.

2.1 Відкрити Sample Project
Для цієї вправи вам потрібно відкрити кнопку Увімкнення / Вимкненняampдодаток. Якщо ви завершили вправу «3A Compile Switch OnOff and enable debug», вона вже має бути відкрита у вашій IDE Simplicity Studio.

У цьому розділі ми розглянемо дошку files і зрозуміти, як ініціалізуються світлодіоди.

  1. З основного file «SwitchOnOff.c», знайдіть «ApplicationInit()» і зверніть увагу на виклик Board_Init().
  2. Помістіть свій курсор на Board_Init() і натисніть F3, щоб відкрити оголошення.

РИС 2 Відкрийте Sample Project

3. У Board_Init() зверніть увагу, як світлодіоди, що містяться в BOARD_LED_COUNT, ініціалізуються за допомогою Board_Con-figLed()

РИС 3 Відкрийте Sample Project

4. Розмістіть курсор на BOARD_LED_COUNT і натисніть F3, щоб відкрити декларацію.
5. Світлодіоди, визначені в led_id_t, такі:

РИС 4 Відкрийте Sample Project

6. Повернутися до дошки.c file.
7. Помістіть ваш курсор на Board_ConfigLed() і натисніть F3, щоб відкрити оголошення.
8. Зверніть увагу, що всі світлодіоди, визначені в led_id_t, потім налаштовуються в Board_ConfigLed() як вихід.

РИС 5 Відкрийте Sample Project

Це означає, що всі світлодіоди на платі розробника вже визначені як виходи та готові до використання.

 

3. Зробіть модифікацію Z-Wave Sample Application

У цій вправі ми будемо модифікувати GPIO, які використовуються для світлодіода в режимі включення/вимкненняampдодаток. У попередньому розділі ми дізналися, як усі світлодіоди на платі розробника вже ініціалізовані як вихідні та готові до використання.

3.1 Використовуйте світлодіод RGB

Ми будемо використовувати вбудований світлодіод RGB на модулі розробки Z-Wave замість світлодіода на панелі кнопок.

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 рази як у вимкненому, так і в увімкненому стані, як показано на малюнку 7.

РИС 7 RefreshMMI, модифікований для використання світлодіода RGB

Наша нова модифікація реалізована, і ви готові до компіляції.
Кроки програмування пристрою описані у вправі «3A Компіляція, перемикач увімкнення та ввімкнення налагодження», і коротко повторюються тут:

  1. Натисніть на «Побудувати» ICON 1 кнопку, щоб розпочати створення проекту.
  2. Коли збірка закінчиться, розгорніть папку «Binaries» і клацніть правою кнопкою миші на *.hex file щоб вибрати «Flash to Device...».
  3. Виберіть підключене обладнання у спливаючому вікні. Тепер «Flash Programmer» попередньо заповнено всіма необхідними даними, і ви готові натиснути «Програма».
  4. Натисніть «Програма».

Через деякий час програмування завершується, і тепер ваш кінцевий пристрій оновиться з вашою модифікованою версією Switch On/Off.

3.1.1 Перевірка функціональності

У попередніх вправах ми вже включили пристрій у захищену мережу Z-Wave за допомогою SmartStart. Інструкції див. у вправі «Включити використання SmartStart».

Підказка Внутрішнє file система не стирається між перепрограмуванням. Це дозволяє вузлу залишатися в мережі і зберігати ті самі ключі мережі, коли ви його перепрограмуєте.

Якщо вам потрібно змінити, наприклад, частоту, на якій працює модуль або DSK, вам потрібно «Стерти» чіп, перш ніж нова частота буде записана у внутрішній NVM.

Таким чином, ваш пристрій уже включено в мережу.

Перевірте функціональність, переконавшись, що ви можете вмикати та вимикати світлодіод RGB.

  • Перевірте функціональність за допомогою параметрів «Basic Set ON» і «Basic Set OFF» на контролері ПК. Світлодіод RGB повинен увімкнутися та вимикати.
  • Індикатор RGB також можна вмикати та вимикати за допомогою BTN0 на апаратному забезпеченні.

Тепер ми перевірили, що модифікація працює належним чином, і успішно змінили GPIO, що використовується в Sample Application

3.2 Змініть колірний компонент RGB

У цьому розділі ми модифікуємо світлодіод RGB і спробуємо змішати кольорові компоненти.

«Колір у колірній моделі RGB описується, вказуючи, скільки червоного, зеленого та синього включено. Колір виражається як триплет RGB (r,g,b), кожен компонент якого може змінюватися від нуля до визначеного максимального значення. Якщо всі компоненти дорівнюють нулю, результат буде чорним; якщо всі на максимумі, результатом буде найяскравіший білий, який можна представити».

З Вікіпедії далі Колірна модель RGB.

РИСУНОК 8 Кольорові компоненти RGB, змішані разом

Оскільки ми ввімкнули всі кольорові компоненти в попередньому розділі, світлодіод RGB світиться білим, коли увімкнено. Вмикаючи та вимикаючи окремі компоненти, ми можемо змінити світлодіод. Крім того, регулюючи інтенсивність компонентів кожного кольору, ми можемо зробити всі кольори між ними. Для цього ми будемо використовувати ШІМ для керування GPIO.

  1. У ApplicationTask() ініціалізуйте PwmTimer і налаштуйте контакти RGB на PWM, як показано на малюнку 9.                                                                                РИСУНОК 9 ШІМ ініціалізовано в ApplicationTask
  2. У RefreshMMI() ми будемо використовувати випадкове число для кожного компонента кольору. Використовуйте rand(), щоб отримати нове значення кожного разу, коли світлодіод увімкнено.
  3. Використовуйте DPRINTF(), щоб записати щойно згенероване значення в послідовний порт налагодження.
  4. Замініть Board_SetLed() на Board_RgbLedSetPwm(), щоб використовувати випадкове значення.
  5. Зверніться до малюнку 10 для оновленого RefreshMMI().

РИС. 10 RefreshMMI оновлено за допомогою ШІМ

Малюнок 10: Оновлення RefreshMMI за допомогою ШІМ

Наша нова модифікація реалізована, і ви готові до компіляції.

  1. Натисніть на «Побудувати» ICON 1 кнопку, щоб розпочати створення проекту.
  2. Коли збірка закінчиться, розгорніть папку «Binaries» і клацніть правою кнопкою миші на *.hex file щоб вибрати «Flash to Device...».
  3. Виберіть підключене обладнання у спливаючому вікні. Тепер «Flash Programmer» попередньо заповнено всіма необхідними даними, і ви готові натиснути «Програма».
  4. Натисніть «Програма».

Через деякий час програмування завершується, і тепер ваш кінцевий пристрій оновиться з вашою модифікованою версією Switch On/Off.

3.2.1 Перевірка функціональності

Перевірте функціональність, переконавшись, що ви можете змінити колір світлодіода RGB.

  1. Перевірте функціональність за допомогою «Basic Set ON» у контролері ПК.
  2. Натисніть «Основний набір увімкнено», щоб побачити зміну кольору.

Тепер ми перевірили, що модифікація працює належним чином, і успішно змінили GPIO на використання ШІМ.

4 Обговорення

У цій вправі ми змінили вмикання/вимкнення з керування простим світлодіодом на керування багатоколірним світлодіодом. Залежно від значень ШІМ тепер ми можемо змінити колір на будь-який колір та інтенсивність.

  • Чи слід використовувати «двійковий комутатор» як тип пристрою для цієї програми?
  • Які класи команд краще підходять для багатоколірного світлодіода?

Щоб відповісти на запитання, вам слід звернутися до специфікації Z-Wave:

  • Специфікація типу пристрою Z-Wave Plus v2
  • Специфікація командного класу програми Z-Wave

На цьому підручник про те, як змінювати та змінювати GPIO Z-Wave S, закінчуєтьсяample Application.

 

Дізнайтеся більше про цей посібник і завантажте PDF:

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

SILICON LABS Lab 3B - зміна перемикача увімкнення/вимкнення [pdfПосібник користувача
Лабораторна робота 3B, зміна перемикача, увімкнення, вимкнення, Z-Wave, SDK

Список літератури

Залиште коментар

Ваша електронна адреса не буде опублікована. Обов'язкові поля позначені *