PDA

Просмотр полной версии : Навигационный джойстик Рено + Андроид + Ардуино


mazay66
12.01.2020, 23:38
Доброго здравия. Давно хотел встроить штатный навигационный джойстик Рено для управления планшетом
(см. фото 1)
Представляет из себя электронный модуль с процессором и контроллером, передающий данные о нажатии кнопок в can-шину автомобиля в виде кодов шестнадцатеричной системы счисления HEX. Ниже данные джойстика Рено, полученные с анализатора:
Для пробуждения необходима команда 58F 8 [ 80 01 BB BB BB BB BB BB ]
В ответ от джойстика можно получить такие коды:
63D 8 [ 88 F2 F2 F2 F2 F2 F2 F2 ] – длинное нажатие кнопки MAP
63D 8 [ 08 F2 F2 F2 F2 F2 F2 F2 ] - короткое нажатие кнопки MAP
63D 8 [ 83 F2 F2 F2 F2 F2 F2 F2 ] - длинное нажатие кнопки INFO
63D 8 [ 03 F2 F2 F2 F2 F2 F2 F2 ] - короткое нажатие кнопки INFO
Ввиду большого количества кнопок, полный список команд перечислять тут не буду. Если, кому-то понадобится, пишите в личку – вышлю.
Зачем мне нужен был джойстик? По двум причинам. В моем Рено Колеос, экран планшета находится на достаточно некомфортном расстоянии от водителя, чтобы каждый раз тянуться до него. Особенно в движении. Проще организовать запуск часто используемых приложений с навигационного джойстика. Это не будет отвлекать от управления автомобилем.
Вторая причина не менее важная. Организовав управление планшета с джойстика, можно отключить и не выводить на экран верхнюю, служебную строку уведомления и нижнюю строку состояния с кнопками управления андроида. Тем самым существенно увеличивается полезная площадь экрана для работающего приложения и пропадает (при взгляде на экран) ощущение использования андроида.
Поделюсь своим наработками, как «подружить» Нексус 7 со штатным навигационным джойстиком Рено.
Купил ардуино с микроконтроллером ATmega32u4 (https://duino.ru/arduino-pro-micro.html/) и can-модуль на MCP2515 (https://duino.ru/can-bus-modul-mcp2515/). Плата сделана в Dip Trace.Посмотреть можно тут (https://yadi.sk/d/qX051fNfGAjppA).
С созданием платы и изготовлением устройства сложностей быть не должно. У меня получилось с первого раза: (см. фото 2 и 3)
А вот с написанием скетча возникли проблемы. Моих, базовых, знаний в написании такой программы недостаточно. Пришлось обращаться за помощью к специалисту по программированию, отдавать ему плату. С третьего раза, скетч заработал, так, как мне требовалось. Результат записал на видео (https://www.youtube.com/watch?v=kWUSrMe0uWs). Встроенный в авто (https://www.youtube.com/watch?v=WnrYEXAre18).

Явген
14.01.2020, 18:48
Хорошо получилось!)

Вопрос. Как сделал по нажатию выход навитела в меню и разделение экрана на части?

mazay66
14.01.2020, 19:33
Хорошая идея, подумаю.

Явген
14.01.2020, 23:47
Хорошая идея, подумаю.

В смысле?) :huh2:

mazay66
15.01.2020, 20:12
Выход навитела ( и любого другого приложения) в меню - это эмуляция кнопки "меню". Разделение экрана - это эмуляция длительного удержания кнопки вызова запущенных приложений.
p.s. Сначала не понял вопроса. Думал вы спрашиваете как одновременно запустить меню навигации и второй экран.

Явген
15.01.2020, 20:16
Выход навитела ( и любого другого приложения) в меню - это эмуляция кнопки "меню". Разделение экрана - это эмуляция длительного удержания кнопки вызова запущенных приложений.
p.s. Сначала не понял вопроса. Думал вы спрашиваете как одновременно запустить меню навигации и второй экран.

Теперь понял)
А не пробовал найти возможность двигать карту в навителе?

YAM1966
15.01.2020, 20:21
Теперь понял)
А не пробовал найти возможность двигать карту в навителе?

Ну так эмулировать движение мыши с нажатием :)

mazay66
15.01.2020, 20:46
Да, именно так и пробовал, на предыдущей версии резистивного джойстика (https://www.drive2.ru/l/530990724888398027/). Где-то на видео, в ролике, демонстрировал перемещение карты.
Вот, по ссылке (https://www.youtube.com/watch?v=WKGrHr-1moY&t=1s): 3мин50сек - двигаю карту яндекс навигатора. Не навител, но разницы, думаю нет.

Явген
15.01.2020, 21:26
Ну так эмулировать движение мыши с нажатием :)

Что-то я не нашел такой функции в контроллере:dntknw: