Доброго времени суток!
В очередной раз напало творчество. Решил обновить старый спидометр в боевом танке ВАЗ 2121. Сделав ревизию закромов, нашёл 3 штуки ИН14. Для часов — мало, для термометра — много. Ни туда — ни сюда. В спидометр — самое то.
Для начала штатный спидометр был снят и выпотрошен. Текущий пробег сохранён на бумажке, чтобы всё по-честному. Был приобретен датчик скорости 10 импульсов на оборот(ДСА-3). В качестве индикаторов скорости — вышеупомянутые ИН14, для отображения пробега, часов и прочего — широко известный в узких кругах конструкторов АОНов на z80 — АЛС318.

Первоначально ядром прибора был выбран PIC18F452 за обилие GPIO. Потом попался i2c расширитель портов mcp23017, до которого давно хотел добраться. С ним, надобность множества GPIO отпала, и был выбран близкий мне по последним конструкциям, msp430g2452. Также нашлись RTC — i2c часы ds1307.
ИН14 требует для штатной работы 170 вольт. Повышающий DC-DC был собран по испытанной схеме на MC34063+IRF740. Опишу некоторые нюансы, появившиеся в процессе создания.
1. Круглый корпус. Не совсем удобная форма для размещения внутри электроники и индикации. Пришлось делать внутреннюю конструкцию модульной с несколькими разъёмами. Также ставилась задача сделать корпус герметичным (ну или почти герметичным), так как ватерлиния в связи с условиями эксплуатации автомобиля бывает выше крыши. Это было решено заливкой лишних отверстий эпоксидным клеем и установкой единого разъёма для связи с внешним миром. Собственно конструкция:

и разъём:

2. Динамическая индикация. Чтобы не замечать переключение разрядов при динамической индикации, так бесящее определённых людей, частота обновления каждого разряда должна быть не меньше 100Гц. Правда есть те, кто и 100 Гц видит, но я их не катаю на этом автомобиле. Из двух индикаторов самый с этой точки зрения «трудный» — 9-ти разрядный АЛС318. Получается, частота обновления показаний должна быть не меньше 9*100 Гц. Для упрощения вычисления интервалов — была выбрана частота обновления 1кГц. Схемотехнически АЛС318 подключен к расширителю портов mcp23017. Порт А — сегменты, порт B — разряды. 9-й разряд управляется непосредственно с GPIO микроконтроллера. Получается, раз в миллисекунду нужно по i2c обновлять состояние портов A и B расширителя. Отсюда вылез следующий нюанс.
3. Медленный обмен по i2c у ds1307. На шине i2c висят в нашем случае два slave-а. Расширитель портов и часы. Последние по даташиту не успевают за частотой SCL выше 100кГц, в то время как расширитель умеет работать на частотах до 1.7МГц. Для обновления портов расширителя нужно писать в i2c раз в 1 мс 4 8-мибитных слова (адрес расширителя, адрес порта А, данные для порта А, данные для порта B). Расширитель при инициализации программируется на автоинкремент адреса внутренних регистров при чтении/записи. А адрес порта В следует сразу за адресом порта А, что позволяет сэкономить на передаче дополнительного адреса порта B. Для обеспечения малого времени обработки процедуры обновления индикации была выбрана частота тактирования SCL — 500кГц. Причём, опрос состояния часов проводится один раз за 100 циклов обновления индикации, т.е. раз в 100мс. Процедура опроса часов устанавливает частоту SCL в допустимые для ds1307 100кГц. При отладке обмена по i2c сильно помог USB логический анализатор SaleaeLogic (8каналов, до 24МГц дискретизация). Софт к нему умеет декодировать различные протоколы, в том числе i2c.

4. Питание. Спидометру для хранения времени постоянное питание от аккумулятора и для работы — напряжение, подающиеся при включении зажигания. Последним питается DC-DC преобразователь и дешифратор для ИН14, расширитель портов. При отсутствии напряжения зажигания — устройство переводится в режим хранения. Если ключ зажигания включен — запускается индикация, из разрешаются прерываниия от датчика скорости. При выключении зажигания — показания одометров записываются в энергонезависимую память микроконтроллера.
5. Управление Для установки часов, сброса показаний одометров (их два, кроме основного счётчика пробега) применён энкодер с кнопкой (картинку честно спёр в сети. свой энкодер уже залит термоклеем для гидроизоляции):

6. Логические уровни slave-ов i2c. Так как часы ds1307 питаются от 5В, а микроконтроллер и расширитель портов от 3.3В — подтягивающие резисторы шины i2c подключены к 3.3В. По даташиту для ds1307 напряжение логической единицы — 2.2В, то 3.3В будут вполне в штатным.
7. Watchdog В системе используется аппаратный i2c интерфейс, во время ожидания отправки/приёма байта процессор «спит». В случае сбоя/отключения зажигания в это время — микроконтроллер может не дождаться ответа slave-а и остаться в «спящем» режиме. Для исключения подобных зависаний используется аппаратный watchdog микроконтроллера. В основном цикле watchdog постоянно сбрасывается. В случае зависания — основной цикл останавливается и watchdog переполняется, посылая микроконтроллеру reset. Для определения характера reset (power on или watchdog) в программу введена переменная, не инициализируюемая при сбросе (#pragma NOINIT). Если она равна известному значению — был сброс по watchdog.
8. Калибровка В принципе калибровку можно сделать уже в бою, например, ехать с определённой скоростью по gps. Набрав, например, 30 км/ч — нажать на капу, и спидометр запомнит измеренную частоту импульсов, соответствующую 30 км/ч. Но на задней стенке была интересная надпись:

Таким образом 10 импульсов датчика скорости будут соответствовать одному метру, пройденного автомобилем. Если будут значительные отличия по факту — внесу нужные коррективы.
9. Виброустойчивость. Прибор предназначен для эксплуатации в сложных с точки зрения вибрации условиях. В Интернетах не нашёл информации про виброустойчивость ИН14. Время, как говорится, покажет. Электрические соединения сделаны старым добрым МГТФ-ом. После проверки модулей — они были залиты эпоксидным клеем. Кстати нашёл в fixprice вполне себе клей в формфакторе двойных шприцов.
Вот элементы конструкции:





10. Разное. Существующий пробег сохранён предварительно с вышеозначенной бумажки в энергонезависимой памяти. Кстати о ней. В msp430 энергонезависимая память организована постранично. Для пользователя доступно первые три. В четвертой хранятся калибровочные данные тактового генератора. Сохранение показаний основного счётчика пробега и двух дополнительных сбрасываемых одометров производится последовательно, заполняя поочередно первые три страницы flash. При достижении конца третьей страницы — первые три страницы стираются и запись начинается снова с начала первой. Таким образом увеличивается ресурс flash, хотя ресурс замка зажигания (сохранение происходит при выключении зажигания), конечно, меньше чем ресурс стирания записи flash.
В панели приборов:

В принципе всё. Жду комментарии и замечания. Архив с исходниками и схемой в diptrace по традиции в картинке:
К сожалению, обновленный habrastorage распознает архив в картинке и не даёт его сохранить, поэтому вот исходники и схема:
dl.dropboxusercontent.com/u/974924/nivaCon2.rar
P.S. И да, этим лампам ИН14 — действительно 44 года.
P.P.S. Видео на ходу снять не удалось. Не хватило рук. Определение скорости сверил по GPS. Отклонения ± 4 км/ч на скорости 40км/ч. Вполне достаточная точность.

Вот видео:

Снимал вот так:
Поделиться с друзьями
-->

Комментарии (72)


  1. aivs
    02.08.2016 23:12

    Ах этот теплый ламповый цвет, в машине наверное стало также комфортно, как вечером в большом мягком кресле перед камином.


    1. shtirlitsus
      02.08.2016 23:14
      +3

      На самом деле машина используется в режимах далёких от комфорта


  1. skoptsev
    02.08.2016 23:14

    Ну прям как машина времени :) Красиво.


  1. Dreaming
    02.08.2016 23:16
    +2

    Видео все таки хотелось бы. Спасибо за статью


    1. shtirlitsus
      02.08.2016 23:19

      попробую завтра с экшен камерой


    1. shtirlitsus
      03.08.2016 10:41

      добавил то, что получилось


  1. dfgwer
    02.08.2016 23:32
    +1

    А им удобно пользоваться? Просто в стрелочных приборах, можно запомнить правильное положение стрелки и не вчитываться в цифры.


    1. shtirlitsus
      02.08.2016 23:42
      +1

      Мне нравится, но я — лицо заинтересованное ;)
      А так, видел на массе автомобилей цифровые спидометры. Вполне себе читабельные.


    1. ruYeti
      03.08.2016 07:38
      +1

      Мнение личное, но всё же… Удобство сильно зависит от расположения прибора. На многих автомобилях стрелочный спидометр частично перекрыт рулём. Если спидометр находится справа от тахометра, то руль как раз закрывает диапазон 60-100 км/ч, а это те скорости, которыми часто пользуешься. У меня такое было на 2 из 3 авто. Сейчас между тахометром и спидометром установлен бортовой компьютер с крупной индикацией скорости. Читаемость отменная.


      1. iago
        03.08.2016 12:42

        У меня то же самое на последнем фокусе. К сожалению, я настолько привык к цифровому спидометру, что не могу уже переключить экран на что-либо другое — аналоговый просто не видно.

        А вот в BMW, второй машине, история другая — там все как-то расположено так, что приборку при любом положении руля прекрасно видно!


    1. jabr
      03.08.2016 07:48

      Цифровая панель очень удобна — глаз «цепляет» цифры гораздо лучше, чем «правильное» положение стрелки (https://h-a.d-cd.net/af3d0b4s-960.jpg)

      Думаю что именно поэтому на F1 так
      http://zero-100.ru/drag/rul2.jpg


      1. Rifal
        03.08.2016 09:16

        в F1 не смотрят на приборы, зачем им это? Для езды по питу и за сейфети-каром есть лимитаторы.


        1. jabr
          03.08.2016 10:09


        1. vlreshet
          03.08.2016 10:12

          Подозреваю что различить «на глаз» 240 и 280 км/час — проблематично, а пилоты идеально знают трассу, и граничные скорости на которых реально пройти поворот. В F1 за каждый кг веса борятся, они точно не ставили бы ненужный прибор


          1. Rifal
            03.08.2016 12:28

            Проблема в том, что эти «граничные» скорости постоянно меняются — нагрев\прорезинование трассы, шины, изменение веса из-за расхода топлива, смена траектории из-за соперника и т.д. Единственная функция прибора — это если сломается или не сработает лимитатор скорости, а нужно ехать по пит-лейн (там есть ограничение).


        1. GavriKos
          03.08.2016 10:18

          Смотрят, но не на спидометр явно. В основном — текущая передача важна, и обороты, которые не стрелочные. Ну и одна из причин (предположительно) почему в F1 приборы цифровые — руль то съемный. Тяжеловато будет завести туда все приборы, надежности меньше.


          1. igruh
            03.08.2016 11:02

            Не совсем верно — во многих современных машинах индикаторы цифро-аналоговые, т.е. аналоговый сигнал оцифровывается, идёт на компьютер и там обрабатывается, после чего идёт на ЦАП, после него — на стрелочный индикатор. В своё время заметил дискретность движения стрелок некоторых приборов, пообщался с профессиональными ремонтниками, и они эту гипотезу подтвердили.


            1. immaculate
              04.08.2016 22:38

              Проще всего это увидеть на мотоциклах. На некоторых мотоциклах с ABS, например, для подсчета скорости используется датчик ABS, и при неисправности ABS перестают работать спидометр и одометр.


          1. Rifal
            03.08.2016 11:40

            Извините, но это не так. Пилоты концентрируются на трассе и соперниках, поэтому им важно всё это делать на автомате. Информация о передаче и скорости вообще смысла не имеет в гонке, а обороты чувствуются и без индикаторов. Даже редкая смена режимов двигателя долго отрабатывается на симуляторе, а уж переключение передач у них должно быть отработано ещё в детстве «взрослого» картинга. Конечно, иногда ломается лимитатор и не работает определенная передача — тогда да, приходиться посматривать.


            1. jabr
              03.08.2016 16:09

              Ну понятно, что они не высматривают, все видится в нужные моменты периферийным зрением. Как-то слабо верится, что в F1 приборы на руль просто для красоты лепят.


              1. dfgwer
                04.08.2016 00:21

                Думаю она важна при тренировке. Вроде въехать в определенный поворот на 200км/ч, это потом показания превратятся в ощущение правильности и не будет нужны в спидометре


      1. Kaktuzyatko
        03.08.2016 10:33

        В гонках я думаю просто места мало на руле, а спидометр нужен в основном на пит-лейне, точнее перед заездом.
        Лично мне гораздо удобнее нормальные контрастные стрелки, цифры тяжело воспринимаются, и к тому же их надо «анализировать» чтобы понять, с какой скоростью едешь.


        1. jabr
          03.08.2016 16:21

          В далекие детские времена, когда только вышла NFS PU, увлекался и гонял на время, на форуме была таблица рекордов. «Контрольные» точки (на самом деле их не было, каждый определял их сам для себя) и скорость в них ловились на уровне подсознания, но только с цифровым спидометром. Аналоговый такого результата не давал.


          1. DMGarikk
            03.08.2016 17:43

            игры и реальный автомобиль всётаки слишком разные вещи, в большинстве случаев именно цифровое значение скорости не нужно воообще, оно ощущается буквально пятой точкой


            1. jabr
              04.08.2016 02:46

              Вот по себе скажу: там, где надо контролировать максимально допустимую скорость, использовать пятую точку в качестве датчика представляется сомнительным решением. Говорю по своему реальному водительскому опыту на дороге: предпочитаю спидометр и именно цифровой.


    1. AndyE
      03.08.2016 16:13

      Езжу иногда на Цивике 8 поколения. Спидометр цифровой. Не мешает, не напрягает.
      Скорее даже проще, так как нет необходимости вглядываться в положение стрелки спидометра. В затененном стакане иногда ошибочно с первого взгляда читается 60 вместо 80.


  1. Siper
    02.08.2016 23:59

    я бы сделал чтобы пробег с точностью до метра отображался


    1. shtirlitsus
      03.08.2016 00:02

      Ну до метра — лишнее, и точность сомнительная. Основной пробег классический — в километрах. Два дополнительных одометра — точность до 10 метров. Сниму видео — будет понятно.


  1. DROS
    03.08.2016 01:51
    +2

    Лампы то от тряски не помрут? К тому же явно сказано в комменте выше — «На самом деле машина используется в режимах далёких от комфорта»


    1. tormozedison
      03.08.2016 06:21

      В них нету нитей накала. От тряски особо помирать нечему. Если только катоды деформируются или соскочат с держателей, но это вряд ли.


      1. DMGarikk
        03.08.2016 09:43

        они не соскочат, а деформироватся могут… у меня помнится была декоративная неоновая лампочка «свеча», вот такая лампочка, её однажды немного тряхнули рукой и лепесточки внутри погнулись

        вот примерно также может с индикаторами случится


    1. L_Andrey
      03.08.2016 08:04
      +5

      Отвалится и отвалится, ничего страшного. Опытный водитель жигулей знает скорость по номеру включенной передачи и тональности воя мотора. Эти машины созданы для экспериментов и рукоприкладства.


    1. shtirlitsus
      03.08.2016 08:05

      Время, как говорится, покажет


  1. ns3230
    03.08.2016 06:48

    А как снимаются показания скорости?


    1. shtirlitsus
      03.08.2016 08:07
      +1

      датчик скорости 10 импульсов на оборот(ДСА-3)

      раз в полсекунды вычисляется скорость по накопленным импульсам


      1. ns3230
        03.08.2016 08:36

        Про датчик я понял. А где он установлен? На тросике родном, прямо на приводе спидометра или еще где-то?


        1. shtirlitsus
          03.08.2016 08:57

          На родном тросике вместо старого спидометра.


          1. unwrecker
            03.08.2016 09:45

            Наверное, лучше прямо у коробки — минус один узел отказа. Я, когда ставил чайный навигатор на классику, так и делал.


            1. shtirlitsus
              03.08.2016 10:43

              Все верно, но когда плаваешь по болотам — стараешься электронику задрать как можно выше ватерлинии.


              1. unwrecker
                03.08.2016 11:45

                Ну да, у меня был несколько другой вид соревнований :)


  1. UrbanRider
    03.08.2016 08:45

    Есть ли возможность попросить кого-нибудь из знакомых заснять в работе при движении? Было бы здорово!


  1. Tujh
    03.08.2016 08:52

    Отклонения ± 4 км/ч на скорости 40км/ч.
    Напомню, только, что согласно техническим правилам, спидометр имеет право только завышать скорость, то есть погрешность должна быть только с одним знаком. Делается это что бы не было спорных моментов с ДПС, у которых на радаре 83, к примеру, а на спидометре 79.


    1. shtirlitsus
      03.08.2016 08:58
      +1

      Согласен, но на самом деле не успевал следить за дорогой, спидометром и показаниями скорости GPS. Надо со штурманом прокатиться.


    1. DMGarikk
      03.08.2016 09:41
      +1

      Спорных моментов не с ДПС, а с безопасностью, чтобы «да я по городу всегда 60 езжу, а навигатор дешевый, врёт что 100 кмч», не было

      ДПСу бесполезно доказывать то что спидометр показывает, т.к. их радар априори «более точен» для суда


      1. diller61
        03.08.2016 09:56

        1. Rifal
          03.08.2016 11:45

          Увы, Верховный суд Татарстана отменил данное решение http://www.mk.ru/social/2016/06/08/verkhovnyy-sud-otmenil-reshenie-po-delu-osporivshego-shtrafy-gibdd-fizika.html. Так что ГИБДД в любом случае добьется своего.


      1. Tujh
        03.08.2016 10:02

        Вообще-то, нет.
        Для безопасности погрешность может как раз быть «плюс-минус» в разумных пределах. И правило возникло на основе прецедента европейского суда, на заре внедрения радаров на дорогах. Если правильно помню, потерпевший доказал в суде именно такую ситуацию, что, согласно показаниям спидометра, он ехал в пределах разрешённого, к примеру — 79 км/ч, а радар показал — 81 км/ч (цифры я привожу по нашим текущим ПДД), так как спидометр имеет погрешность «плюс-минус» то и может занизить значение, что приведёт к ложному спокойствию водителя. Кроме того, на показания спидометра легко влияет диаметр колеса (меньшие/бОльшие диски, узкопрофильная резина на штатных дисках и т.п.).
        Поэтому, что бы у водителей больше не было возможности опротестовать штрафы в судебном порядке было выпущено предписание всем производителям выпускать спидометры, способные только завышать показания.


    1. andreykorol
      03.08.2016 10:33
      +1

      ГОСТ Р 41.39-99:
      Скорость по прибору никогда не должна быть меньше истинной скорости. При значениях скорости, предусмотренных для испытаний в 5.2.5, между этими значениями должно соблюдаться следующее отношение между скоростью, указываемой на шкале спидометра (V1) и истинной скоростью (V2):
      0 < V1-V2 < V2/10+4км\ч


  1. Varkus
    03.08.2016 09:54
    -2

    для ваз 2121 трёхзначный индикатор не много ли? может и двух знаков хватило бы?


    1. shtirlitsus
      03.08.2016 10:44

      ну кудаж 3-ю лампу-то девать? ;) А так концепт не только для ВАЗа


    1. aitras
      03.08.2016 11:02
      +2

      Нет. Все же > 100 км/ч бывает. По-вашему чуть больше ста и все, индикатор обнулится?


      1. LynXzp
        03.08.2016 16:44
        +1

        Почему бы и нет, а третью лампу оставить про запас, выше писали что высокая вероятность выхода из строя при тряске. Когда скорость больше 100 и так понятно. Больше 200? Наверное это тоже будет заметно =) (при езде по отвесной «дороге»?).


    1. Varkus
      03.08.2016 11:44

      ну ладно вам, это же <sarcasm-mode> был :)
      а по факту, мой батя купил такую с завода. За последующий месяц уже 3 раза в сервис за «ноздрю» таскал.
      — в салоне у печки перетёрло резиновую трубку, вода из двигателя «ушла»
      — загорелась лампочка «масло», хз что там было
      — погасла вся электрика
      т.к. авто на «гарантии» никто никуда не лазил, только сервис.

      у знакомого на более 100км/ч отлетела дверь багажника, оказалось болты петлей не имели резьбу, видимо всё держалось на кувалде и такой-то матери.


  1. PKav
    03.08.2016 09:55
    -1

    Если уж и делать такую переделку, то лучше добавить в схему GPS-модуль и снимать с него всегда точные данные о скорости, а на штатный датчик скорости переходить при потере фиксации по спутникам. Бонусом более точный одометр и точное время.


    1. GavriKos
      03.08.2016 10:25
      +1

      ИМХО классическое измерение скорости точнее. И дешевле. Особенно когда нужна точность +-5км/ч


      1. PKav
        03.08.2016 10:32

        Может и дешевле, но уж никак не точнее.


        1. LynXzp
          03.08.2016 16:38

          Ага, особенно в туннеле, или при сильной облачности, или если рядом кто-то глушит, или в подземной стоянке, или после холодного старта.


          1. PKav
            03.08.2016 16:54

            Холодный старт у современных модулей 30-40 секунд после простоя более недели, облачность вообще не замечал чтобы как-то мешала, а в туннеле можно переключиться на штатный датчик.

            А вообще, я разрабатывал подобные устройства, может и мне написать статью сюда, раз эта понравилась людям…


            1. LynXzp
              03.08.2016 17:02

              Про облачность я вспомнил только потому что кто-то жаловался.

              Да, конечно, статьи про разные устройства интересные, особенно про неожиданные подводные камни и оригинальные подходы.


    1. Insspb
      03.08.2016 10:28

      Тёплый и ламповый ГПС модуль есть? :)


      1. PKav
        03.08.2016 10:38
        +1

        Есть. Геос-1М называется. :)


  1. dushes
    03.08.2016 10:20

    Пробег 68 тысяч. Второй круг пошел?


    1. shtirlitsus
      03.08.2016 10:45

      Тссс!!! Я смотал половину пока программу писал.


    1. Tujh
      03.08.2016 10:50
      +1

      Второй круг пошел?
      Да Вы оптимист.
      Если не поняли, есть старая байка про Мерседес, кажется, из 90-х, у которого к 10 годам, пробег составил 30 тысяч, на вопрос, как так, продавец отвечал, что это уже второй круг. По факту круг был третий.


  1. herr_kaizer
    03.08.2016 17:43

    А техосмотр с такой штукой пройти можно?


    1. shtirlitsus
      03.08.2016 18:04
      +3

      у меня спидометр не основная проблема с техосмотром :)


      1. makecode
        03.08.2016 18:39

        Так у вас с таким диаметром колес спидометр должен меньше показывать.


        1. shtirlitsus
          03.08.2016 18:43

          У раздатки передаточное число измененно. На спидометр снимается правильно (1 метр на один оборот)


  1. Arezus
    08.08.2016 11:04

    Я на раллях гоняю, у нас трип-компьютер с аналогичным датчиком скорости, только на 6 импульсов на оборот.
    Калибруем его таким методом: входим в режим калибровки, проезжаем контрольный километр, ТК насчитывает импульсы, затем вбиваем расстояние и ТК высчитывает коэффициент имп/метр, обычно это цифры порядка 15.351, в которые вкладывается и диаметр колес и передаточные числа и давление в шинах. Калибруем раз в период.
    Но есть проблема — когда датчик останавливается на границе чувствительности, от вибрации мотора/коробки на стоячей машине получаем скорость от 16 до 70 километров в час, в зависимости от положения магнитов. Фильтровать программно такое не получилось, между допами, где и нужен ТК, такие выбросы совсем не простительны, на больших перегонах порядка 17-20 км можно долеко не туда заехать. Решением проблемы сделал следующее — у штурмана в ногах стоит огромная красная кнопка СТОП в разрыв сигнала от датчика Холла. Только стали — он ее ногой зажимает, тронулись — отпускает, удобно — капец…
    Как с этим дребезгом обстоят дела у Вас?


    1. shtirlitsus
      08.08.2016 11:17

      Я таких косяков не замечал. Думаю, вам следует заменить датчик скорости, тем более, если есть возможность калибровки — поставьте как у меня 10-импульсный. Он Волговский, судя по всему.


      1. Arezus
        08.08.2016 11:27

        Попробую, может мой расхлябаный просто. А этот 10-импульсный тоже на датчике Холла или там другой датчик?


        1. shtirlitsus
          08.08.2016 11:30

          да, такой же Холл. три провода (питание, масса и выход)