Разработка Гироскопического Эхолокатора

Личные проекты — важный элемент любой технической профессии.

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

Ну или большую часть своего дохода и/или времени вы переносите на следующую попытку, потому что «в этот раз точно получится, ну столько сил вложено, куда отступать».

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

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

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

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

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

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

Но насколько эти сомнения были верны – чуть позже.



Разработка гироскопического эхолокатора

Схема может показаться слишком упрощенной.

Но это только потому, что сама идея не очень сложна.

Первая версия была сделана на Arduino Uno — как демонстрационный стенд, на котором должны были быть указаны все основные трудности, которые придется преодолевать в серьезных прототипах.

Он с этим прекрасно справился, выдвинув целую кучу тезисов:

  1. Ориентироваться по чему-либо, кроме сигналов а-ля парктроник, очень сложно.

    Сложная информация обрабатывается дольше и, как следствие, чаще выходит из строя.

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

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

  3. Оказывается, рост у людей разный.

    Место установки устройства также может различаться.

    В результате расстояние до земли тоже увеличивается и уменьшается!

  4. Не всегда можно сигналить на ухо – теряешь восприятие окружающего, что особенно важно в городской среде, например, чтобы вовремя среагировать на дорогу.

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

  6. Стабилизация, как это было сделано на тестовом прототипе, оказалась до смешного некомпетентной.

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

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

С третьим пунктом тоже все просто – при старте достаточно «посмотреть» вниз, оценивая расстояние до земли, и исходя из этого вычислить расстояние до препятствия.

Пятый тезис определил дальнейший курс развития в сторону использования маломощных контроллеров (тоже заведомо ложный в данном контексте, ведь если электромеханика работает постоянно, то выгоды от маломощной логики трудно уловить).

Шестая дипломная работа заставила меня углубиться в такие понятия, как фильтр Калмана и МЭМС-сенсоры, объединяющие различные измерительные приборы.



Разработка гироскопического эхолокатора

Это колхозное устройство, которое я придумал в результате работы над первым прототипом.

Я избавлю ваши глаза от того, как это выглядит внутри.

И, кажется, это даже сработало.

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

и я решил усовершенствовать это устройство с помощью современных технологий, ориентируясь на свою печатную плату и маломощный компьютер.

силовой микроконтроллер, в идеале что-то из линейки STM32 (поскольку современные МК, насколько я понимаю, лучше всего документированы).

Я думал, это будет легко.

Я был очень неправ.

Два месяца я изучал «Искусство схемотехники» Горовица и Хилла, «Освоение STM32» Кармина Н.

по одной простой причине — я абсолютно ничего не знал, и мои познания в физике заканчивались законом Ома.

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

быть изменены, чтобы исправить их.



Разработка гироскопического эхолокатора

Думаю, здесь также хорошо показан крайне низкий уровень навыков пайки.

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

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



Разработка гироскопического эхолокатора

Кнопка впоследствии была отпаяна.

Было проведено множество тестов, и мне стало ясно несколько вещей.

Во-первых, тонкие дорожки в проекте, использующем ток до 1,5А, — крайне плохая идея.

При сильном вращении серводвигателя происходит такое падение напряжения, что маска платы начинает отслаиваться из-за нагрева.

Но еще худшим решением была установка линейного преобразователя с аккумулятором ~6-8 вольт в моторы на 5В - LDO буквально кипел и дымил при подключении сервомашинок.

Пришло время переделать все на импульсный понижающий преобразователь, причем с нормальной топологией платы.

.

но у меня закончились деньги.

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

Прочитав в процессе «ПИК-микроконтроллеры» Сида Катцена, у меня возникла идея сделать новую итерацию на минимальном железе и максимально оптимизировать ее с помощью ассемблера.

Это даже принесло проекту некоторую пользу — убрав лишнюю цепь 3,3В, удалось существенно урезать электроинфраструктуру.

В голове - AtMega328p, начнем.



Разработка гироскопического эхолокатора

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

Даже травление по лазерно-железной «технологии» было более разумной идеей.

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

И конечно, закрытия есть везде.

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

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

Поднимался вопрос о травлении данного рисунка своими руками, но.

Стипендия прибыла, а вместе с ней пришло время сделать новую нормальную версию устройства.

Но зачем останавливаться только на одном вопросе питания? Я решил составить блок-схему устройства по всем канонам мехатроники, и обнаружил, что полагаюсь на избыточную обратную связь — сервоприводы с помощью энкодера определяют, попадают ли они в нужный угол, диктуемый им гироскопом.

Логично было бы убрать лишнее звено, сделав прямое подключение — моторы корректируют положение с уменьшающейся скоростью, пока не приблизятся к приемлемому углу наклона.

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

Для предсказуемого вращения использовались шаговые двигатели (для которых требовались собственные чипы-драйверы).

Кроме того, был усвоен урок по подключению проводов к плате — даже если они не предполагают включение и выключение пользователем, в целях долговечности лучше подключать их через клеммы или разъемы.



Разработка гироскопического эхолокатора

Круглая доска символизирует колесо Сансары, возрождение устройства в новых воплощениях.

Эта доска, по моему мнению, была одной из лучших, которые я сделал.

Явных ошибок в проводке не было, собран он плюс-минус довольно хорошо (спасибо фену и паяльной пасте).

Но.

по какой-то причине сгорел микроконтроллер.

Было ли это статическое электричество (от которого меня тщательно заземлили браслетом, подключенным к аккумулятору), или температура фена (который, опять же, работал на минимальном нагреве и снимался моментально, как только паста начала блестеть), неизвестно.

.

Одно было ясно наверняка — в феврале произошли события, навсегда изменившие рынок микроэлектроники в России, и надежды на получение микроконтроллеров STM32, тем более по приемлемым ценам, уже не было.

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

Я видел мощные, сложные и крайне плохо документированные МК серии АТСАМ (я так понимаю, попытка Atmel вскочить на уходящий поезд разработки 32-битных контроллеров), по совершенно смешной цене в 300 рублей.

Естественно, они легли в основу следующей итерации этого устройства – даже несмотря на экспоненциальное увеличение сложности проводки.



Разработка гироскопического эхолокатора

Платеж, который никогда не увидит свет Но.

во-первых, из-за цен на прототипирование в России плата явно не попадет ко мне на стол, а во-вторых, этот проект неожиданно выиграл у меня грант. Не буду вдаваться в подробности, я сознательно ждал с этой статьей, чтобы она не несла на себе отпечатка гордого и трепетного превозношения этого момента, но да – теперь этот проект можно развивать еще дальше.

На данный момент я подумываю перевести плату на многослойную топологию, сделать ее максимально компактной и помехозащищенной, и продавать устройство на рынке именно в таком формате.

Другое дело, зачем оно вообще? Концепция механической стабилизации, заложенная глубоко в идею устройства, — худшее, что я мог придумать.

Сколково создало «Робин», который опирается на полупроводниковые датчики и машинное зрение — он гораздо эффективнее обнаруживает препятствия.

У меня нет иллюзий по поводу актуальности моего проекта, а потому данную статью априори нельзя рассматривать как его рекламу.

Но все же, надеюсь, кому-то это поможет в создании своего любимого проекта в схемотехнике, во избежании моих ошибок как в постановке задачи, так и при ее исполнении.

Теги: #Программирование микроконтроллеров #stm32 #pet-project #проектирование схем #проектирование печатных плат

Вместе с данным постом часто просматривают: