Стабілізована по двох осях платформа для фото / відеозйомки в умовах сильної качки

  1. Модель функціонування системи
  2. випробування
  3. Подякою:
  4. Цікаві посилання по темі статті:

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

На основі цих ідей і став складати систему. За результатами одночасного письменництва головою і руками тепер можу розділити рішення задачі на частини:

  1. Щодо повільні коливання з частотою, близькою до власної частоти підвіски легкового автомобіля, але великої амплітуди - і є головна мета компенсації. Ці коливання потрібно компенсувати активним чи пасивним гіроскопом, т. К. Необхідні великі кутові переміщення платформи на кут ± 5..15 градусів (максимум), коли авто перекочується з борта на борт після несиметричного наїзду на нерівність типу «лежачого поліцейського». При такій хитавиці нестабілізована длиннофокусная камера (з малим кутом поля зору), що дивиться вбік, через качки може «бачити» зсув картинки на величину більше розміру кадру, тому звичайна для відеокамер система електронної стабілізації зображення, заснована на надмірності матриці, не впорається з завданням стабілізації. Єдина можливість - повертати всю камеру або сильно рухати сенсор всередині камери або групу лінз в об'єктиві.
  2. Компенсацію більш високочастотної вібрації залишив на відкуп системі активної стабілізації, вбудованої в камеру, яка налаштована на «шевелёнку» рук людини і є у всіх фото / відеокамерах. Хоча, звичайно, необхідна програмна адаптація фільтрів цієї системи до умов установки на авто. Ще більш високочастотну вібрацію від двигуна і трансмісії вирішив навіть не намагатися компенсувати, т. К., Виявляється, людина - тварина дуже примхлива, і, прагнучи підвищити рівень комфорту, розробники легкових автомобілів звели вібрації корпусу до прийнятного для зйомки рівню. Ну а постановка додаткових демпферов між платформою і корпусом авто завжди може додатково знизити небезпеку впливу цього виду вібрації.
  3. Найбільшу низькочастотну складову качки, пов'язану зі зміною нахилу всього дорожнього полотна (їзда по гірському серпантину, їзда по горбах), вирішив враховувати і компенсувати за допомогою трехосевой акселерометра з великим періодом усереднення його показань для виключення впливу тряски.

Привабливу ідею вирішити задачу №1 за допомогою класичного карданного пасивного гіроскопа довелося відкинути в зв'язку з труднощами вирішення проблеми повільного, але вірного догляду «нуля» такої системи. Довелося б робити багато рухливих з'єднань електричних проводів приводів моторів, та й просто не хотілося зв'язуватися з точною механікою. Щось чуючи про твердотільні гіроскопи і вміння планшетів, телефонів і інших гаджетів визначати прискорення і кут нахилу, вирішив пошерстити інтернет і - о диво! - знайшов [5] і [6] . Виявляється, прогрес зробив крок дуже далеко, і тепер є дешеві твердотільні трехосевой акселерометри, мікросхеми розміром в кілька міліметрів, здатні вимірювати вектор прискорення, а також повноцінні вимірювачі кутових швидкостей - гіроскопи! Є і більш просунуті моделі з цифровим інтерфейсом ( [7] ), З повним набором датчиків (трехосевой гіроскоп, трехосевой акселерометр і магнітний компас) і процесором обробки первинних даних, причому все це щастя важить без проводів 7 грамів!


Технічні характеристики акселерометра Напруга живлення 2,2-16,0 В «VIN» Вбудований блок живлення 3,3 У с виходом до 50 мА «3V3» Межі вимірювання прискорення з міткою «чорний хрест»: ± 1,5g / ± 6,0g (± 1,5g - за замовчуванням, ± 6,0g вибирається сполученням «GSEL» з «3V3») з міткою «червоний хрест»: ± 3g / ± 11g Чутливість для плати MMA7361L «чорний хрест» при діапазоні ± 1,5g: 800 мВ / g при діапазоні ± 6,0g: 206 мВ / g ( «GSEL» = «3V3») Чутливість для плати MMA7341L «червоний хрест» при діапазоні ± 3g: 440 мВ / g при діапазоні ± 11g: 118 мВ / g ( «GSEL» = «3V3») 3 аналогових виходу ( «X», «Y», «Z»), зцентрувати на підлогу вину напруги «3V3» і діапазоном виходу від 0 В до рівня виходу «3V3» 3,3 В з виходом до 50 мА «3V3» Дискретний вихід «вільне падіння» ( «0G» = high, коли aX = aY = aZ = 0 ) Розміри мікроплати 12 × 23 × 2,3 мм
Технічні характеристики гіродатчика Напруга живлення до 16 В «VIN» Вбудований блок живлення 3,3 У с виходом до 50 мА «3.3V» Споживаний мікросхемою струм ≈7 мА 2 аналогових виходу ( «X», «Y»), зцентрувати щодо опори « Vref »
Рівні аналогових виходів «X» і «Y» «абсолютні», т. Е. Не пропорційні значенням напруги на виході «3.3V», і при стані спокою гіродатчика на виходах «X» і «Y» завжди повинно бути напруга «Vref» , т. е. ≈1,23 В Межі вимірювання кутової швидкості з міткою «чорний хрест»:
± 100 ° / с на виходах «X» і «Y»
± 400 ° / с на виходах «4X» і «4Y» з міткою «червоний хрест»:
± 500 ° / с на виходах «X» і «Y»
± 2000 ° / с на виходах «4X» і «4Y» Чутливість ( «абсолютна») з міткою «чорний хрест»:
2,5 мВ / (° / с) на виходах «X» і «Y»
10 мВ / (° / с) на виходах «4X» і «4Y» Вбудований фільтр низьких частот діапазон пропускання - 0..140 Гц Розміри мікроплати 12 × 25 × 3 мм

Ці пристрої, на відміну від більш дорогих і складних лазерних старших побратимів, працюють на принципах, максимально близьких до роботи нашого вестибулярного апарату. «Цікаві й інші системи на основі МЕМС-акселерометрів, наприклад гіроскопи. Один такий пристрій має нікелеве кільце шириною близько 6 мкм і зовнішнім діаметром 1 мм, виготовлене на кремнієвій основі. Кільце кріпиться на підкладці за допомогою напівкруглих підпірок, що сходяться в його центрі. За зовнішнім діаметром кільця розташовані електроди. На половину з них подають постійний зсув, яке при обертанні викликає вібрацію кільця. Пелюстка вібрації розташовується по внутрішньому колу кільця. Його амплітуду і, отже, швидкість обертання визначають за величиною зміни ємності конденсаторів, які формуються іншими електродами, розташованими між живлять контактами. Дозвіл таких пристроїв - 0,01 градус / с в смузі 10 Гц ». [8]

Для ознайомлення з новими MEMS-технологіями я вибрав варіанти двовісний гіроскопа і трехосевой акселерометра, адаптовані друзями технології Arduino для застосування тремтячими руками великого паяльника. Виробники цих плат так і пишуть в супровідними документами, що мікросхема встановлена ​​на мініатюрну плату і забезпечена своїм стабільним джерелом харчування для полегшення інтеграції в аматорські системи. Далі все як завжди: вивчення даташітов і прив'язка до вподобаного мозку-микроконтроллеру STM32F103. Зрозуміло, що в якості керуючого мікроконтролера можна використовувати будь-який з придивилися сучасних МК.

Плата двовісний гіроскопа з усіма висновками показана на рис. 1 і на рис. 5. Харчування на неї 5 В «Vin» подається від того ж блоку живлення, яким харчувався МК. Два аналогових виходи гіроскопа «X» і «Y», які несуть інформацію про швидкість обертання плати навколо осей OX та OY, з'єднуються з умовними входами АЦП МК «Vox» і «Voy» (рис. 5). Т. к. Виходи «X» і «Y» однополярні, то станом спокою гіроскопа відповідає деякий середнє значення вихідного сигналу (≈1,23 В). Тому крім інформаційних сигналів використовується ще і фактичне значення опорного напруги ( «Vref», рис. 1 і 5), подану на третій вхід АЦП МК для програмного обліку дрейфу. Також обов'язково треба з'єднати землю гіроскопа «GND» і землю каналів АЦП МК. В ході налагодження програми МК виявилося, що стан спокою гіроскопа на виходах «Х» та «Y» відповідає суттєві розходження потенціалом, відмінним від заявленого 1,23 В, що неприємно і вимагає врахування властивостей кожного примірника гіроскопа при програмуванні. Звертаю вашу увагу на особливість мікросхеми цього гіроскопа: її аналогові виходи є абсолютними, т. Е. Масштабируются в залежності від рівня напруги на вході «3.3V» (т. К. Є додатковий вбудований блок стабілізації живлення всередині самої мікросхеми). Таким чином, значення напруг на виходах в залежності від швидкостей обертання гіродатчика повинні обчислюватися як:

X [В] = VREF + SO × VOX,
Y [В] = VREF + SO × VOY,
де SO - абсолютна чутливість в одиницях [В / (° / с)], а VOX і VOY - швидкості обертання гіродатчика навколо відповідних осей в одиницях [° / с]

В якості виконавчих механізмів приводу платформи я, як тільки відмовився від пасивного гіроскопа, відразу ж вирішив використовувати авіамодельний кермові машинки. Критеріями вибору машинок для першого дослідного варіанту системи були:

  • швидкодія
  • потужність
  • низька вартість на шкоду функції захисту від води

Мал. 2. Сервопривод SM-S4471M

Напруга живлення

4,8-6,0 В Час повороту на кут 60 ° 0,10 с при напрузі живлення 4,8 В
0,07 с при напрузі живлення 6,0 В момент, що Крутить 8,8 кгс · см при напрузі живлення 4,8 В
9,7 кгс · см при напрузі живлення 6,0 В Кут повороту ± 60 ° Розміри 40,3 × 20,2 × 37,2 мм Маса 63 г 4,8-6,0 В Час повороту на кут 60 ° 0,10 с при напрузі живлення 4,8 В   0,07 с при напрузі живлення 6,0 В момент, що Крутить 8,8 кгс · см при напрузі живлення 4,8 В   9,7 кгс · см при напрузі живлення 6,0 В Кут повороту ± 60 ° Розміри 40,3 × 20,2 × 37,2 мм Маса 63 г

У підсумку я вибрав цифрові машинки з моторами з порожнистим ротором, що застосовуються для приводу механізму управління кроком гвинта на радіокерованих вертольотах (рис. 2, [9] ). До цієї машинці додається значний набір пластикових качалок, проте було б краще мати одну, але металеву. Я припускав, що для забезпечення незалежного управління становищем платформи по двох осях доведеться робити карданний шарнір самому, але зовсім випадково на сайті любителів робототехніки знайшов уже готовий, хоч і хлюпенькій, карданний шарнір, спеціально адаптований до постановки в нього двох рульових машинок. Цей шарнір (рис. 3, [10] ) Використовується для виготовлення кистьового суглоба робота і прекрасно підійшов для моїх цілей (рис. 4), тим більше що під рукою знайшовся Мікропідшипники, ідеально підійшов для підтримки консольної частини шарніра (в моєму наборі не виявилося підшипника, видного на рис. 3).

Мал. 3. Карданний шарнір

З машинки виходить трижильний провід (рис. 2): земля (чорний / коричневий або просто темний), харчування + 5..6 В (червоний) і третій (жовтий / білий / кольоровий) - лінія управління кутом повороту приводу. Управляються вибрані машинки стандартним ШІМ-сервосігналом з рівнями потенціалів ТТЛ або вище, я використав амплітуду сигналу в 5 В. Дані машинки мають максимальний робочий кут відхилення ± 60 °. Тоді їх кут в залежності від тривалості керуючого сервосігнала можна розрахувати за такою формулою (1):

Кут повороту приводу в градусах = 60 × (t-0,001) / 0,001
де t - тривалість імпульсу в діапазоні від 0,001 до 0,002 с

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

Про МК писати докладно сенсу не бачу, т. К. Навряд чи хтось буде працювати з тим же МК, що і я. А загальні принципи вже перераховані, і залишається додати лише, що харчування силовий частини і мізків через імпульсного характеру навантаження і імпульсної ж природи блоків живлення треба розводити подалі один від одного всіма силами. У цій системі плата МК харчувалася від кроссплате Фрактал з вбудованим блоком живлення, а той - від трехбаночного авіамодельного LiPo-акумулятора. Хоча з успіхом можна було харчуватися і від USB-порту ноутбука, на який одночасно велася і відеозапис c встановленої на гіроплатформу веб-камери, але не хотілося обмотуватися проводами при польових випробуваннях.

Т. к. На першому етапі не ставилося завдання мінімізувати габарити блоку управління, то були використані стандартні плати комплекту Фрактал [11] : Цілком компактна плата MCU32 з МК STMF103, кроссплата розширення і клемний адаптер. Все це, крім МК, зайве в кінцевому виробі. У польових випробуваннях брав участь варіант системи без акселерометра, тільки з двовісний гиродатчик. У попередньому виконанні вдалося цілком успішно освоїти приведення гіросістеми в дійсно горизонтальне положення на основі показань трехосевой акселерометра, і в програмі МК цей шматочок є. Однак для перших польових випробувань я спростив схему, відмовившись тимчасово від арретірованія платформи в горизонт, замінивши на повернення платформи в положення «паралельно підлозі автомобіля» шляхом повільного повернення машинок в нейтральне положення.

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

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

Двовісний датчик кутових швидкостей 1 (рис. 5) встановлюється на автомобілі і, відповідно, орієнтується віссю OX вздовж напрямку руху, а віссю OY - вздовж підлоги або даху. Ці датчики фіксують качку авто навколо двох осей: в авіаційних термінах - по тангажу і по крену (напрямок осей вказано на мікроплат гіродатчика з протилежного від мікросхеми боку).

Ці датчики фіксують качку авто навколо двох осей: в авіаційних термінах - по тангажу і по крену (напрямок осей вказано на мікроплат гіродатчика з протилежного від мікросхеми боку)

Мал. 5. Схема підключення елементів

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

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

УголOX (i + 1) = УголOX (i) + VOX × Δt,
УголOY (i + 1) = УголOY (i) + VOY × Δt,
де Δt - крок за часом, що дорівнює в даному випадку Δt = 1/300 с, а індекси (i) і (i + 1) відповідають значенням змінних на попередньому і наступному кроці по часу

Далі все просто: треба нахилити камеру на ці ж кути, але з протилежним знаком, і тоді платформа вирівняється. Т. к. Ця процедура буде повторюватися 300 раз в секунду, то і виглядати це буде так, як ніби камера нахиляється назустріч хитавиці авто майже без затримки. Нахил камери на ці кути здійснюється подачею мікро контролером керуючих сигналів (упр1 і упр2, рис. 5) на кожну з двох машинок одночасно по двох каналах, а тривалість сервосігналов при цьому обчислюється по зворотній (1) формулою.

При реалізації цієї простої схеми є кілька нюансів:

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

Я це зробив, ввівши постійну складову швидкості наближення до середнього положення. Але довелося вибирати значення цієї швидкості не дуже великим, щоб, повертаючи машинки в «нуль», все ж давати системі стабілізації працювати. C іншого боку, маленьке значення цієї швидкості може виявитися недостатнім через відхилення сигналу спокою від виміряного при налагодженні системи. Довелося навіть ввести алгоритм обліку тікання напруги спокою. Подробиці реалізації цих алгоритмів в даному випадку не важливі, т. К. Кожний, хто захоче цю систему повторити або використовувати в своїх розробках, буде змушений освоювати програмування МК, після чого описані мною труднощі здадуться квіточками :). Однак привожу два основних фрагмента програми МК, які відповідають за первинну обробку сигналів від гіродатчика і за формування керуючих сигналів.

/ * Фрагмент настройки послідовної Вибірки для 6 каналів первого з двох модулів АЦП МК STM32F103: * /
/ * ADC1 configuration ---------------------------------------------- -------- * /
/ * ADC1 regular channels configuration * /

ADC_RegularChannelConfig (ADC1, ADC_Channel_10, 1, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig (ADC1, ADC_Channel_11, 2, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig (ADC1, ADC_Channel_12, 3, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig (ADC1, ADC_Channel_13, 4, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig (ADC1, ADC_Channel_14, 5, ADC_SampleTime_55Cycles5);
ADC_RegularChannelConfig (ADC1, ADC_Channel_15, 6, ADC_SampleTime_55Cycles5);
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 6;
ADC_Init (ADC1, & ADC_InitStructure);
/ * Процедура обробки переривання після закінчення перетворення 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];
}
/ * Процедура обробки переривання від таймера - 300 раз в секунду для вироблення керуючих впливів: * /
void TIM4_IRQHandler (void)
{
TIM_ClearITPendingBit (TIM4, TIM_FLAG_Update);
Vrefg = ADC1ConvertedValueVrefg / nADC1ConvertedValue; / * Осреднение за всіма вибірками АЦП, які встигли відбутися за 1/300 секунди * /
ADC1ConvertedValueVrefg = 0;
Ucurd = ADC1ConvertedValueUX / nADC1ConvertedValue;
ADC1ConvertedValueUX = 0;
Ucurd = (Ucurd-Vrefg) * 3.3 / 4096.0; / * Перерахунок даних АЦП в вольти з урахуванням середини сигналу = Vref * /
aux1 = Ucurd / 0.0025; / * Перерахунок, з урахуванням чутливості, в [градус / сек] * /
aux = aux + (aux1-aux0); / * Спроба врахувати спливання нуля шляхом обчислення відмінності показань минулого виміру aux0 від поточного aux1 * /
auxmidl = auxmidl * 0.999 + aux * 0.001; / * Обчислення «повільного середнього» - також для обліку спливання нуля; можливо, це зайве, але так працює ... * /
cornx = cornx- (aux-auxmidl) /300.0; / * Розрахунок поточного кута нахилу авто навколо осі ОХ в градусах за значенням швидкості повороту і відомому кроці за часом Δt = 1/300 с * /
aux0 = aux1;
/ * Далі - обмеження граничних кутів, щоб камера в скло авто не билася :-): * /
if (cornx> 45.0) {cornx = 45.0;}
if (cornx / * А ось далі - повільне приведення сервомашинки по осі ОХ до нуля, а точніше - до мертвій зоні ± 1 градус: * /
if (cornx> 1.0) {cornx = cornx-0.04;}
if (cornx
/ * Аналогічно для тангажу: * /
Ucurd = ADC1ConvertedValueUY / nADC1ConvertedValue;
ADC1ConvertedValueUY = 0;
Ucurd = (Ucurd-Vrefg) * 3.3 / 4096.0;
auy1 = Ucurd / 0.0025;
auy = auy + (auy1-auy0);
auymidl = auymidl * 0.999 + auy * 0.001;
corny = corny- (auy-auymidl) /300.0;
auy0 = auy1;
if (corny> 60.0) {corny = 60.0;}
if (corny if (corny> 1.0) {corny = corny-0.04;}
if (corny
nADC1ConvertedValue = 0; / * Для нового періоду осереднення * /
/ * Далі - розрахунок тривалості керуючого імпульсу ШІМ: 1 мс = «поворот на кут -60 градусів», 2 мс = «поворот на кут +60 градусів». Попередньо таймер, що виробляє імпульси, був налаштований на частоту рахунку 12 МГц, тому імпульс довжиною 0,001 с відповідає 12000 тиків таймера. Загальний період T = 1/300 с відповідає 40000 тиків. * /
powerY = 6000.0 + corny * 100.0; / * Ця величина змінюється в діапазоні 0..12000, а знак «+» або «-» тут треба підбирати в залежності від орієнтації сервомашинок. * /
pic = 12000 + (u16) powerY; / * Ця величина змінюється в діапазоні 12000..24000 * /
if (pic if (pic> 24000) {pic = 24000;}
TIM4-> CCR1 = pic; / * Завантаження в регістр таймера тривалості керуючого імпульсу, з наступного циклу таймера це значення набуде чинності * /
/ * Аналогічно для другої осі: * /
powerX = 6000.0-cornx * 100.0;
pic = 12000 + (u16) powerX;
if (pic if (pic> 24000) {pic = 24000;}
TIM4-> CCR2 = pic;
}

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

випробування

Для польових випробувань я встановив платформу з приводами і веб-камерою на позичений у одного автомобільний тримач з присоскою, злегка його розібравши (рис. 4). Щоб не возитися з зовнішньої установкою камери, вирішили прикріпити її зсередини авто на бокове скло задніх дверей і направили вбік через салон авто так, щоб в поле зору камери потрапляла рама вікна задніх дверей і пейзаж за нею. Така установка камери дозволила фіксувати, наскільки добре камера тримає горизонт. На записаних відеороликах видно, що при включеному стабілізаторі зображення пейзажу за вікном цілком стабільно, а рамка двері стрибає в кадрі - значить, стабілізатор працює.

Вид на установку при роботі в польових умовах


стабілізатор вимкнений


стабілізатор включений


За результатами випробувань виникли такі думки:

  1. Для застосувань такого стабілізатора на автомобілі цілком достатньо ходу приводу ± 5 °, а у мене з-за прямого приводу від машинок виходив хід ± 60 °.
  2. А ось крок зміни кута приводу хотілося б мати поменше, що можливо, якщо використовувати машинки з меншим кутовим ходом (з великим передавальним відношенням редуктора) або якщо додати важільний понижуючий елемент, перейнявшись, звичайно, пожирачів люфтів.
  3. Отримана система більше підходить не для авто, а для різних видів екстремальної зйомки, яка вимагає великих кутів приводу: нашоломну система лижника, мотогонщика і т. Д., Система стабілізації камери для самих маленьких безпілотних літальних апаратів, які дуже схильні до впливу поривів вітру.
  4. Використана плата двовісний гіроскопа прямо проситься в систему активної стабілізації високоманевреної безпілотного літального апарату літакового типу, який за умови достатньої тяговооруженности може успішно протистояти найсильнішим поривів вітру, підтримуючи незмінними кути крену, тангажу і курсу, що дуже важливо для картографічної аерофотозйомки, та й для утримання об'єкта спостереження в центрі кадру.

Подякою:

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

Цікаві посилання по темі статті:

«Скажений» трікоптер на Arduino
Використання акселерометра 1
Використання акселерометра 2
Неадекватна система стабілізації польоту ...

© 2008 — 2012 offroad.net.ua . All rights reserved. by nucleart.net 2008