Вложений: 7
Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Здравствуйте уважаемые!
Была у меня штатная магнитола, и 8 кнопок на руле(включая хандзфришные), да сплыла.
Купил Pioneer AVH x5800BT, да пригорюнился. Кнопки-то не пашут совсем. Поставил я интернеты на уши, нашлись варианты:
- acv swi-x1 (и аналоги Incar итп)- программируемый от ИК-пульта ДУ адаптер, хорошее решение, но нет возможности назначить все кнопки хандзфри, ибо просто их нет на пульте.
- КРУ omega - насторожило, что производитель сказал, что надо обязательно при заказе уточнять что нужна версия под кнопки хандзфри. Непонимаю зачем две прошивки держать. Плюс долго ждать пересылки.
- Хаки перепайкой резисторов, например тут. Для тех у кого три провода идет с руля, перепайка позволяет задействовать все кнопки. У меня всё по двум проводам (Pajero 4), не катит.
В результате принял решение сделать универсальный конвертер-эмулятор кнопок на Arduino.
Вот результат:
Вложение 1115670
Вложение 1115672
Вложение 1115674
Все кнопки руля работают, даже в двух режимах - короткое и длинное нажатие.
За основу взята схема управления магнитолами пионер по проводам, доработано мной в результате экспериментов:
Вложение 1115676
Принцип прост - пионер ожидает замыкания резисторами между концом и общим проводом мини-джека.
Доп функции (указано красным) активируются при одновременном замыкании "кольца" (средний контакт) на общий.
Компоненты:
1) Плата ардуино мини про 5в - 120руб
Вложение 1115678
2) Плата ЦАП/АЦП на чипе PCF8591 - 146р
Вложение 1115680
3) резистор 2Ком
4) стабилизатор на 8вольт (подойдет крен5, 7808 итп) (можно и без него, надеясь что более 16в в бортсети не будет)
5) программа (скетч)
6) разъем мини-джек
7) паяльник 25Вт и прямые руки, или знакомый электрик
Сигнал от кнопок с руля подается на вход A0 ардуины, вход подвешен к +5В через резюк 2ком.
Программа по измеренным на входе напряжениям находит в таблице подстановки желаемую команду (в виде значения конкретного напряжения в вольтах) и скармливает её ЦАПу по I2S
Плата ЦАП выдает на выходе AOUT ожидаемые пионером напряжения.
Повторяемость схемы стопроцентная, регулировок не требует.
Требуется измерить омметром и ввести в прогу матрицу резисторов кнопок на руле, как у меня:
Вложение 1115696
соответственно:
Цитата:
const int inButtons[]={
//resistance kOmhs. To detect volts, you need to consider your pullup resistor and Vcc. I use 1KOhm & 3.3V
// R= V * R0 / (Vcc-V)
280, // MODE
750, // CH UP
1300, // CH DOWN
2120, // VOL UP
3120, // VOL DOWN
4590, // SPEECH
6250, // ON HOOK
8630 // OFF HOOK
};
и потом заполнить таблицу кнопок в соответствия в проге, например у меня такая:
Цитата:
// +10 means that we must add ground to jack ring `
const int maps[8][2]=
{
{ 0, 1 }, // MODE > source/off .off
{ 3,3+10 }, // CH UP > next .fldr up
{ 4,4+10 }, // CH DN > prev .fldr dn
{ 5, 5 }, //VOL UP > vol up .
{ 6, 6 }, //VOL DN > vol dn .att-mute
{ 7+10,0+10}, //SPEECH > voice ctrl .ph.tel menu
//{ 0+10,-1}, //SPEECH > .ph.tel
{ 1+10,1+10 }, //ON HOOk> ph.answer .
{ 2+10,7 } //OFFHOOK> ph.hangup .esc
};
На исследования, проектирование, реализацию и настройку убил несколько дней... Не уверен, что оно того стоило... :)
Поэтому с удовольствием отвечу на вопросы, дабы результат размножился ...
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
При такой цене вопроса можно открывать производство))) (по отношению к стоимости универсальных адаптеров)
Молодец!!! отличное решение.
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Программу сами писали? На Рено на подрулевых кнопках есть энкодер, если дойдут руки- поможете?
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Цитата:
Сообщение от
maisteroleg
Программу сами писали?
Сам, есть опыт.
Программу писал сразу максимально универсальную.
Например:
На новых и старых пионерах разное напряжение к кнопкам (3.3 и 5В), меняем константу outDepressedButtonsVoltage.
Ардуины бывают с питанием чипа от 3.3 и 5В, меняем inMaxVoltage
итп
Цитата:
Сообщение от
maisteroleg
На Рено на подрулевых кнопках есть энкодер, если дойдут руки- поможете?
Для резистивных кнопок - запросто.
Теоретически, можно и для CAN-кнопок адаптировать программу, но без подопытного кролика нереально.
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Подкрутил немного прогу, сделал дабл-клики :)
теперь при двойном нажатии на кнопки громкости сразу прибавляет или убавляет на 1/3. Удобно.
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Никто скетчем не поделится? В первом посте ссылка битая. Спасибо
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Привет, помоги, пожалуйста, "на пальцах" со схемой подключения сей конструкции?
Ардуину и ЦАП заказал, едут - пока пытаюсь умозрительно разобраться.
В родную магнитолу приходит два провода (обозначены RemCtl и RemGnd), я так понимаю это с руля.
Собссно, все... что-к-чему цеплять? Прям по пунктам, типа "врежьтесь в +12 на замке зажигания, впаяйте туда указанный резистор 2кОм, этот провод - в порт А2 ардуины" =).
Руки средней кривизны в силу отсутствия опыта. Ну, с какой стороны за паяльник браться знаю, а вот в автоэлектрике не силен.
"Сигнал от кнопок с руля подается на вход A0 ардуины, вход подвешен к +5В через резюк 2ком." вот это как понимать?
В инструкции у тебя сказано рез на 2кОма, в скетче - 1кОм - это где-то опечатка, или это разные резюки?
Где ты в проводке машины на +12В нашел 5В кабель? И вообще, как это выглядит? Y - вот так? т.е. ножка - это вход ардуины, "левая" лапка - +с руля, на "правую" - вешаем резюк?
Т.е. вот такие элементарности :blush2:
PS на руле 6 кнопок - след. трек / пред. трек / source и vol+ / vol- / play (я так понимаю, буду менять на mute).
PPS есть подозрение, что на РемКтл в спокойном состоянии уже висит некое сопротивление, т.е. там не 0 напряжения - это как-то можно в скетче будет подправить?
upd замерил сопротивления - да, в ненажатом состоянии показывает 3,67 кОм. При нажатии кнопок сопротивления меняются в меньшую сторону.
Re: Универсальное решение для подключения ВСЕХ кнопок руля(мультируль) к Pioneer
Цитата:
Сообщение от LeonZZZ
Добрый день. Заказал себе все + программатор на ch340g все пришло (только pro mini на 3.3v-подойдет?), ножки распаял программу запустил но не могу понять коммутацию, поможете?
3.3В не подходит.
Что вы понимаете под коммутацией?
Цитата:
Сообщение от
Pterka
Где ты в проводке машины на +12В нашел 5В кабель?
читаем описание платы ардуино:
Напряжение питания платы (пин RAW) 7-12В
поэтому 5В не нужно. Я запитывал через 7808.
Цитата:
Сообщение от
Pterka
Собссно, все... что-к-чему цеплять? Прям по пунктам, типа "врежьтесь в +12 на замке зажигания, впаяйте туда указанный резистор 2кОм, этот провод - в порт А2 ардуины
в первом посте написано:
Цитата:
Сообщение от
mickles
7) … и прямые руки, или знакомый электрик
это намек
Цитата:
Сообщение от
Pterka
В инструкции у тебя сказано рез на 2кОма, в скетче - 1кОм - это где-то опечатка, или это разные резюки?
const float pullupResistor=2000; // how much Ohms you attach to input pullup
---------- Сообщение добавлено 25.09.2018 в 13:49 ----------
Цитата:
Сообщение от
Pterka
PPS есть подозрение, что на РемКтл в спокойном состоянии уже висит некое сопротивление, т.е. там не 0 напряжения - это как-то можно в скетче будет подправить?
да, придется править код. Но можно попробовать добавить строку, соответствующую нулевому состоянию, в конец массива, типа так:
Цитата:
const int inButtons[]={
//resistance kOmhs. To detect volts, you need to consider your pullup resistor and Vcc. I use 1KOhm & 3.3V
// R= V * R0 / (Vcc-V)
280, // MODE
750, // CH UP
1300, // CH DOWN
2120, // VOL UP
3120, // VOL DOWN
4590, // SPEECH
6250, // ON HOOK
8630, // OFF HOOK
XXXX // NORMAL
};
тут ХХХХ - предполагаемое сопротивление по умолчанию