Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Создание кастомных LCD-меню на Arduino в XOD — без программирования

Компоненты и материалы

Arduino UNO 1
Shield DFRobot LCD/Keypad для Arduino (16×2 LCD + 5 кнопок + Reset) 1

Приложения и сервисы

О проекте

Микроконтроллеры Arduino способны управлять множеством датчиков и исполнительных механизмов одновременно. Графическая среда XOD упрощает прототипирование, но по мере роста сложности встаёт вопрос интерфейса пользователя: как выводить информацию и управлять процессом логично. Кнопки и переключатели подходят для простых задач, но быстро исчерпываются. Меню на дисплее — стандартное решение (как в микроволновке), хотя глубокое погружение в меню ухудшает UX.

Программные фреймворки для меню на C/C++ имеют крутую кривую обучения и трудно модифицируются. Цель проекта — использовать XOD для быстрого прототипирования меню drag-and-drop/WYSIWYG. Входные/выходные параметры меню модульны и универсальны: работают с любыми источниками ввода (кнопки, энкодеры) и выводят текстовые последовательности, совместимые с любыми дисплеями, поддерживаемыми XOD (в примере — 16×2 текстовый LCD).

Если вы не знакомы с XOD, начните с туториалов на xod.io.

Пример 1: базовая структура патча

Создание кастомных LCD-меню на Arduino в XOD — без программирования

Секция контроллера меню (справа)

Четыре узла, соединённых вертикально:

  1. Аналоговый вход — подключён к пину A0. На шилде DFRobot клавиатура выдаёт разные напряжения на A0 в зависимости от нажатой кнопки (Вверх, Вниз, Влево, Вправо, Select). Кнопка Reset не подключена к Arduino.
  2. Декодер клавиатуры — преобразует напряжения в импульсные триггеры для каждой кнопки. Есть вход timeout для настройки антидребезга.
  3. Контроллер меню — принимает триггеры, управляет навигацией по дереву меню, генерирует обновления состояния. Принимает одно числовое значение (параметр) от внешнего источника (потенциометр и т.д.). При выборе листового меню (Invoke) соответствующий узел выдаёт импульс и значение параметра. Два строковых входа — для заставки при включении.
  4. Контроллер дисплея 16×2 — стандартный узел XOD, можно заменить на любой поддерживаемый дисплей.

Секция дерева меню (слева)

Древовидная структура, корень которой подаётся на вход контроллера меню. Три типа узлов:

Выбор Invoke в Branch погружает в подменю. Поддерживаются вложенные подменю любой глубины (в пределах RAM/Flash).

Секция вывода (правый нижний угол)

Импульсные выходы листьев подключены через шину к триггерам (flip-flop), переключающим цифровые пины. Можно управлять реле, светодиодами, или сохранять значение в буфер (buffer node) для дальнейшего использования.

Известные проблемы

Создание кастомных LCD-меню на Arduino в XOD — без программирования

Планы развития

Пример 2: работа с параметрами (19.02.2019)

Создание кастомных LCD-меню на Arduino в XOD — без программирования

Контроллеру меню подаётся значение счётчика (clock node) — может быть любым внутренним или внешним значением (потенциометр). Значение форматируется в строку и выводится на 2-ю строку LCD при входе в меню.

Выходы invoked и param листа «A» идут в узел buffer. Значение буфера отображается на 1-й строке. При нажатии Invoke — текущее значение параметра сохраняется в буфер, дисплей обновляется. Выход буфера можно направить на любые узлы для изменения их поведения.

Создание кастомных LCD-меню на Arduino в XOD — без программирования

Код / Библиотека

Библиотека XOD Menu System: https://xod.io/libs/bitrex/xod-menu-system-11

Установка: в XOD IDE → File → Add Libraries → введите bitrex/xod-menu-system.

Превью недоступно (только скачивание).

Схемы / Патчи XOD

Файл проекта для XOD IDE: xodmenusystemrev1_1_4-1-19_fLVYrcSgbX.xodball — открывается напрямую в XOD.

Производственный процесс

  1. Создание DTMF-декодера на Arduino без внешних микросхем
  2. Создание потрясающей системы Ambilight для монитора на Arduino
  3. Создание ультразвукового левитатора на Arduino: пошаговое руководство
  4. Создание анимации и игр на LCD 16×2 с Arduino UNO
  5. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  6. IoT-монитор пульса в реальном времени на Arduino и MAX30100
  7. Веб-сервер на Arduino Uno WiFi: управление LED через браузер
  8. Умный счетчик парковки: Отслеживание машин в реальном времени (Arduino, Processing, PHP)
  9. Автоматизация игры «Динозавр» в Chrome на Arduino и LDR с Python
  10. Сборка компактного FM-радио на Arduino Nano и RDA5807M