![]() |
Цитата:
|
Цитата:
|
Что нужно до установить чтобы на нексусе работали команды из раздела эмуляция клавиатуры рут???
|
C лёгкого пинка ali_vlad, я начал эксперименты с GPIO. В версии 1.6.2 готов модуль считывания состояния 1 и 0. Под шумок добавил возможность "GPIO-кнопка" - можно получать данные не 1 и 0, а click и hold (удержание).
---- Обновлено 11.09.2016 Чтобы распознавать команды с GPIO нужно выбрать Тип команды GPIO, в появившееся поле Номер GPIO, как ни странно, номер GPIO (Скриншот). Например, у geekbox landingship есть пин с маркировкой GPIO3_A3 - не знаю стандартное это обозначение или нет, но необходимый номер высчитывается по формуле (тут можно ещё почитать): Код:
GPIO[X]_[Y][Z] = 32*[X] + 8*[Y] + [Z] (for Y: A=0, B=1, C=2, D=3) |
В правильном направлении движетесь товарищ!
Считаю это необходимо в нашем деле... |
mark949, спасибо.
В 1.6.3 добавил действие установки состояния GPIO: low, high, invert. Формат такой: gpioX:low, gpioX:high, gpioX:invert. Где X номер GPIO. Если GPIO уже был инициализирован и имеет режим IN, будет сообщение об ошибке (в целях безопасности). Команда invert, как следует из названия, инвертирует состояние, т.е. если было 0, то станет 1; если было 1 - станет 0; если порт не был настроен, то будет выбрано состояние 0. Немного исправил уведомления - теперь они должны исчезать как и положено. Приношу свои извинения всем кто активно пользовался виджетами приёма данных - они у вас немножко (почти полностью) сломаются. Но в качестве компенсации вы получаете возможность пользоваться математическими выражениями и функциями описанными по этой ссылке, а так же hex2dec(), dec2hex(), bin2dec(), dec2bin(), выводить значение ключа с помощью %key, а полученного от контроллеров значения через %value. Все эти плюшки работают и в уведомлениях. Например, чтобы перевести полученное значение в hex, в поле Текст пишем: dec2hex(%value) Для работы с мат. выражениями необходимо всю формулу обернуть в %{}. Например, от контроллера приходят данные о температуре в Фаренгейтах, а нам нужно перевести в градусы Цельсия: %{round((%value - 32) * (5 / 9), 1)} ºC По формуле выше, мы перевели градусы и округлили до десятых (до одного знака после запятой). Т.е. если от контроллера пришла цифра 89, то мы на выходе получим 31.7 ºC. При этом текст до и после %{} остаётся без изменений. |
Вопрос по GPIO.
Может я чего не так делаю Добавляю новое действие, категория GPIO, определять ключ/значение автоматически. Замыкаю ножку GPIO на землю и тишина. |
ali_vlad, для нового gpio автоматически не получится получить ключ и значение. Алгоритм я сделал такой: при добавлении новой команды, если ключ соответствует шаблону gpioX (где X цифра), то инициализируется пин gpio с указанным номером в состояние in. Только после этого SM начинает его "слушать" и можно получить ключ/значение автоматически (хотя ключ уже есть). При удалении команд проверяется - если такой же номер GPIO не встречается ни в одной из команд, то пин GPIO отключается (через /sys/class/gpio/unexport).
Насколько я понял из документаций к разным платам с GPIO, их может быть сколько угодно с почти любыми номерами и лучше заранее не "слушать" всё подряд, так как неизвестно какие из них и для чего мог настроить пользователь. |
Цитата:
|
Не, это не те номера. /sys/class/gpio/gpiochip насколько я понимаю просто номера контроллеров GPIO, и хранят информацию и том за какие пины отвечают.
Если у Вас Odroid-XU4/3, то исходя из этой первой таблицы, например для 13 пина: 13 XE.INT13 GPX1.5 (#21) прицепив провод на обозначенный на плате 13 пин, в SM надо писать gpio21. Как бы "логично" это не выглядело :) Я пока с этими номерами разобрался, плату чуть в окно не выкинул |
Часовой пояс GMT +4, время: 18:00. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot