I2C драйвер модуля інтерфейсів користувача IoT-Devices I2CUI1 з обробкою подій

150199

Програмний модуль для інтеграції апаратного модуля інтерфейсів користувача I2CUI1, дозволяє побудувати повноцінний інтерфейс взаємодії користувача з розумним пристроєм. Широкий набір функцій інтерфейсу користувача реалізується завдяки інтегральної схемі розширювача портів PCA9538, джойстика на 5 позицій, RGB- світлодіода та базера.

Програмний продукт дозволяє підключити I2CUI1 до контролера NodeMCU через шину I2C з обробкою переривань через окремий GPIO.

Застосування у даному програмно-апаратному рішенні послідовної шини, заощаджує/вивільняє порти контролера — цей підхід потребує лише три GPIO контролера. Також задіюється окремий порт GPIO ESP8266 для базера та обробки переривань.

Продукт i2cui1_pca9538_drv, після запуску у середовищі Lua, «фоново» працює як повноцінний модуль зі своїми публічними методами, що зареєстровано у системному оточенні і котрі можливо викликати з рівня мови Lua.

У модулі реалізовано методи:

  • ініціалізації i2cui1.init();
  • керування RGB-світлодіодом i2cui1.led();
  • керування базером i2cui1.buzzer();
  • зчитування стану входів джойстика pca9538.input();
  • службовий метод int(), що обробляє події джойстика (вліво, вправо, вверх, вниз, Ок).

 

Очистити

Опис

I2C драйвер розроблявся і тестувався для роботи з

  • Прошивкою NodeMCU 3.0.0.0 built on nodemcu-build.com provided by frightanic.com
  • branch: master
  • release: 3.0-master_20200610
  • build created on 2020-07-28
  • powered by Lua 5.1.4 on SDK 3.0.1-dev(fce080e)
  • Для роботи модуля, прошивка NodeMCU має містити обов’язкові модулі I2C та GPIO
  • Тестовий стенд, крім мікроконтролера ESP8266 з прошивкою NodeMCU, має включати до свого складу модуль інтерфейсів користувача I2CUI1 виробництва IoT-Devices (модуль I2CUI1. )

 

Програмний модуль для інтеграції апаратного модуля інтерфейсів користувача, дозволяє побудувати повноцінний інтерфейс взаємодії користувача з розумним пристроєм. Широкий набір функцій інтерфейсу користувача реалізується завдяки застосуванню можливостей інтегральної схеми розширювача портів PCA9538, джойстика на 5 позицій, RGB- світлодіода та базера. Програмний продукт дозволяє підключити I2CUI1 до контролера NodeMCU через шину I2C з обробкою переривань через окремий GPIO. Застосування у даному програмно-апаратному рішенні послідовної шини, заощаджує/вивільняє порти контролера — цей підхід потребує лише три GPIO контролера. Також задіюється окремий порт GPIO ESP8266 для базера та обробки переривань.

Продукт i2cui1_pca9538_drv, після запуску у середовищі Lua, «фоново» працює як повноцінний модуль зі своїми публічними методами, що зареєстровано у системному оточенні і котрі можливо викликати з рівня мови Lua. У модулі реалізовано методи ініціалізації i2cui1.init(), керування RGB-світлодіодом i2cui1.led(), керування базером i2cui1.buzzer() та зчитування стану входів pca9538.input(), а також службовий метод int() що обробляє події джойстика (вліво, вправо, вверх, вниз, Ок).

I2C драйвер реалізує обробку подій зміни стану джойстика на всіх п’яти можливих позиціях і дозволяє розробнику зручно доповнити обробники власним кодом. У доповнення апаратних фільтрів проти брязкоту, програмний модуль виконано з додатковою програмною фільтрацією хибних спрацьовувань під час швидких чи “не певних” маніпуляцій джойстиком.

Фільтр хибних подій реалізовано на рівні таймаута між спрацюваннями обробника переривань.

Реєстрація модуля у системному оточенні:

 

Примітка 1. У такий спосіб викликати можливо як вихідний *.lua код, так і компільований *.lc.

Примітка 2. Рекомендуємо виконувати виклик модуля з файлу початкового завантаження init.lua.

Публічні методи модуля:

  • i2cui1.init() – ініціалізація модуля із заданими параметрами;
  • i2cui1.led() – керування RGB- світлодіодом модуля I2CUI1;
  • pca9538.buzzer() – керування базером модуля I2CUI1;
  • pca9538.input() – зчитування значень стану всіх чи певного порту джойстика.

 

Розробник може за допомогою API, котрий надає модуль, реалізувати власний алгоритм подальшої обробки подій чи реакції на них, засобами мови Lua та бібліотек мікроконтролера NodeMCU.

Для кого цей продукт

Кожен наш програмний продукт розроблено із застосуванням безмежного розмаїття можливостей простих і доступних контролерів, сенсорів та інших електронних компонентів, які можна знайти у будь-якому магазині. Головна наша мета – надати прості і недорогі інструменти швидкого вирішення задуманих проектів.

Для використання програмного модуля i2cui1_pca9538_drv підійде будь-який модуль чи плата на базі ESP8266-12e/f з прошивкою NodeMCU.

Ми будемо раді, якщо нашими продуктами скористаються:

  • Діти та їх батьки;
  • Учні та їх вчителі;
  • Студенти та їх лабораторні роботи;
  • Новачки у технологіях Інтернету речей;
  • Лаборанти та їх експерименти;
  • Аматори-електронщики-не-програмісти;
  • Аматори-програмісти-не-електронщики;
  • Професійні інженери та їх поважні замовники;

 

Можливості сучасних обчислювальних систем настільки потужні і всеосяжні, що дані програмні компоненти однаково добре згодяться як для домашньої автоматизації і факультативного навчання, так і комерційного впровадження, або швидкого розгортання окремих сегментів комерційних систем та виконання їх пілотних випробувань.

Необхідні навички та інструменти

Всі програмні продукти на нашому сайті розраховано на користувачів, які вже вміють самостійно підключати, прошивати та програмувати контролер ESP8266 з прошивкою NodeMCU і мовою програмування Lua.

Таким чином, застосування даного комерційного-придбаного програмного модуля Клієнтом полягає у тому, щоб:

  • завантажити (download) lua-код у середовище розробника на комп’ютер,
  • ознайомитися з кодом і супутніми матеріалами пакету постачання,
  • адаптувати код за необхідності під свої задачі,
  • вивантажити (upload) програмний код у контролер та запустити на виконання;
  • інтегрувати після тестування придбаного коду до програмних розробок.

 

Проте, Ви можете ознайомитися з інструкцією на нашому сайті, як швидко почати програмувати на Lua з контролером NodeMCU/ESP8266 за цим посиланням:

 Як швидко почати працювати з контролером NodeMCU/ESP8266 з використанням мови Lua для користувачів Windows.

Також радимо ознайомитися з публікацією про застосування розширювачів портів, оскільки у апаратному модулі IoT-Devices I2CUI1 застосовано розширювач PCA9538:

Як підключити велику кількість компонентів до модуля або плати NodeMCU

Додаткова інформація

Інтерфейсна шина

GPIO, I2C

Рівень складності

Складний

Передача даних назовні

Немає

Тип виконання

Модуль з повним API

Локальний Web-сервер

Немає

Журналювання

Немає

Енергоспоживання

Звичайне

Композиція скриптів

Один скрипт

Статистична обробка даних

Немає

Перевірена версія прошивки

3.0-master_20200610

Отримання точного часу

Немає

Інтерфейс користувача

Немає

Виробники апаратного забезпечення

iot-devices.com.ua, NXP

Необхідні модулі прошивки

gpio модуль, i2c модуль

Мінімальна сумісна версія прошивки

1.5.4.1-master_20161201