![]() |
![]() |
#1 |
Новый Пользователь
![]() Регистрация: 19.02.2023
Возраст: 47
Город: Гомель
Регион: Беларусь
Машина: citroen xsara picasso
Сообщений: 16
![]() |
![]() Доброго всем времени суток.
Делаю свою оболочку. Я хочу убрать полностью блок климат-контроля, а вместо него поставить планшет 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 байт - номер кнопки климат контроля которую он нажмет. |
![]() |
![]() |
![]() |
#2 | |
Модератор
![]() Регистрация: 19.01.2010
Возраст: 59
Город: Санкт-Петербург
Регион: 78, 98
Сообщений: 2,653
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Старший Пользователь
![]() Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Для работы с последовательным портом можете использовать библиотеку https://github.com/felHR85/UsbSerial
А начинать разработку приложений для андроида, имея опыт программирования, все-таки правильнее с Android Studio. |
![]() |
![]() |
![]() |
#4 | |
Новый Пользователь
![]() Регистрация: 19.02.2023
Возраст: 47
Город: Гомель
Регион: Беларусь
Машина: citroen xsara picasso
Сообщений: 16
![]() |
![]() Цитата:
Раз Вы в теме, есть конкретный вопрос, можно ли написать че то типа пиблуды, чтобы скажем управлять плеером и радио согласно глобальной переменной, в которой будет указываться какая кнопка сейчас нажата? Чтобы не писать плеер с нуля самому. А возможно кто то уже заморачивался с этим. |
|
![]() |
![]() |
![]() |
#5 |
Старший Пользователь
![]() Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Затрудняюсь что-либо посоветовать. Думаю, правильнее изучить программирование для андроида с нуля. Это не так сложно, как кажется. https://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
P.S. Если Вы считаете себя старым, то я вообще динозавр какой-то ![]() |
![]() |
![]() |
![]() |
#6 | |
Новый Пользователь
![]() Регистрация: 19.02.2023
Возраст: 47
Город: Гомель
Регион: Беларусь
Машина: citroen xsara picasso
Сообщений: 16
![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Старший Пользователь
![]() Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Что касается самой постановки задачи, то это ООП в чистом виде. Имеем физический объект - микроконтроллер. Далее по шагам:
1. описываем его состояние в виде набора числовых и логических переменных, 2. описываем методы изменения состояния (включение/выключение устройств, регулировка уровней громкости и т.п.) с указанием соответствующих числовых или логических параметров, по сути это процедуры для конкретного набора действий, 3. описываем протокол обмена через последовательный порт в формате json-rpc или xml-rpc (первый более компактный), 4. разрабатываем пользовательский интерфейс андроидного приложения, 5. кодируем и отлаживаем на реальных устройствах. Именно так у меня реализовано управление FM-приемником на RDA5807 + Arduino Uno из андроидного приложения. Последний раз редактировалось admin; 02.10.2024 в 15:22. |
![]() |
![]() |
![]() |
#8 |
Новый Пользователь
![]() Регистрация: 19.02.2023
Возраст: 47
Город: Гомель
Регион: Беларусь
Машина: citroen xsara picasso
Сообщений: 16
![]() |
![]() По поводу работы с портом я если честно я думал попроще сделать, использую со стороны ATMega48A UART, а со стороны планшета USB -> COM по средству CH340G, дабы не заморачиваться с протоколом. OTG цепляю на ногу меги и дергаю ей в момент просыпания планшета.
Вопрос в другом может есть специальные приложения чтобы не мудрить и не писать плеер вручную? Смысл такой при изменении значения глобальной переменной будет "нажиматься" соответствующая кнопка плеера |
![]() |
![]() |
![]() |
#9 |
Старший Пользователь
![]() Регистрация: 21.05.2015
Возраст: 64
Город: Челябинск
Регион: 74
Сообщений: 409
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Я думаю, что проще эту задачу реализовать на устройстве с USB-HID профилем. Оно будет работать, как USB-клавиатура, и непосредственно управлять плеером. На платформе Arduino micro это возможно на любой плате с чипом 32u4, а как сделать на ATMega48A - Вам виднее.
Последний раз редактировалось admin; 10.09.2024 в 00:12. |
![]() |
![]() |
![]() |
#10 | |
Новый Пользователь
![]() Регистрация: 19.02.2023
Возраст: 47
Город: Гомель
Регион: Беларусь
Машина: citroen xsara picasso
Сообщений: 16
![]() |
![]() Цитата:
Нашел, действительно USB клавиатура управляет плеерами. Сейчас ищу протокол, есть скетч на ардуине, но это слишком громоздко получится, да и дороговато нынче ардуина стоит)) Atmega48A вполне сгодится, еще и памяти процентов 20 останется)) А еще я нарыл, как включают камеру заднего вида, через плату видеозахвата, только вот как делать дамку парковки нигде не сказано(( Последний раз редактировалось admin; 10.09.2024 в 00:13. |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|