Всем привет,
тот, кто давно следит за бортовиком Пунто, наверное помнит цикл моих статей об экспериментах с Arduino. Закончились эксперименты на том, что был изготовлен блок, слушающий CAN-шину машины как прямым подсоединением к проводке диагностического разъема, так и получающий часть данных через bluetooth ELM 327. Блок перехватывал CAN сообщения с резистивных кнопок руля и посылал через ИК-порт команды на мою магнитолу, управлять извне которой можно было только таким образом. Так же мне удалось перехватить и расшифровать формат команд, посылаемыех body компьютером на приборку и за счет этого удалось выводить некоторые данные из сети машины прямо на экран приборки.
Все это было описано детально в следующих бортовиках:
Разгон до сотни прямо на экране бортовика
Часть 7. Окончание мытарств
Часть 6. Приколы с экраном приборки
Часть 5. Приколы с LED
Часть 4. Кнопки руля и Ардуино
Часть 3. Начало нового проекта
Все это было сделано еще год назад и с тех пор все достаточно стабильно работало и радовало меня.
Сегодня утром, однако, захотелось взять и снова поколупать свою поделку, заодно вспомнить, что и как там было сделано.
Сказано-сделано. Поскольку я изначально предусмотрел модульную структуру, то все части легко снимаются и извлекаются из машины:

Далее подрубил к своему маку и понял, что не так все теперь радужно, ведь недавно пришло обновление macOS Sierra, и дровам на USB Serial для китайского клона Arduino пришли вилы. Пришлось повозиться, но в итоге порт стал определяться.
Решил для программирования для Arduino попробовать "облачные технологии", а именно codebender.cc, куда и перенес своей проектик. Все работает из браузера, код удобно заливается на Ардуино:


Далее решил упорядочить виды экранов, выводимых моей коробкой от длительного нажатия кнопок на руле (следующая/предыдущая станция). Как вы помните, то именно на длительное нажатие этих кнопок я повесил перелистывание экранов диагностики.
Раньше я чего только не выводил — и показание лямбд, и нагрузку на двигатель, и положение дроссельной заслонки, и прочую лабуду. Решил для себя укоротить список и оставить только самое важное.
В итоге оставил такие экраны:
1) Это температура охлад. жидкости. Скоро зима, и наша стрелка на приборке имеет свойство долгое время висеть внизу, и затем только ползти. Иногда полезно видеть динамику разогрева двигателя. Решил даже маленький видосик записать:
2) Второй экран решил оставить как было. А именно температуру воздуха на впуске. В те времена, когда у меня стоял впрыск воды/этанола, то за счет этого экрана в движении очень наглядно было видно, как впрыск жидскости охлаждал температуру воздуха. Она падала в жару 35 градусов на 10 и выше градусов, что в итоге и дало прирост разгона до сотни на целую секунду:

Впрыска уже нет после аварии, но опцию решил оставить. Иногда приятно смотреть, как кит холодного впуска GSR делает свое дело
3) Третий экран не новый, он уже был реализован в другой моей фишке — разгоне до сотне, но иногда не нужно знать время разгона, а просто хочется видеть цифровую скорость, а не стрелочную. Что интересно, так это то, что этот режим позволяет увидеть разницу между стрелочным показателем и цифровым, из мозгов. Из видео видно, что стрелочные данные спешат на 60 км/ч уже на 4 км/ч. На сотне разница будет еще больше:
Скорость же по GPS еще ниже, чем даже цифровая. Это камень в огород тех, кто записывает видео разгона до сотни и опирается только на него.
4) Четвертый экран у меня отвечает за показание положения дроссельной заслонки.
5) Это напряжение в бортовой сети
Хотелось еще добавить цифровое показание уровня топлива. Код PID взял с Вики, однако всегда возвращается ноль. Похоже, что на фиате где-то эти данные находятся в другом месте.
Таким образом, вроде пост ни о чем, просто освежил в памяти навыки работы, упорядочил экранчики, убрал лишнее.
Из хотелок же хочется научиться моргать какой-нибудь лампочкой приборки через CAN сообщения и затем реализовать что-то вроде Shift Light:







Комментарии 20
Круто все конечно, начиналось с того что ничего не умею, закончил как профессионал. Остальным только читать и слезу вытирать
У меня на дисплее выводиться "рекомендация" по переключению скорости вверх-вниз(shift up/shift down). На твоей приборке это тоже должно быть, значит нужно/можно её как-то научить это дело выводить тоже, как думаешь?
по пункту 1) она висит в нуле до 50* ОЖ, по середине от 75* до 110*
Я сейчас постоянно включаю цифровую индикацию температуры ОЖ, как доходит до 45, то медленно начинаю выкатываться со двора, пока доеду до дорог, то уже нагревается окончательно. Не сказать бы, что оно особо надо, но приятно ж видеть, как твоя поделка что-то там типа полезное показывает )
ААА а я по видео не воткнул что ты ее через радио выводишь )))))
Черт а у меня на дельте неполчается радио станции выводить по нормальному ((… слишком быстро надо повторять сообщение… ибо все скидывается (((
ну это был единственный способ у меня что-то вывести на экран через CAN шину. И то пока поймал тип этого сообщения, то думал поседею…Перебором шуровал, в итоге повезло
Уууу… я месяц угробил на то что бы вытащить все то что видно тут :-)
play.google.com/store/app…=tdg.ru.canbus.lancia.pro
Но не перебором правда ) а изучением
да я тоже написал прогу на джаве, которая по серийному порту читала с ардуины и выводила изменения в посылках на ноут.
Ну успехов тебе ), может у тещи на месяц машину отожму поправлю LanciaCanBus и под GP )))
Так как там не чего сложного в потоке нет ) просто его надо понимать )
Калькулятор, понимание перевода HEX -> DEC и HEX -> BIN )) с Shield зря тему закрыл, скорее всего не та скорость использовалась ), Да с ним и быстрее данные получаются чем с ELM 327
почему закрыл? ) все ж сделано с шилдом. Просто шилд у меня используется для перехвата мессаджей от кнопок по кан шине и для отправления на приборку сообщений, а ELM по блютузу для вычитки данных диагностики. Можно было все делать и через одно что-то, но надо было дольше разбираться, поэтому поступил как проще )
АА. красавчик )…, Была такая-же мысль, но продавать было бы сложнее так как пришлось точить по каждый синезуб отдельные прошивки )
corbandalas
Я сейчас постоянно включаю цифровую индикацию температуры ОЖ, как доходит до 45, то медленно начинаю выкатываться со двора, пока доеду до дорог, то уже нагревается окончательно. Не сказать бы, что оно особо надо, но приятно ж видеть, как твоя поделка что-то там типа полезное показывает )
в GP тоже по CanBus? с какой частотой сообщения вводить в поток надо?
Да, я посылал посылку по CAN BUS, где-то формат в блоге описывал. У меня delay в коде стоит на 100, кажется, надо будет глянуть. Там был какой-то затык с временем, иначе ошибки вылазили, помню подбирал методом тыка
Если перебрать со скоростью то можно просто отправлять обрывками ) а от сюда и непонятка в коде )))
куда там мне с моим эмулятором шдк…
прикалываешься )
Не) кан шина сложнее протокола шдк… А мне бы ещё блютус прикрутить и клайн… Мечты.
Появилось настроение снова что-то делать! Похвально)
Холодно и скучно просто )
ну уже хорошо!