Как стать автором
Обновить

Комментарии 50

На лабах по теории управления давали решать задачки с позиционированием головок HDD, а здесь живой тахометр, отлично!
Спасибо!
Кстати не поверите, но во время работы я задумывался над позиционированием головок.
Это вы на видео повторяете как мантру?
— Сукин сын… Сукин сын!
Хахаха.
Нет, это идет одна из последних серий Breaking Bad.
Я бы просто взял тахометр от приоры и засунул в обертку от жигулей :)
И если возможно, дайте пожалуйста совета, да или нет, решение буду искать сам (в тексте не все понятно, но если окажется решение проблемы, перепрочту более внимательно). Я не ВАЗе езжу, на волге, и при переключении передач с 4 на 5 на скорости свыше 100 км\ч, стрелка тахометра прыгает как у вас в видео без сглаживания, даже чуточку сильнее. Двигатель инжектор. Возможно ли сгладить покачивание стрелки или это «приговор» с завода? Не смертельно, но приходится ждать около 3 секунд пока стрелка покажет точный оборот.
Приоровская панель приборов вся собрана на одном контроллере и одной большой печатке. Выпилить оттуда тахометр так, чтобы он вместился сюда считай не реально. Из приоровской панели можно было взять разве что микросерву, которая двигает стрелку и организовать уже управление не амперметром, а шаговым двигателем… Но приборки у нас не было и как-то на том и порешили.

Ну сгладить то всегда можно. Другое дело, что на это придется потратить либо время и силы, либо деньги.
В общем какого-то простого, быстрого решения я пока не знаю.
Спасибо. Я ни разу не видел разобранную панель приоры, не знал что она на одной плате, беру свое решение обратно:)
Вопрос: стоило ли заморачиваться с МК?
Этот самый январь выдает те же 2 импульса на один оборот коленвала, что и при обычном варианте использования, разве что импульсы инвертированы(активный уровень — низкий). Почему нельзя было поставить инвертирующую схемку?
Можно. Именно это и было первоначальной идеей. Но клиент очень настаивал на точности. Условием приёмки прибора является чёткое схождение показаний на всех делениях. Гарантировать этого при подобной доработке я не мог. Более того, в сети нашлось не мало отзывов о том, что этот прибор нагло врет уже с завода. Так что это нетривиальное решение было продиктовано именно поставленной задачей.
> будет установлено на славный автомобиль ВАЗ 2108

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

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

Одно только добавление по железу: обмотка миллиамперметра — не чисто омическая, она обладает еще и индуктивностью — а значит, переход 0->1 на управляющем прибором выходе порта приведет к стремлению индуктивности поддержать протекающий через нее в землю ток в 10 мА (при показании полной шкалы), но теперь уже по цепи "+5 --> ограничительный резистор --> обмотка прибора --> вывод порта --> +5" — то есть индуктивность будет пытаться приложить к выводу порта еще одни 5 вольт сверх того, что там уже есть. Этому воспрепятствует встроенный в tiny защитный диод, однако я бы зашунтировал обмотку дополнительно внешним диодом Шоттки.
На самом деле я ждал, пока кто-то заметит.
Такой диод конечно же существовал на макете и существует в готовом устройстве, но в схему и на печатку он не попал по запарке(скорее всего потому, что делалось всё это ночами после работы).
Припаян он под платой и его не видно сверху.
Вид сбоку всё прояснит
image
Ну тогда еще позазанудствую: вход измерения частоты при отключенном от бортовой проводки приборе висит в воздухе — я бы его подтянул внешним резистором к нулю, чтобы не болтался на время инициализации ( я думаю в коде вы используете pull-up).
А в принципе, входы с активным нулем и пассивным уровнем выше логического лучше делать так — резистор подтяжки между выводом порта и питанием, а от вывода порта до внешней схемы — достаточно высоковольтный диод шоттки катодом наружу. Вроде все то же самое, но диод дешевле стабилитрона, нужный фронт не заваливается из-за отсутствия ограничительного резистора, да и входное сопротивление схемы можно сделать выше.

Теперь — рацпредложение: при подаче питания можно входить в тест-режим и последовательно показывать на приборе обороты от 1000 до 8000 с шагом 1000, удерживая каждое показание около пары секунд — будет выглядеть очень эффектно, и кроме того, служить калибровочным тестом. Для придирчивого юзера можно вообще сделать кнопки коррекции калибровочных показаний, запоминая коэффициенты в епром, и пересчитывая текущие в рабочем режиме соответственно. Тогда и резистор подбирать не надо будет — все можно будет сделать программно
Идея с диодом мне понравилась, спасибо.
Кстати мысль пришла, что помимо указанного вами входа, наверно было не очень правильно и неиспользуемые пины оставлять висящими в воздухе.
По олдскульным спецификациям на применение цифровых ИМС входы в воздухе оставлять не комильфо. Однако, в современных uC и SoC чипах такое количество выводов, что если все неиспользуемые сажать на землю, то никаких слоев печатки не хватит, чтобы развести функциональные ). Поэтому можно не сажать, а со сквозными токами и пробоями борятся внутренними средствами. Ну и вообще — на короткой ноге много не наведется…
Достаточно корпус прибора о шерстяной свитер потереть… Если оставить вывод АЦП висящим в воздухе, то устройство будучи на столе прекрасно реагирует на потенциал создающийся на человеке в результате вставания с кресла.

Можно не сажать на землю, а просто активировать внутреннюю подтяжку вывода, тогда его потенциал зафиксируется встроенным стабилизатором тока к "+".
Почему-то думал, что пулапы по дефолту включены, но сейчас подумал и понял, что нет.
А вообще надо бы, надо бы включить их. В автомобиле хватает всяких помех и наводок. Перепрошью девайсик по возможности.
Я предусмотрительно оставил хвост с ISP разъемом, так что обновление прошивки проблем особых не вызывает.
Круто, нужно будет и себе попробовать тах сделать. Видео работы (со звуком само собой) на машине снимете?
Попробуем.
Круто, очень плавно назад идет!
А клиенту как понравилось!!!
А на обратном ходе стрелка резко прыгает. Не было желания сгладить и обратное движение?
Обратное движение сглаживается точно также. Просто в проверочном коде при достижении 8000 тупо стоит 0 и цикл повторяется заново.
Возможно, было бы надежнее и проще реализовать алгоритм классического ПИ- или ПИД-регулятора, в качестве сигнала обратной связи для которого выступала бы модель поведения стрелки, все вычисления так же можно было бы проводить в целочисленном виде. Достоинства такого подхода — возможность гарантировать минимальный переходный процесс.
Заодно математику подтянуть…

Впрочем некоторые улучшения можно внести и на данном подходе — чтобы уменьшить вылет стрелки — на последнем этапе её необходимо притормозить дав на короткое время значение положения в противоположную сторону от текущего на 30...40%(подобрать экспериментально) от оставшегося до цели.
Про модель поведения стрелки задумывался, но это уже слишком.
Можно будет наверное тихими зимними вечерами как-нибудь заняться чисто ради спортивного интереса…
Да чего там моделировать — обычное интегрирование. Классический инерционный параметр. Главное подобрать нужный коэффициент определяющий зависимость изменения скорости стрелки к приложенной к ней силе(разница положений между текущим и установленным положением)
Боюсь там всё будет не так просто. Магнитному полю противодействует пружина, которая даже на глаз видно, что не линейная. Вращающийся механизм не сбалансирован и поэтому грузик до 4000 помогает катушке, а потом противодействует ей… Если ось стрелки параллельна земле — трение выше, чем если она перпендикулярна. Там, конечно, чем-то можно пренебречь, но если уж делать совсем правильно — то придется попотеть…
Основная проблема — инертность. Все остальное вторично. Влияние пружины можно учесть в разных коэффициентах на движение стрелки вперед/назад.

Хотя, основная проблема возникает на этапе приближения стрелки к указанной позиции — надо её просто вовремя затормозить на последнем этапе «нацеливания», поможет некоторое нарушение логарифма в конце — загнуть кривую слегка вниз в конце — будет дополнительное торможение.
В общем-то тема очень интересная. Я когда-нибудь к ней вернусь.
Просто пока я ни разу не применял регулирование с обратной связью от мат.модели.
Насколько сложно было бы просто переделать тахометр под датчик холла на одном из шкивов?
Под холла ничего и переделывать не нужно.
Только вот на шкивы обычно ставится не датчик холла и требуется компаратор на входе, чтобы сделать импульсы прямоугольными, ну и небольшие правки прошивки. Думаю за два-три вечера можно это всё дело прикрутить без проблем.
«на одном из шкивов» — имеются в виду шкивы распредвалов скорее всего. Там как раз Холл стоит, выдает соответственно один импульс на цикл — то есть на два оборота коленвала
Сейчас можно без особых проблем использовать тахометр с кол-вом импульсов от 1 на оборот и до упора в разрешение таймера.
Один импульс на два оборота потребует немного большего, чем простое изменение константы в исходниках.
по хорошему нужна обратная связь и ПИД регулятор
По хорошему тут всё просто в несовершенство миллиамперметра упирается.
Думаю, что самым грамотным решением задачи стрелочного тахометра является уже предложенный выше алгоритм скользящего среднего для входных данных и нормальный актуатор стрелки с двумя противодействующими катушками или микосерва с моторчиком и редуктором.
Все эти ПИДы и матмодели чисто так, от любви к искусству и в академических целях рулят.
«Все эти ПИДы и матмодели чисто так, от любви к искусству и в академических целях рулят.»
хм… очень квалифицированное заявление в стиле
www.youtube.com/watch?v=s3aYelkS0Yo
вы бы изучили вопрос для начала, перед тем как такие заявления делать — например вот можно почитать www.cta.ru/cms/f/342946.pdf
«Все эти ПИДы и матмодели чисто так, от любви к искусству и в академических целях рулят.»
Кажется вы не правильно меня поняли. Очевидно, что здесь я имел ввиду, что в контексте задачи разработки стрелочного тахометра он не нужен.
К самому ПИД регулятору и моделированию у меня претензий нет. Более того — я неоднократно применял ПИД регулятор лично и имею представление как это работает, что будет легко доказать, если вы в этом усомнитесь.

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

С удовольствием приму от вас обоснованные аргументы в пользу применения ПИДа с обратной связью от матмодели vs скользящее среднее+точный актуатор.
Поскольку мы с вами «люди маленькие», давайте также для надежности разберем устройство и работу нескольких современных приборных панелей от мировых авто производителей.

В общем то я думаю ясно, что там не миллиамперметры с ПИДами и матмоделями применяются
Так что мне кажется разумно было бы на этом и остановиться.
замечу, что экспонента похожа на перевернутый логарифм…
функцию log2(n) можно (в данном конкретном случае) заменить на -(2^(9-n)) — сравните:
ваш логарифм:
  • image


и перевернутая экспонента:
  • image

а 2^(n) — это оператор "<<", а всё вместе:
1024 — (1 << (9-n)) * 4
или
1024 — (1 << (11-n))
или формула для Ёкселя:
=1024-СТЕПЕНЬ(2;11-RC[-1])

И действительно же можно через << сделать
Спасибо, взял на вооружение!
Прикольная штука! Давайте дружить проектами — я вот тоже автомобильной тематикой увлекаюсь.

Вот только Altium designer у меня нет :(
Давайте дружить!
Кстати проект был доработан. Вход с датчика потребовалось защитить по толковее. Ну и ещё даже на фото видно, что я в изделии забыл впаять тантал на +5В. В общем то не стал разбираться сбоило по этой причине или нет — переделал входняк, впаял тантал. Полет нормальный уже несколько месяцев.
ээ, подождите, так мы же уже дружим! по скайпу даже как-то общались. у меня было раннее утро, помните? )))
Точно, 23его октября. До чего добазарили хоть убей не помню :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации