РадиоКот :: Бортовой самописец ("Черный ящик") для радиоуправляемых самолетов
Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Защита и контроль >

Теги статьи: Добавить тег

Бортовой самописец ("Черный ящик") для радиоуправляемых самолетов

Автор: Механик
Опубликовано 15.09.2012
Создано при помощи КотоРед.
Участник Конкурса "Поздравь Кота по-человечески 2012!"

Дорогой ты наш, товарищ Радиокот! Поздравляю тебя с этим юбилеем, желаю побольше вкусного, полезного и хорошего (и поменьше плохого). Чтоб все собираемые конструкции всегда работали безошибочно, а холодильники были полны сметаны! А в подарок - вот тебе описание небольшой полезной штучки, которая называется "Бортовой самописец"

Введение

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

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

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

Описание конструкции 

Для управления "черным ящиком" был выбран весьма простой микроконтроллер Attiny2313. Его задачей была обработка ШИМ  сигналов с приемника, данных с акселерометра и запись этой информации в энергонезависимую внешнюю память. В  качестве микросхемы памяти была использована AT45DB161 (когда-то купленная во время изучения 123авр). Вот схема.

На схеме не показан стабилизатор 3.3В. Он нужен обязательно, так как акселерометр очень требователен к стабильности питания. Я использовал LM1117, так как он обладает весьма низким падением напряжения.

Акселерометр цифровой трехосевой ADXL345, с настраиваемой точностью и диапазоном измерений ускорений.

Для старта/остановки записи данных предусмотрена кнопка. Текущее состояние самописца индицируется при помощи двух светодиодов.  Связь с акселерометром и памятью осуществлялась по протоколу SPI. Использовался программный SPI. Для мониторинга ШИМ  сигналов был запущен 16-битный таймер, измеряющий длительности импульсов высокого уровня на каналах приемника.  Фронт и спад импульсов регистрировались при помощи прерываний. Для того, чтобы можно было взять ШИМ сигналы с приемника - к нему был спаян переходник. Схема там простейшая  (обычный разветвитель), поэтому только фотография.

Плата для "черного ящика" была изготовлена при помощи использования маски FSR8000.


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

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

Для связи с ПК (настройка и выгрузка записанных данных) был использован UART интерфейс микроконтроллера и готовый шнур, который использовался для подключения передатчика к компьютеру.  Фото готового устройства:


 

Кстати… платка на фотографии выглядит весьма страшно по простой причине – это она уже после нескольких аварийных полетов :) (удар в землю, нырок под воду…)

Настройка и работа с бортовым самописцем ("Черным ящиком")

Наш самописец может работать в двух режимах: запись только ускорений, и запись ускорений и данных с приемника (шесть каналов). В первом режиме 2Мб памяти хватает на ~116 минут (три значения по 2 байта 50 раз в секунду), во втором - на ~38 минут. Для настройки и выгрузки записанных данных была написана простенькая программа.

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


 
 

Описание команд, которые обрабатываются самописцем. Команда - это буква, без символа перевода строки.

Z - стереть память (на самом деле, данные не стираются, просто обнуляется адресный счетчик)

М - поменять режим. Внимание! Автоматически выполняется обнуление адресного счетчика, т.е. выполняется команда Z (чтобы не путаться потом с записями разных режимов, хотя сейчас обдумываю идею, как автоматически отличать данные с приемника и ускорения. Но пока что будет так.). При смене режима "черный ящик" возвращает информацию о том, какой режим включен (1 - ускорения и приемник, 0 - только ускорения). По умолчанию включен режим записи ускорений и данных приемника.

P - прочитать информацию о записях. Сейчас эта информация не используется, хотя в некоторых случаях позволяет оценить, сколько раз запускалась запись данных. Часто почему-то проскакивают отрицательные значения длительности записи, пока что не исправлял, так как утратил к этому интерес.

R - дать команду на выгрузку данныхс самописца. После этой команды он начинает отдавать записанные данные, разделяя их символом ";". Никакой синхронизации не предусмотрено, поэтому синхронизация происходит в программе.  Весьма серьезным недостатком получившегося устройства является большое время выгрузки данных, которое достигает 40 минут для полного объема.

Как пользоваться бортовым самописцем

Подключаем черный ящик при помощи шлейфа к приемнику и питанию (можно использовать бортовое питание с приемника +5В – так как на плате стоит стабилизатор 3.3В). Если все хорошо – загорится зеленый светодиод. В нужный момент (перед стартом) нажимаем кнопку, должен замигать красный светодиод – начнется запись данных. При переполнении памяти – запись останавливается, и красный светодиод перестает мигать (светится постоянно). При следующем нажатии на кнопку – запись остановиться.

Для выгрузки записанных данных - подать на него питание (можно прямо не снимая с самолета и не отключая от приемника), подключить UART-USB кабель, запустить программу, нажать кнопку "Подключится к FDR1", и "Прочитать память". Ни в коем случае не нажимайте кнопки "Режим" и "Стереть память"... иначе все. 

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

Программа выдает скачанные с прибора данные в формате csv, который потом можно открыть обычным Екселем. Потом эти данные можно обработать, так как в файле xls, который лежит в архиве вместе с прошивкой, чертежом печатной платы и программой.

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

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

1. (FDR - это абревиатура от Flight data recorder - это официальное название таких приборов. "Черный ящик" - распространенное ошибочное).

Рекомендации по установке на летательные аппараты

Желательно избавиться от вибраций, которые будут идти на логгер от двигательной установки. Можно, например, поступить так, как делают при установке гироскопов – мягкая толстая подложка, потом металлическая пластинка, потом опять мягкая подложка (ткань, кусок пеноплекса) – а потом плата черного ящика. Этакий бутерброд, который не пропустит часть вибраций.

Ну и на завершение статьи:

Разбор одного из полетов

Во время одного из полетов на большой высоте, мне захотелось побыстрее спустить самолет на землю. Зная, что пенопласт не выдержит больших перегрузок, я решил выключить двигатель (думая, что это чем-то поможет), и направил самолет вниз. Этот момент хорошо виден на графиках – отсчет ~3054. Видно, как пунктирная синяя линия ушла в минимум – двигатель выключен. Дальше видно, как я взял ручку от себя – красная пунктирная линия пошла вниз. И тут же можно наблюдать перегрузки – сплошная синяя линия в этот момент показала вертикальную перегрузку в -3g. Затем на отсчете приблизительно 3150 (5 секунда видео) я слишком быстро взял ручку на себя (красная пунктирная линия пошла вверх). Вертикальная перегрузка моментально выросла до +4.3g… и в этот момент левая консоль самолета не выдерживает и ломается. На графиках видно, как уменьшились перегрузки, и так же видно, что еще пару секунд я пытался что-то сделать с самолетом (видно как дергаются ручки управления по тангажу и крену – красная и серая пунктирные линии), потом наступило понимание ситуации, и я отпустил управление. Все линии выровнялись в одну (кроме синего пунктира – это тяга). Момента удара об землю на графиках нет по простой причине. Во время удара слетел шлейф питания (а еще отвалилась микросхема памяти – кажется, ее зацепило чем-то). Но после починки прибора, с него были сняты данные к моей большой радости.

Видео описанного фрагмента полета

 

Чуть не забыл о фьюзах. Нужно запрограммировать CKSEL0 , CKSEL1, CKSEL3, SUT1 , SUT0. Т.е. внутренний генератор на 8МГц.


Файлы:
Прошивка (hex), чертеж печатной платы (SL5.0), программное обеспечение, пример данных


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

10 0 0
1 0 0