В один прекрасный день… Зачем я вру? Не настолько прекрасен был день, когда у меня сдох отечественно-китайский парктроник, установленный еще прежним владельцем. Надо что-то делать, но что? Купить на любой онлайн площадке очередное готовое изделие? Неинтересно. В сети, да и на хабре, есть достаточное количество материалов о реверсе протокола общения блока с индикатором или о создании своего парткроника на Arduino. И можно пойти по одному из этих путей. Но это все не то, чего желала душа. А желала она чего-то более штатного, приближенного по исполнению к автомобильной электронике.
Ни для кого не секрет, что исполнение и схемотехника автомобильной электроники несколько отличается от бытовой, как и её элементная база. Хотелось чего-то такого, «настоящего». В этот день и появилась мысль внедрить условно родной парктроник. По крайней мере парктроник, который ставился на машины на заводе или хотя бы на пути с завода конечному потребителю. И так как сейчас у меня Toyota, а немолодая Toyota это, как правило, электроника Denso, было решено собрать парктроник на том, что ставили официальные и не очень дилеры для создания «новых» комплектаций автомобилей Toyota. Когда-то это был заводской комплект дополнительного оборудования, установка и работа которого довольно сносно документирована производителем.
Выбор пал на блок Denso 188100-2410, как на самый распространенный. Я уже знал, что блок требует наличия шести датчиков (4 угловых и 2 задних), я же не собирался ставить 2 уголовых передних и осознавал, что блок будет яростно сопротивляться отсутствию передней пары (в документации были описаны соответствующие ошибки). Но что казалось проще? Как он может определять отсутствие датчиков? Да разве что по сопротивлению нагрузки, подумалось мне, ничего страшного — подкинем ему резисторы для эмуляции. И поиски комплекта начались.
Прошло некоторое время и комплект из блока, проводки и датчиков был ровным слоем разложен по полу мастерской, все соединения выполнены, вот он — радостный момент первого включения. И, совершенно ожидаемо, он ругается на отсутствие датчиков. Подкидываю вместо недостающих датчиков резисторы с мыслью «ну что он там может делать, разве только ток потребления измерять». Но разные разумные номиналы резисторов никак не действуют на блок, и он продолжает голосить об отсутствии датчиков. Нежданчик. Быстрый гуглинг не дал ответа на возникшие у меня вопросы, что и стало причиной написания этой статьи.
Как работает парктроник
Думаю, общая идея совершенно очевидна любому человеку с техническим образованием. Блок генерирует пачку импульсов, частота которых находится в ультразвуковом диапазоне. Ну чтобы не шокировать звуками окружающих людей, а о летучих мышах, дельфинах и прочих более продвинутых организмах разработчики, как правило, не задумываются.
Так как датчиков несколько и оценивается расстояние для каждого из них отдельно, чтобы не ловить отражения сигналов испускаемых соседними датчиками, пачки импульсов для них разнесены во времени. Показаны сигналы только для двух передних угловых.
После отправки пачки блок ждет отражения и, ориентируясь по времени распространения, оценивает расстояние до препятствия.
На осциллограмме видно отраженную пачку импульсов 1 через приблизительно 1.3мс, что при скорости распространения звука в 330 м/c дает примерно 430мм, то есть с допустимой точностью соответствует удвоенному расстоянию до объекта в условиях эксперимента (около 20см на глаз). Но что же еще видно на этой осциллограмме? Если подключен датчик, то сразу после пачки импульсов, сгенерированной блоком, есть эхо 2. А если датчик не подключен, то на первой осциллограмме в тексте видно, что это локального эха нет. Как оказалось, вот по этому эху блок и определяет наличие и условную исправность датчика.
Как его обмануть
Ну теперь-то все понятно и очевидно, начнем. Нам необходимо сформировать эхо приблизительно известной амплитуды и приблизительно известной длительности. Сделать это надо как можно проще, дешевле, так чтобы сразу по двум каналам и так чтобы не было нужды в дополнительном питании (чтобы подключение полностью повторяло родные датчики).
В голову пришла вот такая схема (изображение кликабельно) на пару каналов на одном из самых дешевых микроконтроллеров.
На схеме, как мне кажется, все достаточно очевидно и понятно, если у кого-то будут вопросы или предложения, милости прошу в комментарии.
Потому как городить что-то на макетках и проводах в автомобиль — не комильфо, да и наши китайские друзья (дай Бог им здоровья и сил в борьбе с вирусом) уже так легко, быстро, удобно и недорого делают платы, была спроектирована и заказана, на одном из известных сайтов, плата.
Быстро собрана из подручных материалов и за вечер написана простенькая прошивка, реализующая генерацию эха по двум каналам. В этом месте внимательный читатель задастся вопросом: «А как же требования к комплектующим и исполнению автомобильной электроники?»
Да, они не соблюдены, я сделал максимум из того, что было возможно в «домашних» условиях. Или не максимум? Ваше мнение? Что можно было сделать лучше?
Вот так выглядит результат работы этого «симулятора»:
P.S. Блок успокоился и больше не требует подключить недостающие датчики, а весь комплект ждет наступления теплых дней для установки.
Автор: Сергей