18.04.2016, 22:01 | #1 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
Serial Manager - автоматизация/управление Android с помощью Arduino
Serial Manager v1.6.8 (обновлён 11.09.2016)
Serial Manager 2 v2.2.2 (обновлён 18.06.2017) Уже реализовано / Планы на будущее:
Примеры скетчей для Arduino:
Fake Serial Manager v1.0.0 - некоторые, например, GPS-приёмники или контроллер от YAM1966 могут определяться как Serial-устройство и SerialManger забирает порт на себя. FakeSerialManager просто "забирает" окошко "запускать приложение при подключении устройства". У программы нет Activity и ярлыка. Памятка При добавлении новой команды <ключ:значение>, поля Ключ и Значение могут быть автоматически заполнены:
Памятка Описание к эмулируемым клавишам клавиатуры можно посмотреть здесь. Памятка Если в настройках команды поле "Значение" оставить пустым, то команда будет распознана только по ключу (т.е. вторая часть команды ("значение") может быть любая). Примерный алгоритм работы такой: USB & Bluetooth При получении информации в формате <ключ:значение> будет исполнена заранее настроенная (на данный ключ) команда. Если ключ не был настроен в программе или была включена опция Сквозная команда, то создаётся Broadcast Intent, который могут получить сторонние программы. При включенной опции Останавливать сервис при отключении экрана:
USB Запуск/остановка сервиса, считывающено информацию с последовательного порта, производится при получении ACTION_USB_DEVICE_ATTACHED / ACTION_USB_DEVICE_DETACHED. Bluetooth Сервис запускается/завершает работу при включении/отключении Bluetooth на устройстве (BluetoothAdapter.STATE_ON / BluetoothAdapter.STATE_TURNING_OFF). Интеграция с Tasker (и ему подобных): При отсутствии настроенного <ключ:значение> или при включенной опции Сквозная команда, Serial Manager создаёт Broadcast Intent со следующими параметрами:
Виджеты отображающие данные Используя встроенные виджеты Serial Manager Receive Вы сможете, например, выводить данные с подключенных к Arduino датчиков. По умолчанию в виджетах используется шрифт Font Awesome и Вы можете совместно с текстом использовать иконки. Для вывода иконки необходимо использовать следующий формат \uXXXX, где XXXX код Unicode. Например для вывода иконки Android: Можно использовать любой шрифт, для этого в настройках виджета необходимо включить опцию Использовать свой шрифт и указать путь к ttf файлу шрифта (предварительно скопированного во внутреннюю память устройства). Для вывода текста по вертикали используется управляющий символ перевода на новую строку \n Виджет отправки данных Виджет Serial Manager Send позволяет отправлять данные на Arduino. При включении опции Виджет-переключатель, Вы сможете последоватьльно отправлять разные данные, используя один и тот же виджет. Как пример - переключатель on/off. Демонстрационный скетч sketch_receive_from_android.ino имеет следующую логику: при считывании из последовательного порта on подаётся питание на пин 8, при получении off убирается питание. Подключив светодиод можно получить наглядную индикацию. Добавьте новый виджет Serial Manager Send и настройте следующим образом:
Вы можете настроить сколько угодно переключаемых команд, для этого в поле Отправляемые данные добаляйте команды разделённые вертикальной чертой (pipe): |. Например pie|eclair|honey|marshmallow; данные будут отправляться следующим образом:
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk Последний раз редактировалось DelleTenebre; 12.11.2017 в 15:00. |
18.04.2016, 22:21 | #2 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
Интеграция c Zooper Widget Pro и Tasker
С Arduino приходят следующие данные (прим. 20, 30, 40 - данные температурного датчика): <InDoor:20> <OutDoor:30> <Engine:40> Вы хотите их вывести в Zooper Widget Pro. Для этого в Tasker'е: 1.0 Создаём новый Profile: + > Event > System > Intent Received 1.1 В поле Action пишем kg.delletenebre.serial.NEW_DATA 1.2 Сохраняемся (нажимаем назад). При выборе задачи нажимаем на New Task 2.0 Задаём любое имя новой задачи, например, ZooperTemperatureData 2.1 Нажимаем + > Task > If 2.2 В поля Condition: %key [Equals] InDoor Сохраняем 2.3 Нажимаем + > Plugin > Zooper Widget Pro 2.4 Нажимаем на карандаш справа от Configuration 2.5 В поле ZW Переменная пишем indoortemp В поле ZW Текст пишем %value Нажимаем Сохранить Сохраняемся (нажимаем назад) 2.6 Нажимаем + > Task > Else 2.7 Нажимаем + напротив If 2.8 В появившиеся поля пишем %key [Equals] OutDoor Сохраняем 2.9 Повторяем пункты 2.3, 2.4 2.10 В поле ZW Переменная пишем outdoortemp В поле ZW Текст пишем %value Нажимаем Сохранить Сохраняемся (нажимаем назад) 2.11 Повторяем 2.6 - 2.10 для <Engine:40>. Соответственно в условии: %key [Equals] Engine В ZW Переменная пишем enginetemp 2.12 Нажимаем + > Task > End If 2.13 Нажимаем назад до тех пор пока не выйдем на главный экран Android'а 3.0 Добавляем виджет Zooper желаемого размера. 3.1 Выбираем желаемый вид (пустой или встроенный шаблон) 3.2 Заходим в Макет 3.3 Вверху нажимаем (+) ADD 3.4 Выбираем модуль Текст или Текст с форматированием 3.5 В категории Текст выбираем пункт Отредактировать вручную 3.6 В верхнем (почти неприметном) поле пишем #Tindoortemp# Сохраняемся (кнопка OK) 3.? Для остальных аналогично с пункта 3.3, можно добавить в новые виджеты или для этого же виджета создать два модуля Текст или Текст с форматированием. Соответственно в пункте 3.6 будут значения #Toutdoortemp# и #Tenginetemp#
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk |
20.04.2016, 23:58 | #3 |
Пользователь
Регистрация: 16.03.2015
Регион: Украина
Сообщений: 32
|
Круто! А есть (будет) какой-то вариант получить данные с двух источников (устройств), например с двух ардуин или с V4 контроллера Юры +по блютусу (когда будет) с ардуины?
|
21.04.2016, 09:29 | #4 |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
Хорошая идея, попробую реализовать USB + Bluetooth
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk |
24.04.2016, 10:12 | #5 |
Старший Пользователь
Регистрация: 21.06.2014
Возраст: 47
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
|
У меня такое предложение: добавить реакции на команду в ком-порте и добавить в "Категория" "Управление питанием" - "Сон" и "Выключение".
Ещё хотелка: перехват и отслеживание уровня яркости с отправкой команд в ком-порт. Последний раз редактировалось ali_vlad; 24.04.2016 в 13:02. |
24.04.2016, 11:49 | #6 |
Пользователь
Регистрация: 24.12.2008
Возраст: 46
Город: Прокопьевск
Регион: 42
Машина: 2003/honda/inspire
Сообщений: 39
|
подскажите,есть подобное на windows?
|
24.04.2016, 19:42 | #7 | |
Старший Пользователь
Регистрация: 10.01.2015
Возраст: 33
Город: Бишкек
Регион: Казахстан
Машина: Subaru Outback
Сообщений: 163
|
Выпуск 1.5 - многое изменил/оптимизировал, надеюсь к лучшему Есть небольшой минус, при обновлении скорее всего удалятся настроенные виджеты, а их настройки останутся мусором лежать в папке программы. Поэтому лучше или их удалить предварительно, или удалить программу и накатить по новой.
djdonatas, добавил возможность соединения по USB и Bluetooth одновременно. ali_vlad, Сон теперь должен работать по "Эмуляция клавиатуры" > POWER. Выключение пока не реализовано, есть два варианта (c root'ом и без) буду пробовать (оставлю тут чтобы не потерять): Код:
Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN"); i.putExtra("android.intent.extra.KEY_CONFIRM", true); startActivity(i); Код:
Runtime.getRuntime().exec(new String[]{ "su", "-c", "reboot -p" }); Цитата:
kotya, для Windows подобного подсказать не смогу, никогда не встречал.
__________________
Подсолнух (github) для авторегулировки яркости экрана по позиции солнца и синхронизации времени по GPS (v1.6 от 13.06.17) Serial Manager для обработки данных с Arduino Calls Assistant - замена TabletTalk |
|
24.04.2016, 21:35 | #8 |
Старший Пользователь
Регистрация: 21.06.2014
Возраст: 47
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
|
По поводу управления питанием: некоторые андроид-боксы не реагируют на клавиатурные кнопки "сон" и "power", только физической кнопкой на самой плате андроида.
По поводу перехвата яркости. В андроид-боксах есть бегунок изменения яркости, как в телефонах, но он естественно ничего не меняет, а менять яркость только на внешнем контроллере с пульта. Так вот суть моего предложения в следующем: прога при загрузке считыаает уровень яркости в системе и отсылает команду в ком-порт. Далее прога отслеживает состояние уровня яркости, и, если он изменяется, то отсылает соответствующую команду в ком-порт. На том конце ардуина или контроллер YAM уже обрабатывает поступившую команду, ну и занимается её выполнением. Как-то так... |
24.04.2016, 21:37 | #9 |
Пользователь
Регистрация: 16.03.2015
Регион: Украина
Сообщений: 32
|
Воу воу! Очень круто, я б купил! Когда, конечно дойдут руки настроить все =)
Может тогда к "протоколам" и например http добавить с простеньким api? Тогда, по идеи, вообще количество и тип "источников" будет неограниченно. Да и те-же, допустим, 5 ардуин смогут скидывать свою инфу на шестую, которая будет сервером и будет отдавать уже оформленные данные. Сервер может и локальным быть и внешним. зы: а сотрудничество с Юрой и его v4 контроллером продолжается? будет реализована отправка данных с виджета в контроллер и в шину? |
24.04.2016, 21:57 | #10 | |
Гуру
Регистрация: 16.04.2014
Возраст: 40
Город: Gdynia
Регион: другой - для добавления сообщить ab
Сообщений: 2,548
|
Цитата:
__________________
------------------------ Новая версия блока питания (BP5mini) для подключения всех планшетов (плата, прошивка, инструкции) ------------------------ Неспешно расписываемый проект. ------------------------ Регулировка звука аудиопроцессором. TDA7442 + ардуино. |
|
Метки |
android, arduino, управление |
Здесь присутствуют: 12 (пользователей: 0 , гостей: 12) | |
|
|