Личные проекты — важный элемент любой технической профессии.
Они дают некую нить идентичности, столь востребованную в наше время — чтобы вы больше не следовали слепо за линейным конвейером жизни, а переходили границы, создавали что-то новое, одновременно расширяя свой технический кругозор и совершенствуя свои навыки.
Ну или большую часть своего дохода и/или времени вы переносите на следующую попытку, потому что «в этот раз точно получится, ну столько сил вложено, куда отступать».
В этой статье я хотел бы рассказать о своем проекте, который стал причудливым объединением этих двух парадигм.
Одним чудесным летним вечером, обладая знаниями в электронике на уровне детского электронного конструктора, я решил, что мне нужно сделать хороший «железный» проект – с какой-то социальной значимостью, идеей, потенциалом и все.
Нечто, что со временем сможет преодолеть барьер между «самодельным» и «изобретением», одновременно давая мотивацию к изучению необходимых для этого технологий.
После долгого мозгового штурма из всех идей была выбрана одна — пожалуй, наименее абсурдная и наиболее близкая к реальности.
Короче говоря, была взята существующая концепция ультразвукового детектора препятствий, который размещается на ручке трости, и совмещена с гироскопически стабилизированным механизмом на двух серводвигателях.
Даже когда я еще не знал умных слов типа «твердотельные решения» и «стабильность мехатронной системы», начали закрадываться сомнения в том, насколько поспешным было это решение.
Но насколько эти сомнения были верны – чуть позже.
Схема может показаться слишком упрощенной.
Но это только потому, что сама идея не очень сложна.
Первая версия была сделана на Arduino Uno — как демонстрационный стенд, на котором должны были быть указаны все основные трудности, которые придется преодолевать в серьезных прототипах.
Он с этим прекрасно справился, выдвинув целую кучу тезисов:
- Ориентироваться по чему-либо, кроме сигналов а-ля парктроник, очень сложно.
Сложная информация обрабатывается дольше и, как следствие, чаще выходит из строя.
- Продолжая с пункта 1, датчик должен быть строго однонаправленным.
Направив его боком в коридор, вы можете пострадать от ложных предупреждений.
- Оказывается, рост у людей разный.
Место установки устройства также может различаться.
В результате расстояние до земли тоже увеличивается и уменьшается!
- Не всегда можно сигналить на ухо – теряешь восприятие окружающего, что особенно важно в городской среде, например, чтобы вовремя среагировать на дорогу.
- Вес отладочного прототипа даже без корпуса просто огромен – и большую его часть занимает аккумулятор, который должен держать заряд для постоянной работы двигателей.
- Стабилизация, как это было сделано на тестовом прототипе, оказалась до смешного некомпетентной.
Как оказалось, рассчитывать угол наклона исключительно по арктангенсам векторов в акселерометре было не лучшей идеей, учитывая импульсы при ходьбе.
С третьим пунктом тоже все просто – при старте достаточно «посмотреть» вниз, оценивая расстояние до земли, и исходя из этого вычислить расстояние до препятствия.
Пятый тезис определил дальнейший курс развития в сторону использования маломощных контроллеров (тоже заведомо ложный в данном контексте, ведь если электромеханика работает постоянно, то выгоды от маломощной логики трудно уловить).
Шестая дипломная работа заставила меня углубиться в такие понятия, как фильтр Калмана и МЭМС-сенсоры, объединяющие различные измерительные приборы.
Это колхозное устройство, которое я придумал в результате работы над первым прототипом.
Я избавлю ваши глаза от того, как это выглядит внутри.
И, кажется, это даже сработало.
Иногда я не успевал отрегулировать положение, он весил как кирпич, иногда сгорал от нагромождения проводов.
и я решил усовершенствовать это устройство с помощью современных технологий, ориентируясь на свою печатную плату и маломощный компьютер.
силовой микроконтроллер, в идеале что-то из линейки STM32 (поскольку современные МК, насколько я понимаю, лучше всего документированы).
Я думал, это будет легко.
Я был очень неправ.
Два месяца я изучал «Искусство схемотехники» Горовица и Хилла, «Освоение STM32» Кармина Н.
по одной простой причине — я абсолютно ничего не знал, и мои познания в физике заканчивались законом Ома.
Я очень рекомендую обе эти книги, так как они, конечно, не заменили опыт пары сгоревших плат и сломанных программ, но дали прочную основу, которая позволила мне отследить эти ошибки и понять, что нужно.
быть изменены, чтобы исправить их.
Думаю, здесь также хорошо показан крайне низкий уровень навыков пайки.
Но эта итерация, тем не менее, смогла уместиться в относительно адекватные габариты (почти вдвое меньше предыдущей версии), продемонстрировать приемлемую прочность, а ее вес оказался заметно меньше.
Остается только применить бритву Оккама - как оказывается, при передаче простейшего писка в аудиоусилителе нет никакого смысла, а кнопку включения/выключения легко заменить малопотребляющим таймером, проверяющим, работает ли устройство сдвинулось или нет, и переводит конструкцию в энергосберегающий режим.
Кнопка впоследствии была отпаяна.
Было проведено множество тестов, и мне стало ясно несколько вещей.
Во-первых, тонкие дорожки в проекте, использующем ток до 1,5А, — крайне плохая идея.
При сильном вращении серводвигателя происходит такое падение напряжения, что маска платы начинает отслаиваться из-за нагрева.
Но еще худшим решением была установка линейного преобразователя с аккумулятором ~6-8 вольт в моторы на 5В - LDO буквально кипел и дымил при подключении сервомашинок.
Пришло время переделать все на импульсный понижающий преобразователь, причем с нормальной топологией платы.
.
но у меня закончились деньги.
Это было ожидаемо, учитывая кризис микроконтроллеров и стоимость прототипирования печатных плат — но вряд ли это означало паузу в работе над проектом.
Прочитав в процессе «ПИК-микроконтроллеры» Сида Катцена, у меня возникла идея сделать новую итерацию на минимальном железе и максимально оптимизировать ее с помощью ассемблера.
Это даже принесло проекту некоторую пользу — убрав лишнюю цепь 3,3В, удалось существенно урезать электроинфраструктуру.
В голове - AtMega328p, начнем.
Колхозные технологии во всей красе Оказалось, что сделать плату таким образом — худшее, что можно было придумать.
Даже травление по лазерно-железной «технологии» было более разумной идеей.
Перемычки отлетели, припой потек, и макетка даже после небольшого изменения конфигурации стала напоминать поле боя.
И конечно, закрытия есть везде.
Плата, однако, действительно оказалась чрезвычайно компактной; другое дело, что это почти не работало.
Любая, даже сколько-нибудь сложная передача терялась в какофонии помех, порождаемых скоплением паразитных емкостей и индуктивностей – что приводило к совершенно непредсказуемой работе платы.
Поднимался вопрос о травлении данного рисунка своими руками, но.
Стипендия прибыла, а вместе с ней пришло время сделать новую нормальную версию устройства.
Но зачем останавливаться только на одном вопросе питания? Я решил составить блок-схему устройства по всем канонам мехатроники, и обнаружил, что полагаюсь на избыточную обратную связь — сервоприводы с помощью энкодера определяют, попадают ли они в нужный угол, диктуемый им гироскопом.
Логично было бы убрать лишнее звено, сделав прямое подключение — моторы корректируют положение с уменьшающейся скоростью, пока не приблизятся к приемлемому углу наклона.
Я предположил, что при должной скорости это поможет полностью устранить проблему автоколебаний серводвигателя при ходьбе, снизить ненужный расход энергии и значительно повысить точность работы устройства.
Для предсказуемого вращения использовались шаговые двигатели (для которых требовались собственные чипы-драйверы).
Кроме того, был усвоен урок по подключению проводов к плате — даже если они не предполагают включение и выключение пользователем, в целях долговечности лучше подключать их через клеммы или разъемы.
Круглая доска символизирует колесо Сансары, возрождение устройства в новых воплощениях.
Эта доска, по моему мнению, была одной из лучших, которые я сделал.
Явных ошибок в проводке не было, собран он плюс-минус довольно хорошо (спасибо фену и паяльной пасте).
Но.
по какой-то причине сгорел микроконтроллер.
Было ли это статическое электричество (от которого меня тщательно заземлили браслетом, подключенным к аккумулятору), или температура фена (который, опять же, работал на минимальном нагреве и снимался моментально, как только паста начала блестеть), неизвестно.
.
Одно было ясно наверняка — в феврале произошли события, навсегда изменившие рынок микроэлектроники в России, и надежды на получение микроконтроллеров STM32, тем более по приемлемым ценам, уже не было.
Довольно долго я думал, что о микроконтроллерах можно вообще забыть, но произошло нечто необычное.
Я видел мощные, сложные и крайне плохо документированные МК серии АТСАМ (я так понимаю, попытка Atmel вскочить на уходящий поезд разработки 32-битных контроллеров), по совершенно смешной цене в 300 рублей.
Естественно, они легли в основу следующей итерации этого устройства – даже несмотря на экспоненциальное увеличение сложности проводки.
Платеж, который никогда не увидит свет Но.
во-первых, из-за цен на прототипирование в России плата явно не попадет ко мне на стол, а во-вторых, этот проект неожиданно выиграл у меня грант. Не буду вдаваться в подробности, я сознательно ждал с этой статьей, чтобы она не несла на себе отпечатка гордого и трепетного превозношения этого момента, но да – теперь этот проект можно развивать еще дальше.
На данный момент я подумываю перевести плату на многослойную топологию, сделать ее максимально компактной и помехозащищенной, и продавать устройство на рынке именно в таком формате.
Другое дело, зачем оно вообще? Концепция механической стабилизации, заложенная глубоко в идею устройства, — худшее, что я мог придумать.
Сколково создало «Робин», который опирается на полупроводниковые датчики и машинное зрение — он гораздо эффективнее обнаруживает препятствия.
У меня нет иллюзий по поводу актуальности моего проекта, а потому данную статью априори нельзя рассматривать как его рекламу.
Но все же, надеюсь, кому-то это поможет в создании своего любимого проекта в схемотехнике, во избежании моих ошибок как в постановке задачи, так и при ее исполнении.
Теги: #Программирование микроконтроллеров #stm32 #pet-project #проектирование схем #проектирование печатных плат
-
Стюв Василий Яковлевич
19 Oct, 24 -
Tesla Model 3 Будет Представлена 31 Марта.
19 Oct, 24 -
Свежеиспеченные Субноутбуки
19 Oct, 24