Wow чертеж оборудования гироскопический стабилизатор

Обновлено: 05.07.2024

Задачу сделать такую платформу мне подкинул мой шеф в качестве упражнения по зарабатыванию денег головой. Денег не заработал, но интересно было… Итак, необходимо обеспечить стабильность малогабаритной и легкой видеокамеры типа видеорегистратора, установленной на легковом автомобиле. Сначала решил поискать готовые решения в интернете, но нашел только серьезные платформы авиационного назначения без ценника: [1], [2], [3], [4]. А также видеоролик про создание системы активной стабилизации радиоуправляемой авиамодели и про реинженеринг-адаптацию игрового манипулятора Nintendo для управления веб-камерой с помощью авиамодельных сервоприводов.

Эти устройства, в отличие от более дорогих и сложных лазерных старших собратьев, работают на принципах, максимально близких к работе нашего вестибулярного аппарата. «Интересны и другие системы на основе МЭМС-акселерометров, например гироскопы. Одно такое устройство имеет никелевое кольцо шириной около 6 мкм и внешним диаметром 1 мм, изготовленное на кремниевой основе. Кольцо крепится на подложке с помощью полукруглых подпорок, сходящихся в его центре. По внешнему диаметру кольца расположены электроды. На половину из них подают постоянное смещение, которое при вращении вызывает вибрацию кольца. Лепесток вибрации располагается по внутренней окружности кольца. Его амплитуду и, следовательно, скорость вращения определяют по величине изменения емкости конденсаторов, формируемых другими электродами, расположенными между питающими контактами. Разрешение таких устройств — 0,01 градус/с в полосе 10 Гц». [8]

Для ознакомления с новыми MEMS-технологиями я выбрал варианты двухосевого гироскопа и трехосевого акселерометра, адаптированные друзьями технологии Arduino для применения трясущимися руками большого паяльника. Производители этих плат так и пишут в сопроводиловке, что микросхема установлена на миниатюрную плату и снабжена своим стабильным источником питания для облегчения интеграции в любительские системы. Далее всё как обычно: изучение даташитов и привязка к понравившемуся мозгу-микроконтроллеру STM32F103. Понятно, что в качестве управляющего микроконтроллера можно использовать любой из приглянувшихся современных МК.

  • быстродействие
  • мощность
  • низкая стоимость в ущерб водозащищенности

Выбранные машинки «умеют» обрабатывать управляющий ШИМ-сигнал с повышенной частотой следования управляющих импульсов — больше, чем стандартные 50 Гц. Я использовал 300 импульсов в секунду, и машинки их нормально отрабатывали. Питание машинкам подается от дополнительного авиамодельного блока питания BEC с возможностью выбора 5 В или 6 В на выходе. Большее напряжение обеспечивает большее быстродействие машинок (выбранные машинки допускают питание 6 В, хоть и заметно теплеют от этого). Питание МК и машинок, чтобы не связываться с помехами, я сразу же развел, полностью исключив их связь: BEC питает только машинки с помощью двух двухбаночных LiPo-аккумуляторов.

Программирование МК выполнено в среде IAR на языке C++. За «болванку» программы взят один из примеров типа «GettingStarted», поставляемый с демо-версией среды IAR С++ [12].

Модель функционирования системы

1 — двухосевой гиродатчик, 2 — мозг, установленный на кроссплате с собственным импульсным блоком питания, 3 — трехбаночный LiPo-аккумулятор питания мозга и гиродатчика, 4 — сервомашинки для управления камерой по крену и тангажу, 5 — два последовательно соединенных двухбаночных LiPo-аккумулятора для питания сервомашинок, 6 — импульсный блок питания сервомашинок

Сигналы от датчика в аналоговом виде поступают в микроконтроллер, который выполняет предварительную фильтрацию сигналов, чтобы удалить из сигнала высокочастотную пульсационную составляющую. В результате получаются значения двух компонент окружной скорости вращения: VOX [°/с] — вокруг оси OX, и VOY — вокруг OY. Затем рассчитываются значения текущих углов наклона авто по формулам:

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

/* Процедура обработки прерывания по окончанию преобразования 6 каналов АЦП1: */
void ADC_IRQHandler(void)
/* Clear ADC1 EOC pending interrupt bit */
ADC_ClearITPendingBit(ADC1, ADC_IT_EOC);
/* Предварительно была настроена прямая пересылка результатов преобразования АЦП в память — в массив ADC1ConvertedValueA[0..5] */
/* Первые 3 канала — это компоненты ускорения X, Y и Z акселерометра. */
/* Здесь происходит примитивная фильтрация входных данных: значение измеренной величины накапливается суммированием в переменных ADC1ConvertedValueX. Y. Z, а количество измерений сохраняется в переменной nADC1ConvertedValue: */
nADC1ConvertedValue++;
ADC1ConvertedValueX= ADC1ConvertedValueX+ADC1ConvertedValueA[0];
ADC1ConvertedValueY= ADC1ConvertedValueY+ADC1ConvertedValueA[1];
ADC1ConvertedValueZ= ADC1ConvertedValueZ+ADC1ConvertedValueA[2];
/* Следующие 2 канала — входы от гиродатчика: */
ADC1ConvertedValueUX= ADC1ConvertedValueUX+ADC1ConvertedValueA[3];
ADC1ConvertedValueUY= ADC1ConvertedValueUY+ADC1ConvertedValueA[4];
/* Последний, 6-й канал — вход Vref от гиродатчика: */
ADC1ConvertedValueVrefg= ADC1ConvertedValueVrefg+ADC1ConvertedValueA[5];
>

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

Испытания

Благодарности:

Тимофею Киянскому за интересное задание и полевые испытания;
Андрею Тарасову за «болванку» и помощь при программировании разработанного им удобного MCU32;
Максиму Вальбе за держатель с присоской, оторванный от любимого авто;
Владимиру Родионову за поддержку и добрую помощь в написании статьи.

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

Две основные цели Wowhead Client:

Он устанавливает и обновляет аддон Wowhead Looter, который собирает данные, пока вы играете! Он загружает собранные данные на Wowhead, помогая поддерживать базу данных в актуальном состоянии!

Вы также можете использовать Wowhead Client, чтобы просматривать выученные рецепты, выполненные задания, собранные ездовые животные и спутники и полученные звания!

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

Две основные цели Wowhead Client:

Он устанавливает и обновляет аддон Wowhead Looter, который собирает данные, пока вы играете! Он загружает собранные данные на Wowhead, помогая поддерживать базу данных в актуальном состоянии!

Вы также можете использовать Wowhead Client, чтобы просматривать выученные рецепты, выполненные задания, собранные ездовые животные и спутники и полученные звания!

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

Две основные цели Wowhead Client:

Он устанавливает и обновляет аддон Wowhead Looter, который собирает данные, пока вы играете! Он загружает собранные данные на Wowhead, помогая поддерживать базу данных в актуальном состоянии!

Вы также можете использовать Wowhead Client, чтобы просматривать выученные рецепты, выполненные задания, собранные ездовые животные и спутники и полученные звания!

Читайте также: