Стабилизатор камеры

Классический 2х осевой стабилизатор положения камеры. Главный модуль управления, датчики и контроллер двигателя вертикальной оси расположены на подвижной платформе и выполнены на единой плате. Контроллер STM32А303 обрабатывает информацию с акселерометра и гироскопа и вырабатывает текущее положение подвижной платформы в пространстве. Далее подсчитываются углы компенсации положения для обоих контроллеров двигателе

Контроллер двигателя горизонтальной оси получает готовые данные о необходимом положении ротора двигателя. Такое решение минимизирует количество проводов, подводимых к подвижной части платформы. Для работы контроллера подвижной части достаточно 4х линий. Питание и 2 информационных провода. Питание контроллеров двигателей и камеры осуществляется от одного напряжения. Это также минимизирует проводку.

В математической части программы используется кватернионная математика. Текущее положение платформы и необходимое направление камеры существуют и обрабатываются в виде кватернионов. Управление стабилизаторов возможно по шине USB или по сигналу Bluetooth. Для управления создана утилита для ПК (Win32 API). В утилите производится визуализация текущего положения платформы и камеры также на основе кватернионных преобразований векторов моделей.

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

Сложной задачей оказалась оптимизация кода. Поскольку нагрузка на микропроцессор превышала 90-98%.

Видео простых движений, выполняются мышкой:

Первые пробы стабилизации: