Блог им. kibizoid → Песнь боли и отчаяния
Или нет повести печальнее на свете, чем повесть о приборке в драндулете...
Disclaimer
Дальше будет достаточно много текста, связанного с радиоэлектроникой. Не пинайте сильно, если чего-то не поймете.
Приборка и все датчики для нее на одном фото, пока — отдельно от мотоцикла
Мы все любим свои мотоциклы. Кто-то совсем немного, кто-то всеобъемлюще и полностью. Кто-то годами меняет прогорающие поршни на МТ, хотя за эти же деньги давно можно было взять что-то не такое ломучее, кто-то каждый день тряпочкой протирает хром любимого Вулкана, кто-то смотрит по утрам на вековой нарост глязи на Джебеле и радуется, что с каждым выездом этот слой прирастает все больше и больше. В общем, любовь к дороге на двух колесах разная, для каждого особенная.
И какая же любовь без подарков, подношений и сюрпризов для объекта своего вожделения? Каждая новая фишечка, смена поворотников на «брендовые», новый выхлоп, перетяжка сиденья, покраска или еще что-то другое воспринимается как что-то очень хорошее, приятное и, главное, нужное и важное. Как правило именно этим мы занимаемся в межсезонье, так ведь? А уж тем более если это еще и связано с ремонтом сломавшейся системы…
Прошлым летом я купил по знакомству за вполне адекватные деньги Honda AX-1 в комплект к своему элекромопеду и строящемуся электромоту, дабы осознать, каково оно ездить на бензине. Мот мне достался в достаточно приличном и адекватном состоянии (спасибо бывшей хозяйке), но годы таки брали свое — строительные шурупы в креплениях на пластике, синяя изолента под черной изолентой, мелке проблемы с тормозами и потянутый ГРМ — далеко не полный список. В общем, было где разгулятьсяколхозингу техническому творчеству. Да и по старой админской привычке я люблю решать проблемы по мере их поступления. А тут уж сам бог велел начинать что-то делать.
А тут еще и неработающий спидометр (всего-то стерлась шестеренка)… Что сделает нормальный человек в моем случае? Как правило, — просто купит новую шестеренку, поставит на место в привычном мотосервисе и забудет о проблеме на ближайшие 20-30 тысяч. Иной просто поставит крепление для яблофона на руль и будет смотреть скорость по GPS'у — кому он нужен тот стандартный спидометр? Но, черт побери, на дворе 21-й век, а у нас до сих пор тросиковая механика и шестеренки, или неработающая система в любимом транспортном средстве! Непорядок, не так ли? Тем более насмотревшись на простоту работы датчика скорости в элекромотах было принято решение «починить» спидометр самому посредством его полной замены на электронный.
С виду задача проще простого — берем датчик Холла, магнитик, какой-нибудь контроллер или плату на его базе — и вперед на мины! Да и после электрических самостроев такой проект больше выглядел как приятный отдых с паяльником во время прогулки под полной луной. Я то ведь уже ого-го! Если бы я знал, как я ошибался… Собственно именно с этого момента в середине ноября прошлого года и началось мое 3-хмесячное путешествие в мир радиоэлектроники и всего, что с этим связано.
Первый набросок будущей приборки
Очень быстро я понял, что просто спидометр — это не интересно. Конечно же хотелось полностью интегрированного в стандартную приборку решения, которое бы мало чем отличалось по внешнему стилю от «мотоцикла из 80-х». Все-таки ставить ЖК-панель в такой мот — это кощунство и издевательство над классикой. Ну что же, что у нас там в приборке? Одометр, тахометр, лампочки всякие. Может быть спроектировать новую приборку? «Да почему бы и нет?», подумал я и засел на пару дней в SketchUp, родив по итогу первый набросок будущего девайса на светодиодах и семисегментных индикаторах (Вы же помните про стиль 80-х? ^_^ Back to the Future, вот это все...).
В качестве базы решил использовать Arduino Mega 2560, т.к. она была прямо под руками и можно было предварительно поэкспериментировать и выяснить работоспособность моих идей. Достаточно быстро определился с общим дизайном, нашел подходящие контроллеры светодиодных матриц (спасибо чайнапрому и Adafruit'у за наводку — чипы действительно замечательные, советую присмотреться тем кто в теме). Заказал десяток микросхем и в следующие несколько дней полностью разобрал морду мотоцикла для торжественного демонтирования старой приборной панели.
Передняя панель, готовая к фрезеровке
После вскрытия приборка была нещадно выпотрошена и препарирована дремелем для того, чтобы ардуинка туда хотя бы помещалась. С питанием контроллера (+5V) определился тоже достаточно быстро — в закромах нашлась пара импульсных регуляторов LM2596 с переменными резисторами. Можно аккуратно отстроить на 5V и это будет как раз то, что нужно. Снял мерки со стандартной панельки с циферблатами, смоделировал пластину все в том же SketchUp'е и полностью определился с расположением компонентов. После этого осталось только сделать плату, спаять и начинать настраивать.
Тут как раз и мои микросхемы приехали! Вообще замечательно, шик-блеск-красота, бежим на радиорынок, набираем семисегментных дисплейчиков, бумаги для ЛУТ (лазерно-утюжная методика изготовления плат, гугл в помощь если интересно ^_^), выпрашиваем у друга принтер. В принципе, можно начинать воплощать замысел в жизнь.
Вот тут меня ждала первая засада. Несколькими месяцами ранее с другом в гараже мы закончили еще один такой маленький проект — собрали на ардуине ЧПУ-станок (портальник с подвижным столом) на компонентах из строительного супермаркета с бормашинкой в качестве шпинделя. По дереву и пластику работает замечательно, а вот для чего-то больше жесткости и точности уже не хватает. Ну не беда на самом деле, для наших задач — за глаза. Именно на этом станочке я вырезал текстолит для плат и сверлил его под будущие платы. Так вот, главная засада заключалась в подаче по оси Z — она играла и люфтила как на рояле несмотря на все регулировки и нещадно ломала через 10-15 отверстий любое сверло меньше 1мм. Поломав два десятка свёрл я решил, что минимально возможное отверстие будет 1мм.
Первый релиз разводки. Никогда в жизни такое я бы не смог спаять
Да и дизайн платы меня, по хорошему, совсем не радовал. Каждый семисегментный дисплей требует под себя как минимум 8 каналов на каждый сегмент (по факту — отдельный светодиод) и 4 канала для отдельных символов. Слава богу — каналы на сегменты можно использовать общие для всех дисплеев, если их у вас на 1 микросхеме больше одного. Так вот, с такими параметрами у меня выходило следующая картина: 1 микросхема рассчитана на 8 com-каналов и 16 row-каналов. Т.е. 8 столбцов х 16 строк. Семисегментный индикатор, по факту — мультиплексированная сборка светодиодов, в которых все аноды или все катоды соединены в отдельный канал для каждого символа. В микросхеме драйвера HT16K33 это предусмотрено, а вот в моих мозгах — нет. Именно на этом я стал немножко опытнее и потерял немножко денег. Если к микросхеме привязывать экраны с общим анодом — то можно привязать всего 2 четырехсимвольных дисплея. А вот если с общим анодом — то уже 4 (несимметричная сборка 8х16), таким образом уменьшив общее количество потраченных микросхем с 4 до 3. В общем и целом пришлось снова ехать на радиорынок и покупать еще одну партию семисегментных дисплеев, но теперь уже не с общим катодом, а с общим анодом. Да, life sucks.
Дождавшись из Чайнезии свои 10 микросхем я распаял 2 штуки на макетке и провел первые тестовые испытания на светодиодиках и экранчиках на хлебной доске. Как показали сами испытания — все достаточно тривиально и работает без особых проблем. Рулить драйвером через I2C шину оказалось проще простого. Интерфейс драйвера — матрица памяти. Пишешь единичку в нужную ячейку — получаешь горящий светодиод. Пишешь нолик — светодиод гаснет. Это вселяло оптимизм и я с удвоенным рвением принялся за проектирование платы.
Примерочка
Как вы понимаете, череда моих фэйлов на этом не закончилась. При проектировании платы выяснилось, что даже 3 микросхемы + все индикаторы + почти 80 светодиодов в достаточно хитрой компоновке на нее просто не помещаются и в домашних условиях я такого монстра распаять нормально просто не смогу. Принял решение разделить плату на 3 части — по одной части на левые-правые экранчики и отдельно — на светодиоды шкал. С такой компоновкой, конечно же, гемморой с платами слегка увеличивался в объеме, но платы становились вполне паябельны. Первая изготовленная плата оказалась тоже сплошным фэйлом — лазерный принтер имеет свойство несколько растягивать изображение из-за температурного расширения бумаги и на достаточно большой распечатке это становится очень заметно при сравнении с каким-либо эталоном. Да и распечатал я ее тупо на засверленном куске текстолита без обрезки. В итоге промучавшись с ней вечер отправил в утиль.
Следующие варианты плат я уже обрезал на станке. Технология оказалась достаточно проста. Нашел Open-Source комплекс для проектирования, сверловки и фрезерования печатных плат (FlatCam, очень советую), Проектировал разводку в DipTrace, после этого экспортировал все в Gerber, скармливал FlatCam'у, получал из него готовый NC-код для станка, дальше — сначала насверливал, после — обрезал и забирал полуфабрикаты плат домой. Дома на бумаге для ЛУТ'а распечатывал две стороны платы по макетам DipTrace, гладил утюгом, травил в хлорном железе и по выходу уже получалось что-то похожее на нужный мне результат. Правда отверстия таки посъезжали немного, но в целом это было то что нужно.
Проверяем микросхемы
Как говорил мне один знакомый — в электронике есть всего 2 поломки. Либо сигнал идет там, где его быть не должно, либо сигнала нет там, где он быть должен. Так вышло уже и с распаянными платами — некоторые каналы не работали, некоторые дорожки от врожденной криворукости оказались спаяны между собой, и т.д. и т.п. Провозившись две ночи с DipTrace'ом и звуковым тестером проводимости я таки смог довести все платы до рабочего состояния. Дальше пара часов на тестовую прошивку — и моя новогодняя елка таки зажглась веселыми огнями как положено. В тот момент я был почти счастлив.
И, вроде как, дальше оставалось дело за малым — упаковать все в корпус от приборки, поставить на место и подключить все датчики. Первый серьезный вопрос, возникший тогда — что делать с поворотниками? Дело в том, что в качестве приятной плюшки я решил заменить все лампочки в АХ-е на светодиоды. Вроде как идея не плохая, но попутно вместе с частью проводки к старой приборке я вандальски выдрал из мотоцикла и реле поворотов. Тем более мне хотелось всяких приятных дополнений и было решено завести поворотники через контроллер приборки, дополнительно сделав аварийку. Но. В Приборке — 5V напряжения. Стандартное бортовое напряжение — 12V. Если запустить ардуинке 12 вольт на вход — она пустит божественный дымок, на котором работает вся радиоэлектроника и больше ничего мне показывать не будет. Нужно было искать пути выхода.
Первый блин комом
Немного поковырявшись по интернетам решил подключать нагрузку через полевые транзисторы. Съездив на радиорынок и прикупив 5 SOP-8 драйверов для полевых транзисторов и 10 сборок по два транзистора с энтузиазмом принялся их распаивать и за несколько часов успешно похлопал все драйвера. Удивлению и обескураженности не было предела. Ну как же так? Смотрю на схему — все правильно. Смотрю на распаянное — все правильно. Все провода-перемычки-контакты соединены правильно. Все ок. Включаю — хлопок, дым из драйвера, торжественная смерть микросхемы и вопль "#$%ть!" на весь гараж. Не знаю, сколько декалитров отборной матершины вылилось из меня тогда, но домв я тупо сидел и молчал, пытаясь в голове в тысячный раз прокрутить все, что я делал за день — и тут меня осенило!
Черт побери, ведь я такой болван! Дело в том, что подключать я их пытался абсолютно раздельно — т.е. я предполагал, что драйвер работает как оптопара, и земли на входе и выходе можно гальванически разделять между собой, но это совершенно не так. Они должны быть соединены! Т.е. минус аккумулятора, GND ардуины и Vss на драйвере должны быть связаны между собой одним проводником. Осенило меня в час ночи. Откопав в закромах последний живой драйвер я вызвал такси и через полчаса уже был в гараже. И таки я оказался прав! Все заработало как положено и я наконец таки по сигналу с микроконтроллера смог зажечь кусок светодиодной ленты на 12V через полевой транзистор. Еще одна маленькая радость.
Елочка гори!
В процессе этих экспериментов от переполюсовки умер один из стабилизаторов на базе LM2596, который я предполагал использовать в качестве основного питания приборки. «Не беда», думал я, у меня ж в загашнике есть еще один.
Сутра еще один поход на радиорынок за полевиками, которые управляются логическим уровнем (у полевых транзисторов есть минимальный уровень напряжения на затворе. У IRF-серии это 10V, у IRL — 5V.) — и к вечеру я получил работающий код поворотников. В тот же день получил с почты 100 метров разноцветного провода и термоусадки из интернет-магазина, докупил MiniFlex-коннекторов и контактов к ним и снова отправился в гараж, теперь уже добивать все окончательно, упаковывать питание и все остальное в приборку и разводить новый кусок проводки вместо существующего.
После двух суток грызни с проводами микроконтроллер, питание и все выходы датчиков-поворотников были разведены, подключены к коннекторам и все это было упаковано в старую приборку. Отдельно хочется сказать о самой панельке — она тоже была вырезана из 3мм акрила на станке и после просто покрашена из пульверизатора черной краской. Вышло довольно неплохо. Ну и в процессе постоянных проверок я хлопнул еще один стабилизатор (как всегда — божественный дым покинул микросхему из-за случайно упавшего минуса на плюсовую клемму аккума). В этот раз меня спасла опция «звонок другу», за что я ему очень благодарен — он успел добежать из дому до магазина на радиорыке, который продавал точно такие же стабилизаторы и через час привез мне 4 новые микросхемы. Тут же на месте перепаяв их феном я снова получил 5V питания.
Все компоненты приборки на одном столе — экран, контроллер, питание, корпус
Получив очередной нагоняй от супруги я выспался и вернулся в гараж для «завершения начатого». До вечера я смог разобраться со стандартной проводкой, подключил к правому пульту новое светодиодный ближний свет, развел новые поворотники — общем, занимался проводкой, попутно проверяя, все ли работает так, как задумано. Нужная и монотонная работа, которая делается, в принципе, на элементарном уровне — собрать жгут проводов, подключить к мотоциклу, скрутить провода в скрутки, проверить, завести, еще раз проверить, просмотреть все провода, снять кусок проводки с мотоцикла, пропаять все скрутки, позатягивать в темоусадку… Нудятина, но необходимая нудятина.
Установка приборки и настройка датчиков — это самые незабываемые танцы с бубном вокруг мотоцикла, которые съели одним махом еще двое суток моей жизни. В процессе выяснился еще один замечательный момент — любой внешний сигнал на входе в ардуину обязательно должен «прижиматься» к земле через резисторы достаточно большого сопротивления, иначе на входе у сигнала постоянно будут абсолютно непредсказуемые значения относительно погоды на марсе и температуры на Аляске. Из-за этого в процессе этих двух суток приборка несколько раз разбиралась и нужные резисторы менялись, все собиралось заново и проверялось. Слава богу в процессе ничего не хлопнуло, не сгорело и не пустило дымка. Я до сих пор удивлен, как так получилось. Датчик тахометра был собран из стабилитрона на 4,7V, ограничивающего резистора на 40кОм и диода, который защищал ардуину от обратных импульсов катушки зажигания. Датчик скорости — обычный датчик Холла и магнит на пластике колеса, термометр на двигателе — LM35, тоже достаточно элементарная вещь.
Приборка установлена
Ко всему прочему вывел 4 кнопочки на верхнюю панельку и закрыл их резинкой от протечек — Аварийка, яркость (микросхема HT16K33 имеет встроенный ШИМ на 16 уровней), сброс уровня топлива и перезагрузка контроллера.
Как-то так работа над приборкой и завершилась. После тестов выяснились баги, которые требуют исправлений, но все же сам прибор уже работает и я этому безумно рад — череда мучений, непонятных явлений и общего апофеоза безысходности таки подошла к концу. Из багов — достаточно сильные наводки с тахометра на спидометр (из-за чего спидометр до сих пор нормально не работает и показывает 460км/ч ^_^ ), которые нужно решить либо экранированным проводом, либо отдельным счетчиком на Tiny8 прямо возле катушки. Так же — маленькая частота обновления шкал, закрыть всю проводку защитным кожухом в дополнение к изоленте. И еще некоторые мелочи, которых я уже и не упомню.
Мелкая рихтовка неровностей «по месту»
Но все это будет решаться в процессе протекания мотосезона, на ближайший месяц с тюнингом я выдохся.
В качестве резюме:
— Не беритесь за большую задачу без опыта. Если в механике еще можно что-то придумать из скотча, стяжек, палочек и стекловаты, то в радиоэлектронике вас заведомо ждет Quadruple Fail. Доверьте работу профи. Они не зря едят свой хлеб.
— Если решились — приобретайте хороший и дорогой инструмент, не жалейте денег на расходники. Имея в наличии 100-ваттное дедушкино паяльное зубило для сковородок, 100-летнюю канифоль и звонилку из динамика радиоприемника у вас с вероятностью 146% ничего не получится. Приобретите паяльную станцию с феном, хорошую третью руку, увеличительное стекло, набор пинцетов, кусачек, зажимов, хороший тестер со всеми возможными функциями, маленький ЖК-осцилограф и тепловизионный термометр. Очень пригодится. Ну и хороший водорастворимый флюс (я использовал F5), припой, канифоль, как жидкую, так и твердую, спирт, хлорное железо и т.д. и т.п. Всего уже и не помню, простите.
— Всех деталей набирайте с 5-кратным, а лучше — с 10-кратным запасом. Нужно один транзистор или диод? Возьмите десяток. Нужен один резистор — берите сразу штук 40-50 этого номинала. Они дешевые и всегда в ходу.
— Тридцать раз проверяйте полюсовку, схемы и учитесь понимать их работу. В качестве хорошего начала пройдите вот этот курс -> www.edx.org/course/circuits-electronics-mitx-6-002x-0. Мне очень помогло.
Тест тахометра
Ну и в завершение — огромное спасибо моему партнеру по 2SPerformance Роме за моральную поддержку, моей супруге Лене, которая меня до сих пор не убила за все мои хобби, и другу Олегу, которому было не влом помогать мне в, казалось бы, абсолютно безвыходных ситуациях.
Stay Tuned ^_^
Disclaimer
Дальше будет достаточно много текста, связанного с радиоэлектроникой. Не пинайте сильно, если чего-то не поймете.
Приборка и все датчики для нее на одном фото, пока — отдельно от мотоцикла
Мы все любим свои мотоциклы. Кто-то совсем немного, кто-то всеобъемлюще и полностью. Кто-то годами меняет прогорающие поршни на МТ, хотя за эти же деньги давно можно было взять что-то не такое ломучее, кто-то каждый день тряпочкой протирает хром любимого Вулкана, кто-то смотрит по утрам на вековой нарост глязи на Джебеле и радуется, что с каждым выездом этот слой прирастает все больше и больше. В общем, любовь к дороге на двух колесах разная, для каждого особенная.
И какая же любовь без подарков, подношений и сюрпризов для объекта своего вожделения? Каждая новая фишечка, смена поворотников на «брендовые», новый выхлоп, перетяжка сиденья, покраска или еще что-то другое воспринимается как что-то очень хорошее, приятное и, главное, нужное и важное. Как правило именно этим мы занимаемся в межсезонье, так ведь? А уж тем более если это еще и связано с ремонтом сломавшейся системы…
Прошлым летом я купил по знакомству за вполне адекватные деньги Honda AX-1 в комплект к своему элекромопеду и строящемуся электромоту, дабы осознать, каково оно ездить на бензине. Мот мне достался в достаточно приличном и адекватном состоянии (спасибо бывшей хозяйке), но годы таки брали свое — строительные шурупы в креплениях на пластике, синяя изолента под черной изолентой, мелке проблемы с тормозами и потянутый ГРМ — далеко не полный список. В общем, было где разгуляться
А тут еще и неработающий спидометр (всего-то стерлась шестеренка)… Что сделает нормальный человек в моем случае? Как правило, — просто купит новую шестеренку, поставит на место в привычном мотосервисе и забудет о проблеме на ближайшие 20-30 тысяч. Иной просто поставит крепление для яблофона на руль и будет смотреть скорость по GPS'у — кому он нужен тот стандартный спидометр? Но, черт побери, на дворе 21-й век, а у нас до сих пор тросиковая механика и шестеренки, или неработающая система в любимом транспортном средстве! Непорядок, не так ли? Тем более насмотревшись на простоту работы датчика скорости в элекромотах было принято решение «починить» спидометр самому посредством его полной замены на электронный.
С виду задача проще простого — берем датчик Холла, магнитик, какой-нибудь контроллер или плату на его базе — и вперед на мины! Да и после электрических самостроев такой проект больше выглядел как приятный отдых с паяльником во время прогулки под полной луной. Я то ведь уже ого-го! Если бы я знал, как я ошибался… Собственно именно с этого момента в середине ноября прошлого года и началось мое 3-хмесячное путешествие в мир радиоэлектроники и всего, что с этим связано.
Первый набросок будущей приборки
Очень быстро я понял, что просто спидометр — это не интересно. Конечно же хотелось полностью интегрированного в стандартную приборку решения, которое бы мало чем отличалось по внешнему стилю от «мотоцикла из 80-х». Все-таки ставить ЖК-панель в такой мот — это кощунство и издевательство над классикой. Ну что же, что у нас там в приборке? Одометр, тахометр, лампочки всякие. Может быть спроектировать новую приборку? «Да почему бы и нет?», подумал я и засел на пару дней в SketchUp, родив по итогу первый набросок будущего девайса на светодиодах и семисегментных индикаторах (Вы же помните про стиль 80-х? ^_^ Back to the Future, вот это все...).
В качестве базы решил использовать Arduino Mega 2560, т.к. она была прямо под руками и можно было предварительно поэкспериментировать и выяснить работоспособность моих идей. Достаточно быстро определился с общим дизайном, нашел подходящие контроллеры светодиодных матриц (спасибо чайнапрому и Adafruit'у за наводку — чипы действительно замечательные, советую присмотреться тем кто в теме). Заказал десяток микросхем и в следующие несколько дней полностью разобрал морду мотоцикла для торжественного демонтирования старой приборной панели.
Передняя панель, готовая к фрезеровке
После вскрытия приборка была нещадно выпотрошена и препарирована дремелем для того, чтобы ардуинка туда хотя бы помещалась. С питанием контроллера (+5V) определился тоже достаточно быстро — в закромах нашлась пара импульсных регуляторов LM2596 с переменными резисторами. Можно аккуратно отстроить на 5V и это будет как раз то, что нужно. Снял мерки со стандартной панельки с циферблатами, смоделировал пластину все в том же SketchUp'е и полностью определился с расположением компонентов. После этого осталось только сделать плату, спаять и начинать настраивать.
Тут как раз и мои микросхемы приехали! Вообще замечательно, шик-блеск-красота, бежим на радиорынок, набираем семисегментных дисплейчиков, бумаги для ЛУТ (лазерно-утюжная методика изготовления плат, гугл в помощь если интересно ^_^), выпрашиваем у друга принтер. В принципе, можно начинать воплощать замысел в жизнь.
Вот тут меня ждала первая засада. Несколькими месяцами ранее с другом в гараже мы закончили еще один такой маленький проект — собрали на ардуине ЧПУ-станок (портальник с подвижным столом) на компонентах из строительного супермаркета с бормашинкой в качестве шпинделя. По дереву и пластику работает замечательно, а вот для чего-то больше жесткости и точности уже не хватает. Ну не беда на самом деле, для наших задач — за глаза. Именно на этом станочке я вырезал текстолит для плат и сверлил его под будущие платы. Так вот, главная засада заключалась в подаче по оси Z — она играла и люфтила как на рояле несмотря на все регулировки и нещадно ломала через 10-15 отверстий любое сверло меньше 1мм. Поломав два десятка свёрл я решил, что минимально возможное отверстие будет 1мм.
Первый релиз разводки. Никогда в жизни такое я бы не смог спаять
Да и дизайн платы меня, по хорошему, совсем не радовал. Каждый семисегментный дисплей требует под себя как минимум 8 каналов на каждый сегмент (по факту — отдельный светодиод) и 4 канала для отдельных символов. Слава богу — каналы на сегменты можно использовать общие для всех дисплеев, если их у вас на 1 микросхеме больше одного. Так вот, с такими параметрами у меня выходило следующая картина: 1 микросхема рассчитана на 8 com-каналов и 16 row-каналов. Т.е. 8 столбцов х 16 строк. Семисегментный индикатор, по факту — мультиплексированная сборка светодиодов, в которых все аноды или все катоды соединены в отдельный канал для каждого символа. В микросхеме драйвера HT16K33 это предусмотрено, а вот в моих мозгах — нет. Именно на этом я стал немножко опытнее и потерял немножко денег. Если к микросхеме привязывать экраны с общим анодом — то можно привязать всего 2 четырехсимвольных дисплея. А вот если с общим анодом — то уже 4 (несимметричная сборка 8х16), таким образом уменьшив общее количество потраченных микросхем с 4 до 3. В общем и целом пришлось снова ехать на радиорынок и покупать еще одну партию семисегментных дисплеев, но теперь уже не с общим катодом, а с общим анодом. Да, life sucks.
Дождавшись из Чайнезии свои 10 микросхем я распаял 2 штуки на макетке и провел первые тестовые испытания на светодиодиках и экранчиках на хлебной доске. Как показали сами испытания — все достаточно тривиально и работает без особых проблем. Рулить драйвером через I2C шину оказалось проще простого. Интерфейс драйвера — матрица памяти. Пишешь единичку в нужную ячейку — получаешь горящий светодиод. Пишешь нолик — светодиод гаснет. Это вселяло оптимизм и я с удвоенным рвением принялся за проектирование платы.
Примерочка
Как вы понимаете, череда моих фэйлов на этом не закончилась. При проектировании платы выяснилось, что даже 3 микросхемы + все индикаторы + почти 80 светодиодов в достаточно хитрой компоновке на нее просто не помещаются и в домашних условиях я такого монстра распаять нормально просто не смогу. Принял решение разделить плату на 3 части — по одной части на левые-правые экранчики и отдельно — на светодиоды шкал. С такой компоновкой, конечно же, гемморой с платами слегка увеличивался в объеме, но платы становились вполне паябельны. Первая изготовленная плата оказалась тоже сплошным фэйлом — лазерный принтер имеет свойство несколько растягивать изображение из-за температурного расширения бумаги и на достаточно большой распечатке это становится очень заметно при сравнении с каким-либо эталоном. Да и распечатал я ее тупо на засверленном куске текстолита без обрезки. В итоге промучавшись с ней вечер отправил в утиль.
Следующие варианты плат я уже обрезал на станке. Технология оказалась достаточно проста. Нашел Open-Source комплекс для проектирования, сверловки и фрезерования печатных плат (FlatCam, очень советую), Проектировал разводку в DipTrace, после этого экспортировал все в Gerber, скармливал FlatCam'у, получал из него готовый NC-код для станка, дальше — сначала насверливал, после — обрезал и забирал полуфабрикаты плат домой. Дома на бумаге для ЛУТ'а распечатывал две стороны платы по макетам DipTrace, гладил утюгом, травил в хлорном железе и по выходу уже получалось что-то похожее на нужный мне результат. Правда отверстия таки посъезжали немного, но в целом это было то что нужно.
Проверяем микросхемы
Как говорил мне один знакомый — в электронике есть всего 2 поломки. Либо сигнал идет там, где его быть не должно, либо сигнала нет там, где он быть должен. Так вышло уже и с распаянными платами — некоторые каналы не работали, некоторые дорожки от врожденной криворукости оказались спаяны между собой, и т.д. и т.п. Провозившись две ночи с DipTrace'ом и звуковым тестером проводимости я таки смог довести все платы до рабочего состояния. Дальше пара часов на тестовую прошивку — и моя новогодняя елка таки зажглась веселыми огнями как положено. В тот момент я был почти счастлив.
И, вроде как, дальше оставалось дело за малым — упаковать все в корпус от приборки, поставить на место и подключить все датчики. Первый серьезный вопрос, возникший тогда — что делать с поворотниками? Дело в том, что в качестве приятной плюшки я решил заменить все лампочки в АХ-е на светодиоды. Вроде как идея не плохая, но попутно вместе с частью проводки к старой приборке я вандальски выдрал из мотоцикла и реле поворотов. Тем более мне хотелось всяких приятных дополнений и было решено завести поворотники через контроллер приборки, дополнительно сделав аварийку. Но. В Приборке — 5V напряжения. Стандартное бортовое напряжение — 12V. Если запустить ардуинке 12 вольт на вход — она пустит божественный дымок, на котором работает вся радиоэлектроника и больше ничего мне показывать не будет. Нужно было искать пути выхода.
Первый блин комом
Немного поковырявшись по интернетам решил подключать нагрузку через полевые транзисторы. Съездив на радиорынок и прикупив 5 SOP-8 драйверов для полевых транзисторов и 10 сборок по два транзистора с энтузиазмом принялся их распаивать и за несколько часов успешно похлопал все драйвера. Удивлению и обескураженности не было предела. Ну как же так? Смотрю на схему — все правильно. Смотрю на распаянное — все правильно. Все провода-перемычки-контакты соединены правильно. Все ок. Включаю — хлопок, дым из драйвера, торжественная смерть микросхемы и вопль "#$%ть!" на весь гараж. Не знаю, сколько декалитров отборной матершины вылилось из меня тогда, но домв я тупо сидел и молчал, пытаясь в голове в тысячный раз прокрутить все, что я делал за день — и тут меня осенило!
Черт побери, ведь я такой болван! Дело в том, что подключать я их пытался абсолютно раздельно — т.е. я предполагал, что драйвер работает как оптопара, и земли на входе и выходе можно гальванически разделять между собой, но это совершенно не так. Они должны быть соединены! Т.е. минус аккумулятора, GND ардуины и Vss на драйвере должны быть связаны между собой одним проводником. Осенило меня в час ночи. Откопав в закромах последний живой драйвер я вызвал такси и через полчаса уже был в гараже. И таки я оказался прав! Все заработало как положено и я наконец таки по сигналу с микроконтроллера смог зажечь кусок светодиодной ленты на 12V через полевой транзистор. Еще одна маленькая радость.
Елочка гори!
В процессе этих экспериментов от переполюсовки умер один из стабилизаторов на базе LM2596, который я предполагал использовать в качестве основного питания приборки. «Не беда», думал я, у меня ж в загашнике есть еще один.
Сутра еще один поход на радиорынок за полевиками, которые управляются логическим уровнем (у полевых транзисторов есть минимальный уровень напряжения на затворе. У IRF-серии это 10V, у IRL — 5V.) — и к вечеру я получил работающий код поворотников. В тот же день получил с почты 100 метров разноцветного провода и термоусадки из интернет-магазина, докупил MiniFlex-коннекторов и контактов к ним и снова отправился в гараж, теперь уже добивать все окончательно, упаковывать питание и все остальное в приборку и разводить новый кусок проводки вместо существующего.
После двух суток грызни с проводами микроконтроллер, питание и все выходы датчиков-поворотников были разведены, подключены к коннекторам и все это было упаковано в старую приборку. Отдельно хочется сказать о самой панельке — она тоже была вырезана из 3мм акрила на станке и после просто покрашена из пульверизатора черной краской. Вышло довольно неплохо. Ну и в процессе постоянных проверок я хлопнул еще один стабилизатор (как всегда — божественный дым покинул микросхему из-за случайно упавшего минуса на плюсовую клемму аккума). В этот раз меня спасла опция «звонок другу», за что я ему очень благодарен — он успел добежать из дому до магазина на радиорыке, который продавал точно такие же стабилизаторы и через час привез мне 4 новые микросхемы. Тут же на месте перепаяв их феном я снова получил 5V питания.
Все компоненты приборки на одном столе — экран, контроллер, питание, корпус
Получив очередной нагоняй от супруги я выспался и вернулся в гараж для «завершения начатого». До вечера я смог разобраться со стандартной проводкой, подключил к правому пульту новое светодиодный ближний свет, развел новые поворотники — общем, занимался проводкой, попутно проверяя, все ли работает так, как задумано. Нужная и монотонная работа, которая делается, в принципе, на элементарном уровне — собрать жгут проводов, подключить к мотоциклу, скрутить провода в скрутки, проверить, завести, еще раз проверить, просмотреть все провода, снять кусок проводки с мотоцикла, пропаять все скрутки, позатягивать в темоусадку… Нудятина, но необходимая нудятина.
Установка приборки и настройка датчиков — это самые незабываемые танцы с бубном вокруг мотоцикла, которые съели одним махом еще двое суток моей жизни. В процессе выяснился еще один замечательный момент — любой внешний сигнал на входе в ардуину обязательно должен «прижиматься» к земле через резисторы достаточно большого сопротивления, иначе на входе у сигнала постоянно будут абсолютно непредсказуемые значения относительно погоды на марсе и температуры на Аляске. Из-за этого в процессе этих двух суток приборка несколько раз разбиралась и нужные резисторы менялись, все собиралось заново и проверялось. Слава богу в процессе ничего не хлопнуло, не сгорело и не пустило дымка. Я до сих пор удивлен, как так получилось. Датчик тахометра был собран из стабилитрона на 4,7V, ограничивающего резистора на 40кОм и диода, который защищал ардуину от обратных импульсов катушки зажигания. Датчик скорости — обычный датчик Холла и магнит на пластике колеса, термометр на двигателе — LM35, тоже достаточно элементарная вещь.
Приборка установлена
Ко всему прочему вывел 4 кнопочки на верхнюю панельку и закрыл их резинкой от протечек — Аварийка, яркость (микросхема HT16K33 имеет встроенный ШИМ на 16 уровней), сброс уровня топлива и перезагрузка контроллера.
Как-то так работа над приборкой и завершилась. После тестов выяснились баги, которые требуют исправлений, но все же сам прибор уже работает и я этому безумно рад — череда мучений, непонятных явлений и общего апофеоза безысходности таки подошла к концу. Из багов — достаточно сильные наводки с тахометра на спидометр (из-за чего спидометр до сих пор нормально не работает и показывает 460км/ч ^_^ ), которые нужно решить либо экранированным проводом, либо отдельным счетчиком на Tiny8 прямо возле катушки. Так же — маленькая частота обновления шкал, закрыть всю проводку защитным кожухом в дополнение к изоленте. И еще некоторые мелочи, которых я уже и не упомню.
Мелкая рихтовка неровностей «по месту»
Но все это будет решаться в процессе протекания мотосезона, на ближайший месяц с тюнингом я выдохся.
В качестве резюме:
— Не беритесь за большую задачу без опыта. Если в механике еще можно что-то придумать из скотча, стяжек, палочек и стекловаты, то в радиоэлектронике вас заведомо ждет Quadruple Fail. Доверьте работу профи. Они не зря едят свой хлеб.
— Если решились — приобретайте хороший и дорогой инструмент, не жалейте денег на расходники. Имея в наличии 100-ваттное дедушкино паяльное зубило для сковородок, 100-летнюю канифоль и звонилку из динамика радиоприемника у вас с вероятностью 146% ничего не получится. Приобретите паяльную станцию с феном, хорошую третью руку, увеличительное стекло, набор пинцетов, кусачек, зажимов, хороший тестер со всеми возможными функциями, маленький ЖК-осцилограф и тепловизионный термометр. Очень пригодится. Ну и хороший водорастворимый флюс (я использовал F5), припой, канифоль, как жидкую, так и твердую, спирт, хлорное железо и т.д. и т.п. Всего уже и не помню, простите.
— Всех деталей набирайте с 5-кратным, а лучше — с 10-кратным запасом. Нужно один транзистор или диод? Возьмите десяток. Нужен один резистор — берите сразу штук 40-50 этого номинала. Они дешевые и всегда в ходу.
— Тридцать раз проверяйте полюсовку, схемы и учитесь понимать их работу. В качестве хорошего начала пройдите вот этот курс -> www.edx.org/course/circuits-electronics-mitx-6-002x-0. Мне очень помогло.
Тест тахометра
Ну и в завершение — огромное спасибо моему партнеру по 2SPerformance Роме за моральную поддержку, моей супруге Лене, которая меня до сих пор не убила за все мои хобби, и другу Олегу, которому было не влом помогать мне в, казалось бы, абсолютно безвыходных ситуациях.
Stay Tuned ^_^
- kibizoid
- 4 марта 2015 в 0:00
- 20
- +122
- chiefforeman
- 4 марта 2015 в 0:24
- ↓
Титанический труд! Я, конечно, могу починить радиостанцию Р-123М, но за такое бы не взлся. Огромное уважение прямым рукам и упорному труду. Проектирование приборки в гугл скетчап — это новая разновиднось извращений, ладно домик с мебелью запроектировать.
- Belozersky
- 4 марта 2015 в 4:16
- ↑
- ↓
На geektimes пост и в таком виде влетит, я уверен. А второй частью про прошивку ;)
Автор, логично предположить, следующий этап -это приборка из планшета, он же бортовой компьютер. Основная работа будет в написании андроид-приложения для отображения информации о состоянии мотика на экране в виде этих же циферек. Плюс кнопочки на экране для управления тем или иным состоянием, или отображением.
Любители авто уже успешно используют бортовой комп на основе Google Nexus. Тойота подхватила эту идею.
Ждём для мото!
Любители авто уже успешно используют бортовой комп на основе Google Nexus. Тойота подхватила эту идею.
Ждём для мото!
Почему-то сайт вторую ссылку обрезает. Попробую снова, не мытьём, так катаньем.
«обязательно должен «прижиматься» к земле через резисторы достаточно большого сопротивления»
У них нет встроенных подтягивающих резисторов?
Даже после этого пункта я бы посоветовал использовать СТМ :)
Там, конечно, больше гемора с программированием, ибо оно не такое простое, как на ардуине, но мне кажется, что на железном уровне проблем было бы меньше.
У них нет встроенных подтягивающих резисторов?
Даже после этого пункта я бы посоветовал использовать СТМ :)
Там, конечно, больше гемора с программированием, ибо оно не такое простое, как на ардуине, но мне кажется, что на железном уровне проблем было бы меньше.
Автору огромный респект, что смог довести такой большой проект до рабочего состояния! Теперь главное чтобы хватило сил и выдержки убрать все сопли и косячки.
Я бы не вносил в приборку управление поворотниками для повешение надежности: приборка объект сложный и не такой обязательный на ДОП как поворотники. Для работы поворотников можно было сделать реле в корпусе обычного на базе того же полевика.
Так же интересно увидеть как был реализован датчик скорости, т.е. как все разместилось на мотоцикле.
Лично мне больше нравятся стрелочки, нежели светодиодные полоски: как мне кажется стрелки быстрее и легче считывать (светодиоды могут засвечиваться днем на солнце). Поэтому я бы потрошил приборку ВАЗ-2114 или аналогичную — там стрелками заведуют шаговые двигатели, которыми как мне кажется было бы проще управлять, нежели кучей светодиодов.
Я бы не вносил в приборку управление поворотниками для повешение надежности: приборка объект сложный и не такой обязательный на ДОП как поворотники. Для работы поворотников можно было сделать реле в корпусе обычного на базе того же полевика.
Так же интересно увидеть как был реализован датчик скорости, т.е. как все разместилось на мотоцикле.
Лично мне больше нравятся стрелочки, нежели светодиодные полоски: как мне кажется стрелки быстрее и легче считывать (светодиоды могут засвечиваться днем на солнце). Поэтому я бы потрошил приборку ВАЗ-2114 или аналогичную — там стрелками заведуют шаговые двигатели, которыми как мне кажется было бы проще управлять, нежели кучей светодиодов.
Сил и выдержки хватит. Морду на моте разбирать за 5 минут для доступа к внутренностям приборки уже научился ^_^
По поводу поворотников уже сам задумался, что все-таки протупил слегка. Ну ничего, думаю, поправлю это отдельно.
Датчик скорости проще простого — Honeywell'овский датчик Холла, прикрученый на стяжке к перу вилки и магнитик, наклееный на пластик колеса. Если интересно — чуть позже обфотаю и выложу отдельную галерею.
А шаговые двигатели ко мне в приборку вместе с контроллером пока просто не влазят.
По поводу поворотников уже сам задумался, что все-таки протупил слегка. Ну ничего, думаю, поправлю это отдельно.
Датчик скорости проще простого — Honeywell'овский датчик Холла, прикрученый на стяжке к перу вилки и магнитик, наклееный на пластик колеса. Если интересно — чуть позже обфотаю и выложу отдельную галерею.
А шаговые двигатели ко мне в приборку вместе с контроллером пока просто не влазят.
А вот у меня такой вопрос: авто/мотоэлектрика имеет достаточно высокую надежность в плане воздействия воды и грязи. Обычно если что-то намочить, то оно просто перестает работать до просушки. Даже предохранители не вылетают. Тут же вещь получилась исключительно нежная — не придется ее ремонтировать после каждой лужи?
Прочитал с интересом, но читать комментарии сил не хватило)))так что извиняюсь если повторюсь.
Я правильно понял что причина использовать большую мегу была только в том что она была под рукой? просто мне кажется для таких целей подойдёт UNO, а ещё лучше NANO которая стоит 200р на Али, в разы места меньше и монтаж удобней.
Ну и наводка это большая проблема, я когда то делал ФУОЗ на основе NANO, наводка с катушек просто напрочь сбивала нану, решил проблему экранированными проводами, и доп экраном вокруг наны, попробуй может получится.
Своет, ЛУТ круто но круче фотолитография, гораздо чётче, разрешение гораздо больше, и отпечатывается всё без растяжек. Получается очень круто, попробуй.
Я правильно понял что причина использовать большую мегу была только в том что она была под рукой? просто мне кажется для таких целей подойдёт UNO, а ещё лучше NANO которая стоит 200р на Али, в разы места меньше и монтаж удобней.
Ну и наводка это большая проблема, я когда то делал ФУОЗ на основе NANO, наводка с катушек просто напрочь сбивала нану, решил проблему экранированными проводами, и доп экраном вокруг наны, попробуй может получится.
Своет, ЛУТ круто но круче фотолитография, гораздо чётче, разрешение гораздо больше, и отпечатывается всё без растяжек. Получается очень круто, попробуй.
Автор, респект за прямые руки!
Плату нужно обязательно лаком покрыть со всех сторон несколько раз, иначе потихоньку будет окисление и привет =(
Все выводные компоненты необходимо монтировать так… блин, не знаю, как описать такой изгиб ножек. Лучше к книгам Борисова Юный радиолюбитель отошлю. В одной из них были картинки.
Плату нужно обязательно лаком покрыть со всех сторон несколько раз, иначе потихоньку будет окисление и привет =(
Все выводные компоненты необходимо монтировать так… блин, не знаю, как описать такой изгиб ножек. Лучше к книгам Борисова Юный радиолюбитель отошлю. В одной из них были картинки.
- hrenov_drumm
- 4 марта 2015 в 16:35
- ↓
Как объект приложения рук — респект. А вот практичность, все-таки, сомнительна. Нет ничего лучше стрелочных приборов для приборной панели транспортного средства, не нужно приглядываться, достаточно беглого взгляда, чтобы оценить значения.
Да и выглядит, на мой взгляд, по-цыгански, но это уже дело вкуса.
Да и выглядит, на мой взгляд, по-цыгански, но это уже дело вкуса.
- Andrew-6676
- 4 марта 2015 в 16:49
- ↓
Страдаю такой же фигнёй!
Практически доделал подобное на arduino pro mini — не впихнул ещё в корпус. Тахометр на шаговом моторе, спидометр — большиущие семисегментники. Для более точного расчёта скорости (даже при очень медленном качении) поставил 6 магнитов на оборот колеса. А для отображения всех пробегов и прочего использовал LCD-1602. Ещё имеется режим замера времени разгона с 0 до 100 км/ч — вот это не терпится проверить ). Ставить это чудо на яву 638 планирую.
Практически доделал подобное на arduino pro mini — не впихнул ещё в корпус. Тахометр на шаговом моторе, спидометр — большиущие семисегментники. Для более точного расчёта скорости (даже при очень медленном качении) поставил 6 магнитов на оборот колеса. А для отображения всех пробегов и прочего использовал LCD-1602. Ещё имеется режим замера времени разгона с 0 до 100 км/ч — вот это не терпится проверить ). Ставить это чудо на яву 638 планирую.
За усердие +.
Вместо лута посоветовал бы заказывать платы с китая. imall.iteadstudio.com/
Конечно не так дешево как лут, но удовольствия в разы больше.
Ножки микрухи надо подтягивать к + питания внутренними резисторами.
Вообщем молодец!
Вместо лута посоветовал бы заказывать платы с китая. imall.iteadstudio.com/
Конечно не так дешево как лут, но удовольствия в разы больше.
Ножки микрухи надо подтягивать к + питания внутренними резисторами.
Вообщем молодец!
Смотри, в текущий момент спидометр и тахометр заведены на аппаратные прерывания.
При максимальной скорости в 140, к примеру, мы получаем ~40м/c линейную скорость (38.8, если быть точнее). Длинна оборота колеса ~ 2 метра, т.е. колесо будет вращаться с частотой 20 герц. Умножаем на 8 магнитов — получаем 160 герц примерно. Для прерывания это может быть много. Но я попробую, спасибо.
При максимальной скорости в 140, к примеру, мы получаем ~40м/c линейную скорость (38.8, если быть точнее). Длинна оборота колеса ~ 2 метра, т.е. колесо будет вращаться с частотой 20 герц. Умножаем на 8 магнитов — получаем 160 герц примерно. Для прерывания это может быть много. Но я попробую, спасибо.
Плюсик радиолюбителю) А вообще пиши в личку — расскажу и помогу. Много лет уже с атмелами работаю. Сам делал приборку и маршрутный компьютер пару лет назад. Но у меня не так было, стрелочные приборы и дисплейный модуль. Все отдельные, по RS-485 от маршрутного компа данные получают.
cs619122.vk.me/v619122280/7d8f/tufuwQlMKIw.jpg
cs14109.vk.me/c623220/v623220429/cf34/nDPEdrsgnt0.jpg
cs5396.vk.me/u560429/131479021/z_93e6f2b7.jpg
Что по твоей скажу — надо регулировать яркость. Банально от датчика света или часов реального времени. Чтоб днем ярко работала, а ночью в пол накала. Скорость и обороты оставь красные, а все остальные цифры делай например зеленые, иначе будет трудно показания читать. Скорость округли до целого, иначе последняя прыгающая цифра будет глаз мозолить.
Индикацию на диодных шкалах делай быструю, в реальном времени. А цифры наоборот обновляй не чаще пары раз в секунду, опять-же чтоб было можно их прочитать.
Про наводки. С катушки тащи провод до приборки, но подключай его в цепь не напрямую, а через оптрончик. PC812 например. Это нужно не для развязки, земля все равно общая. Но порт контроллера с длинным проводом работает как антенна. Оптрон этот эффект устраняет.
cs619122.vk.me/v619122280/7d8f/tufuwQlMKIw.jpg
cs14109.vk.me/c623220/v623220429/cf34/nDPEdrsgnt0.jpg
cs5396.vk.me/u560429/131479021/z_93e6f2b7.jpg
Что по твоей скажу — надо регулировать яркость. Банально от датчика света или часов реального времени. Чтоб днем ярко работала, а ночью в пол накала. Скорость и обороты оставь красные, а все остальные цифры делай например зеленые, иначе будет трудно показания читать. Скорость округли до целого, иначе последняя прыгающая цифра будет глаз мозолить.
Индикацию на диодных шкалах делай быструю, в реальном времени. А цифры наоборот обновляй не чаще пары раз в секунду, опять-же чтоб было можно их прочитать.
Про наводки. С катушки тащи провод до приборки, но подключай его в цепь не напрямую, а через оптрончик. PC812 например. Это нужно не для развязки, земля все равно общая. Но порт контроллера с длинным проводом работает как антенна. Оптрон этот эффект устраняет.
- don_carlos
- 6 марта 2015 в 3:22
- ↓
А я-то думал, что это я — маньяк. Снимаю шляпу.
Я в итоге ограничился приборкой КОСО (не реплика).
Эх, помню, 20 лет назад, платы в растворе хлорного железа на подоконнике, лак для когтей, самодельная микродрель, сверло 1мм…
Я в итоге ограничился приборкой КОСО (не реплика).
Эх, помню, 20 лет назад, платы в растворе хлорного железа на подоконнике, лак для когтей, самодельная микродрель, сверло 1мм…
Только зарегистрированные пользователи могут оставлять комментарии.
Войдите, пожалуйста, или зарегистрируйтесь.
Комментарии (93)
RSS свернуть / развернуть