08 февраля 2017

Стики для передатчика на гироскопах - реально?

Вот уже несколько дней работаю над созданием USB-свистка для симулятора с высокой точностью на базе платки Arduino Leonardo. Все бы ничего, но небольшой дребезг значений в около-нулевой зоне немного не нравится. Причину его я знаю, но это навело меня на совсем другие мысли.

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

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

А нельзя ли каким либо образом получать со стиков сразу цифровые данные, без необходимости преобразования? Такую возможность могут дать обычные гироскопы, которые используются в полетных контроллерах квадриков и вертолетов.

Допустим, разместим двух-осевой гироскоп на стике и попробуем снимать с него данные. Но при этом пульт придется держать абсолютно неподвижно, чтобы данные по отклонению стика были адекватные. Бред какой-то получается. А что если на корпус пульта установить еще один гироскоп? Тогда можно будет снимать данные с гироскопа, установленного на осях стика и гироскопа, установленного на корпусе передатчика. Если не трогать стики, то данные должны совпадать. Логично? Но если пошевелить стик, то данные с гироскопов будут отличаться. И они будут отличаться как раз на величину угла наклона стика! Вот оно значение! Как бы пульт не гулял в руках оператора, но разница в данных с гироскопов и будет реальным значением отклонения стика. Все просто! Никаких движущихся частей, никаких аналоговых данных, чистая цифра! Как думаете, идея стоящая?

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

Второй способ более правильный и предполагает подключение гироскопов непосредственно к контроллеру передатчика через SPI-шину. В этом случае вся обработка ляжет на плечи процессора пульта, но не будет промежуточного преобразования данных, что позволит повысить точность. Такой вариант более сложен и потребует модификации прошивки пульта. Это можно проделать с прошивкой Deviation для передатчиков DEVO.

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


RunCam 3 - первое видео

Перед Новым Годом появился анонс новой экшен-камеры RunCam3 в форм-факторе GoPro Session, а сегодня появилось первое видео сравнения этой камеры с GoPro Session 5.


По видео видно, что угол обзора у камер одинаков. Специально сводил кадры в графическом редакторе для сравнения. Для съемок FPV-полетов на гоночном квадрике это важно. Звук у RunCam3 не такой отфильтрованный, как у GoPro Session 5. Высоких частот больше, но и ветер не досаждает. Цветопередача у RunCam3 не понравилась. У GoPro Session 5 намного лучше и глубже цвета. А с другой стороны и ценовая категория у камер разная. Ладно, подождем начала продаж и будем посмотреть:) Кстати, релиз обещают в марте. Ждать недолго.

BetaFlight 3.1.5

Я был уверен, что следующего релиза с исправлениями ждать придется недолго:)
Встречаем - BetaFlight 3.1.5!


Список изменений:
  • Вернули назад старую miltiwii экспоненту
  • Исправлен вывод 6 на мотор для SIRINFPV
  • Для VTX Smart Audio исправлена строка статуса для пользовательской настройки частоты
  • Исправлен сломанный стандартный PWM
  • Изменено значение по умолчанию поправки датчика тока у BFF3 // По умолчанию Serial RX включен на UART2
  • Наличие CD-карты доступно в списке ресурсов
  • Появилась настройка указания первого AUX-канала для проброса канала с приемника на выводы полетного контроллера в функции CHANNEL_FOWARDING
  • Исправлено меню выбора мощности для передатчика Tramp
  • Упрощены параметры anti_gravity_gain (отключено по умолчанию)
  • Внесены множественные изменения по управлению передатчиком Tramp через MSP
  • Исправлена ошибка отображения седьмого канала в сетке RaceBand для передатчика Tramp (показывало F8)
  • Перестали учитываться данные из параметров min_throttle и max_throttle в режиме удержания высоты
Тут же обновил прошивку для проверки. Несмотря на изменения для функции CHANNEL_FOWARDING, управление переключением частоты Eachine ET526 с пульта так и не заработало. Во вкладке Motors видно, что данные должны меняться, но на выходе полетного контроллера их нет. Печаль...