GPIO Extender-2
Zero Coding мини-контроллер для ваших проектов

Управление без программирования — просто текстовые команды

Компактный размер. 10 универсальных портов.
Без прошивки и IDE.
Только терминал и простые команды.
Ключевые преимущества
Почему GPIO-Extender-2 удобен для небольших проектов?

Никакого программирования
Забудьте о языках программирования и IDE. Управляйте устройством через простые текстовые команды с ПК.

Компактный размер
Устройство помещается на ладони и не требует дополнительной инфраструктуры или монтажа.

Легкое подключение
Просто подсоедините к USB, и устройство готово к работе. Не нужны драйверы или настройки. Питание и управление по одному интерфейсу.

Понятный интерфейс
Текстовые команды с интуитивно понятным синтаксисом, которые легко запомнить даже новичку.

Автономный режим Сохраняйте настройки в памяти и используйте устройство даже без компьютера. Устройство может автономно выполнять несложные сценарии по заданному скрипту.
Для чего нужен USB GPIO Extender-2
  • Очень простое управление сигналами
    GPIO Extender-2 - в первую очередь устройство простого управления сигналами с ПК: позволяет с помощью команд в (виртуальный) последовательный порт USB интерфейса изменять состояние 10 входов-выходов.
  • Гибкость
    GPIO Externder-2 позволяет:
    1. сделать 10 выходов, либо 10 входов или как-то разделить их, например как 2 выхода и 8 входов.
    2. использовать, как генератор PWM сигналов (4 канала).
    3. Использовать, как АЦП (9) каналов.
  • Интеграция с другими устройствами
    Устройство можно запрограммировать на выполнение своей логики: подсчет поступающих сигналов за определённое время или, наоборот, формирование каких-то специальных сигналов в зависимости от команд.
    Реализация параллельного интерфейса и т.д.
Характеристики
1. Интерфейс подключения: USB (HID+CDC)
2. Рабочие интерфейсы: GPIO, ADC, PWM
3. Количество выводов: 25, управляемых - 10
4. Габариты: 54х15х10мм
5. Работает в Win7/Linux/macOS и других ОС
6. Поддержка скриптов для самостоятельного задания логики работы в автономном режиме (без ПК).
Простые команды — быстрые результаты
Краткое руководство по началу работы

Подключите ваше устройство
  1. Подключите GPIO Extender 2 к компьютеру к USB.
  2. Ваш компьютер определит устройство как виртуальный COM-порт и как HID-устройство. Виртуальный последовательный-порт (CDС) нужен для легкой интеграции с вашими программами, а HID позволяет работать без драйверов в системах, где нет доступа к CDC.

Откройте терминал (при работе с CDC)
Запустите любое приложение для работы с последовательным портом:
  • Windows: PuTTY, TeraTerm, Arduino Serial Monitor, pyserial-miniterm.
  • macOS: Screen, Serial, CoolTerm, pyserial-miniterm.
  • Linux: Screen, Minicom, PuTTY, pyserial-miniterm.

Подключитесь к последовательному порту
  • Windows: устройство вида COM3 и т.п.
  • macOS: устройство вида /dev/tty.usbmodem2073306558472 и т.п.
  • Linux: устройство вида /dev/ttyUSB0 и т.п.
Введите следующую команду и нажмите Enter:
~I
Вы должны увидеть ответ вида:
~IGPIO-Extender-2.0.0;SN:xxxx-xxxx-xxxx
Интерфейс команд

Все команды начинаются с символа ~ и заканчиваются возвратом каретки (\r) и переводом строки (\n).
Ответ также начинается с ~ и символа отправленной команды и символами (\r\n).
По-умолчанию включен режим "эхо", чтобы вы видели печатаемые вами символы. При интеграции с ПО это неудобно и эхо лучше отключить (сделать это можно в настройках).

Базовые команды
Расширенные команды
Ответы об ошибках
Команды, выполнение которых не удалось, будут возвращать сообщение об ошибке, например
~JE - Ошибка установки значений выводов
Конфигурация выводов

GPIO Extender 2 имеет 10 выводов (нумерация 1-9 и 0), которые могут быть настроены в следующие режимы:
Установка режимов

Для настройки всех выводов одновременно используйте команду ~D, за которой следуют 10 символов режимов. При попытке установить неподдерживаемый пином режим, он будет выставлен в I. Команда в ответ шлет итоговый вариант.
Устанавливаем пины 0, 3, 4 и 5-9 как входы, а 1-2 как выходы.
~DIIOOIIIII
Управление выводами
Цифровой выход
Включить вывод 2:
~S2:1
Выключить вывод 2:
~S2:0
Чтение входов
Считать цифровой вход 2:
~G2
Считать аналоговый вход 3:
~G3
Получить значения всех выводов за один раз:
~V
Выход ШИМ (P)

Установить вывод в режим ШИМ:
Инициализировать ШИМ с частотой в Гц (пин должен быть настроен в режим P):
~P[pin]:[frequency]
Установить коэффициент заполнения ШИМ (0-100):
~S[pin]:[value]
Пример: установить 50% заполнения при 1 кГц на выводе 3:
~P3:1000
~S3:5000
Аналоговый вход (A)

Ответ будет в милливольтах относительно опорного напряжения в 3.3 вольта: 0-3300.

Прочитать аналоговое значение (пин должен быть настроен в режим A):
~G[pin]
RGB-светодиоды WS2812 (W)

Вывод 9 может управлять лентой длиной до 30 светодиодов WS2812.
Цвета кодируются палитрой.
Загрузить цвета 10 светодиодов (пин должен быть настроен в режим W):
~Y090A0C
Палитра 256 цветов Базовые 16 цветов VGA (00-0F) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F RGB цветовой куб 6×6×6 (коды 10-E7) 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 Градации серого (коды E8-FF) E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF * Отображаемые цвета могут отличаться от реальных цветов на WS2812B светодиодах
Связь через UART

Встроенный интерфейс UART для обмена небольшими сообщениями в другим устройством.
Настройка UART:
~U115200,8,N,1
Отправка данных:
~OHello World
Прием данных:
~K
~KHello
Сторожевой таймер

Сторожевой таймер перезагружает мини-контроллер в случае его повисания.
Установка сторожевого таймера в миллисекундах (требует сохранения настроек и перезагрузки):
~W1000
Отключить сторожевой таймер (требует сохранения настроек и перезагрузки):
~W0
Скриптование

Контроллер может работать самостоятельно (без управляющих команд), если загрузить туда скрипт.
Функциональность скриптов относительно основного режима ограничена.
Поддерживаемые команды
+ Установить текущий пин в высокое состояние
- Установить текущий пин в низкое состояние
> Перейти к следующему пину
< Перейти к предыдущему пину
. Прочитать значение текущего пина
: Войти в режим ШИМ для текущего пина
% Установить скважность ШИМ (далее 0-9 для 0-100% с шагом 10%)
# Прочитать аналоговое значение с текущего пина
[Начать цикл (повторять, пока текущий пин не станет высоким)
] Конец цикла
@ Настроить текущий пин (i=вход, o=выход, p=шим, a=аналоговый)
$ Вывести состояния всех пинов
d[ms] Задержка на [мс] миллисекунд (например, d100 для задержки 100мс)
Базовая конфигурация и управление пинами
(обычно не нужно настраивать конфигурацию скриптом)
@o>@o>@i    // Настроить пин 0 как выход, пин 1 как выход, пин 2 как вход
+>+         // Установить пин 0 в 1, перейти к пину 1, установить пин 1 в 1
<<.>.>      // Вернуться к пину 0, прочитать его, перейти к пину 1, прочитать его, перейти к пину 2, прочитать его
Управление ШИМ
@p:1%5      // Настроить пин 0 как ШИМ, установить частоту 1кГц, скважность 50%
>@p:2%8     // Перейти к пину 1, настроить как ШИМ, установить частоту 2кГц, скважность 80%
Управление ШИМ
@p:1%5      // Настроить пин 0 как ШИМ, установить частоту 1кГц, скважность 50%
>@p:2%8     // Перейти к пину 1, настроить как ШИМ, установить частоту 2кГц, скважность 80%