PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Вопросы и ответы (http://pccar.ru/forumdisplay.php?f=26)
-   -   Подключение к планшету через USB-OTG (http://pccar.ru/showthread.php?t=29809)

rxstart 19.02.2023 11:23

Подключение к планшету через USB-OTG
 
Вложений: 1
Доброго всем времени суток.
Делаю свою оболочку. Я хочу убрать полностью блок климат-контроля, а вместо него поставить планшет NEXUS7. Ну как Вы понимаете от блока я оставлю плату управления, а кнопки будет "нажимать" контроллер ATMEGA48, данные о температуре, положении заслонки, скорости вентилятора и т. п. он будет посылать на планшет, а также он будет посылать какая из кнопок на руле нажата и включать и выключать REM усилителя.
Опыт работы с МК у меня большой, а вот программирование в среде ANDROID только начинаю с MIT 2.
Мне нужна помощь. Во первых как настроить COM порт на андроид устройстве, я собираюсь использовать CH340G для передачи USART->Virtual COM
во вторых я правильно предполагаю, что аудио плеер и радио мне придется писать самому, потому как я собираюсь использовать кнопки на руле?
И да я не использую ардуино, так как хватает и мозгов и опыта, чтобы реализовать устройства которые работают с большей скоростью и большей стабильностью чем убогие библиотеки этого зверька. Это касается в частности работы ADC.
Схему я прилагаю. Расшифровка обозначений.
разъём BTN - управление кнопками климат-контроля
разъём LCD - подключён к выходам дисплея климат контроля
______________________________________
Remote - включает/выключает усилитель
J1
------------------------
USB
J2
------------------------
Neutral - концевик нейтральной передачи (в будущем для дистанционного запуска)
Rear_Gear - Лампа заднего хода (включить камеру заднего хода)
Chk_ACC - 1 - если включены аксесуары
Chk_IGN - 1 - если включено зажигание
Buttons - подключение одного из проводов кнопок на руле (второй на +5в)
Voltmetr - соответственно вольтметр)))
J3
------------------------
Подключение к программатору
______________
Sleep - вместо датчика холла(усыплять планшет)
_______________________________
Принимать контроллер будет следующую структуру:
typedef struct TxD {
unsigned char Button; // Нажатая на руле кнопка
unsigned char VoltH; // Напряжение бортовой сети целая часть
unsigned char VoltL; // Напряжение бортовой сети дробная часть
unsigned char TempH; // Температура выставленная целая часть
unsigned char TempL; // Температура выставленная дробная часть (если TempL = 1 -> TEMP.5)
unsigned char Speed; // Скорость вентилятора печки 1-8
unsigned char Heat; // 0 - откл, 1 - обдув ветрового стекла, 2 - обогрев заднего стекла, 3 - обдув + обогрев
unsigned char Way; // 0 - не выбран или АВТО 1 - стекло, 2 - лицо, 3 - ноги, 4 - стекло + лицо, 5 стекло + ноги, 6 ноги + лицо
unsigned char Cond; // 0 - OFF, 1 - AUTO, 2 - ECO, 3 - MANUAL
unsigned char Rear; // Включение заднего хода 1 - ВКЛ., 0 - ВЫКЛ.
unsigned char Neut; // Нейтральная передача 1 - ВКЛ., 0 - ВЫКЛ.
} tTX;
Принимать 1 байт - номер кнопки климат контроля которую он нажмет.

skanch 19.02.2023 12:42

Цитата:

Сообщение от rxstart (Сообщение 419105)
...Мне нужна помощь. Во первых как настроить COM порт на андроид устройстве, я собираюсь использовать CH340G для передачи USART->Virtual COM...

Полно информации что и как...

ABCh 19.02.2023 13:26

Для работы с последовательным портом можете использовать библиотеку https://github.com/felHR85/UsbSerial
А начинать разработку приложений для андроида, имея опыт программирования, все-таки правильнее с Android Studio.

rxstart 19.02.2023 17:19

Цитата:

Сообщение от ABCh (Сообщение 419110)
Для работы с последовательным портом можете использовать библиотеку https://github.com/felHR85/UsbSerial
А начинать разработку приложений для андроида, имея опыт программирования, все-таки правильнее с Android Studio.

Я просто не хочу заморачиваться ООП JAVA, ибо он вызывает уныние. Мне просто написать не большую оболочку и я так полагаю, что проще будет использовать средства визуального проектирования типа MIT2. Хотя и тут без ООП никуда. Как же, чтобы сесть на горшок, надо описать галактику в спирали и планету в тентуре, а потом еще и указать GPS привязку к горшку))) Старый я уже для этих фокусов, мне ASM гораздо более понятен, чем эти танцы с бубном.

Раз Вы в теме, есть конкретный вопрос, можно ли написать че то типа пиблуды, чтобы скажем управлять плеером и радио согласно глобальной переменной, в которой будет указываться какая кнопка сейчас нажата? Чтобы не писать плеер с нуля самому. А возможно кто то уже заморачивался с этим.

ABCh 19.02.2023 19:10

Затрудняюсь что-либо посоветовать. Думаю, правильнее изучить программирование для андроида с нуля. Это не так сложно, как кажется. https://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
P.S. Если Вы считаете себя старым, то я вообще динозавр какой-то :)

rxstart 19.02.2023 20:33

Цитата:

Сообщение от ABCh (Сообщение 419113)
Затрудняюсь что-либо посоветовать. Думаю, правильнее изучить программирование для андроида с нуля. Это не так сложно, как кажется. https://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
P.S. Если Вы считаете себя старым, то я вообще динозавр какой-то :)

Спасибо за помощь буду изучать)))

ABCh 20.02.2023 09:49

Что касается самой постановки задачи, то это ООП в чистом виде. Имеем физический объект - микроконтроллер. Далее по шагам:
1. описываем его состояние в виде набора числовых и логических переменных,
2. описываем методы изменения состояния (включение/выключение устройств, регулировка уровней громкости и т.п.) с указанием соответствующих числовых или логических параметров, по сути это процедуры для конкретного набора действий,
3. описываем протокол обмена через последовательный порт в формате json-rpc или xml-rpc (первый более компактный),
4. разрабатываем пользовательский интерфейс андроидного приложения,
5. кодируем и отлаживаем на реальных устройствах.
Именно так у меня реализовано управление FM-приемником на RDA5807 + Arduino Uno из андроидного приложения.

rxstart 24.02.2023 20:26

По поводу работы с портом я если честно я думал попроще сделать, использую со стороны ATMega48A UART, а со стороны планшета USB -> COM по средству CH340G, дабы не заморачиваться с протоколом. OTG цепляю на ногу меги и дергаю ей в момент просыпания планшета.
Вопрос в другом может есть специальные приложения чтобы не мудрить и не писать плеер вручную? Смысл такой при изменении значения глобальной переменной будет "нажиматься" соответствующая кнопка плеера

ABCh 25.02.2023 12:09

Я думаю, что проще эту задачу реализовать на устройстве с USB-HID профилем. Оно будет работать, как USB-клавиатура, и непосредственно управлять плеером. На платформе Arduino это возможно на любой плате с чипом 32u4, а как сделать на ATMega48A - Вам виднее.

rxstart 25.02.2023 13:09

Цитата:

Сообщение от ABCh (Сообщение 419122)
Я думаю, что проще эту задачу реализовать на устройстве с USB-HID профилем. Оно будет работать, как USB-клавиатура, и непосредственно управлять плеером. На платформе Arduino это возможно на любой плате с чипом 32u4, а как сделать на ATMega48A - Вам виднее.

Как с языка сняли)))
Нашел, действительно USB клавиатура управляет плеерами.
Сейчас ищу протокол, есть скетч на ардуине, но это слишком громоздко получится, да и дороговато нынче ардуина стоит))
Atmega48A вполне сгодится, еще и памяти процентов 20 останется))
А еще я нарыл, как включают камеру заднего вида, через плату видеозахвата, только вот как делать дамку парковки нигде не сказано((


Часовой пояс GMT +4, время: 09:16.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot