flybrain. передатчик + приемник + автопилот. powered by stm32

AlexSneg
EHOT:

Это правда?

да, чистая правда. А что, какие-то сомнения?

Небольшой анонс.
Вчера сделал тестовый виртуальный вылет в FlightGear симуляторе. Скоро будет КП и прошивка для виртуальных полетов. Блин, вообще рульно все работает. Никуда ходить и мерзнуть не надо, запустил на диванчике и сиди себе миссии и автопосадки отрабатывай. Сейчас немного подглючивает компас, но по ГПС возвращается правильно. Еще есть пока проблема с настоящим самолетом, так как он хочет летать только на полном газу, а с модельными настройками падает, но это уже мелочевка. Хочется еще на ОСД FG вывести специфическую инфу от АП, сейчас пытаюсь понять как это делается.

EHOT

Угумс. выставил режим работы СТДАПП, SUMPPM. Подключился к штырьку рядом с GND. Ой, нумерация каналов по арабски, справа налево, смотрел но сразу не разглядел подписи.

AlexSneg

Опубликовал все материалы по сборке передатчика на сайте. Схемы, фотографии, герберы для заказа плат. BOM лист надо крыжить и вычищать.

mozgolet-navigator.narod.ru/index/…/0-39

Мануал пользователя будет позже в виде единого PDF. Исходники софта передатчика и приемника будут передаваться тем, кто собрал железку и хочет оказать помощь проекту, либо добавить фичи дополнительные в код и улучшить функциональность. Кроме того, кому-то поможет адаптировать свою модель дисплея.

EHOT

А материалы(пояснения) по случке FB c FlightGear будут?
И если можно о принципах взаимодействия АП с эмулятором окружащей среды и летательного аппарата?А тоя как ни пыжусь - не доезжаю.
из FG в FB должны передаваться координаты ЛА, текущие угловые и линейные скорости
а в обратную сторону - воздействия (команды) на ограны управления ЛА.

как оно происходит? насколько я знаю FB не первый АП, который умеет общаться с FG. Как это происходит? Посредством каких линий связи?

AlexSneg
EHOT:

А материалы(пояснения) по случке FB c FlightGear будут?

да, будут.

EHOT:

о принципах взаимодействия АП с эмулятором окружащей среды и летательного аппарата

В КП есть модуль прокладки. Он соединяется с одной стороны в COM порт АП, а с другой в FG UDP сокеты. Далее работает мостом. В АП гонятся данные по положению тела в пространстве, а обратно управление. АП счастлив и думает, что он в воздухе летает.

тигромух

Наконец-то приехали китайские платы, приступил к сборке. Началось все хорошо, но все-таки умудрился наступить на какие-то грабли.
Спаял датчики, СТМку и ее обвязку, получил на компе DFU, обрадовался, и начал допаивать остальное. Не тут то было… Когда собрал все, кроме видеочасти, оно перестало видеться на компе 😦
Питание стабильное, соплей не разглядел.
Нашел косяк: припаял IC7 (флешку) на место IC9 (операционника). Надо же, совпали и по расположению и по корпусу, заразы. 😦
Отпаял - не помогло. Мог что-то пожечь?
Хотел было начать удалять детали по одной, пока не появится DFU, но время позднее, решил отложить.

BAU
тигромух:

Мог что-то пожечь?

Наврятли, хотя всяко бывает. Отпаивайте по очереди все что висит на шине I2C и проверяйте. Скорее всего гдето что то замкнули на периферие. ТОж такое было при сборке.

Drinker
AlexSneg:

Вчера сделал тестовый виртуальный вылет в FlightGear симуляторе. Скоро будет КП и прошивка для виртуальных полетов. Блин, вообще рульно все работает.

Привет. Закономерно автор вступил в виртуальное пространство. Там да, все летает.

EHOT
тигромух:

Нашел косяк: припаял IC7 (флешку) на место IC9 (операционника). Надо же, совпали и по расположению и по корпусу, заразы. 😦

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

Если позиционирование микрух было спутано - смотри по распиновке - было ли нехорошее наложение питания и земли?

Без флешки и термометра FB может завестись в штатном режиме. без датчиков (или не корректно работающими по I2C датчиками - нет. НО DFU режим будет.

smalltim
Drinker:

Привет. Закономерно автор вступил в виртуальное пространство. Там да, все летает.

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

тигромух

Алекс, Юрий, спасибо за подсказки.
Долгая история, но в итоге чудо все-же произошло - оно увиделось и даже прошилось! 😁
Теперь в DFU режим входит и выходит, но штатной работы пока нет. Ком-порт на компе не поднимается, при старте загораются красный + желтый диоды и не тухнут.
Иногда (похоже, когда пальцами что-то держу) при старте включается диагностика и диоды сообщают, что нет связи вообще ни с чем.
Если взяться руками за кварц, диагностика отрабатывает (редкие вспышки).
Сброс настроек работает.
Из этого я делаю вывод, что чип живой, прошивка нормально залилась и работает.
Снова поснимал всю активку с шины и нифига не изменилось, светит двумя диодами и ничего не происходит…
Что означает такое поведение? Залипает где-то на инициализации?

BAU
тигромух:

Что означает такое поведение?

А не проверяли шину на закорачивание с другими сигналами? Найти бывает не просто. Самый радикальный способ проверки подрезать дорожки у чипа.
Может конечно где то не про пай или сопля, но я исхожу из вашего рассказа что чип работал на первой проверке.

И еще если не подключен чип GPS подтяните GPS_TX к +3.3, что то припоминаю были у меня с этим заморочки…

AlexSneg

Константин, извините, что отвечаю с запозданием. Только сейчас заметил вопрос в теме.

По очереди качаем и заливаем тестовые прошивки. Затем подаем питание через USB и смотрим как моргают светодиоды

  1. …narod.ru/…/FlyingBrain-init0.hex

Если все хорошо, то моргает LED3(период примерно 1сек), LED2 горит.
На данном этапе внутренняя частота МК вышла на 168МГц, PLL запустились. В памяти создались все необходимые классы и структуры. На этом стоп.

  1. …narod.ru/…/FlyingBrain-init1.hex

Если все хорошо, то моргает LED3 (период примерно 1сек), LED2 горит.

На данном этапе дополнительно прошли процедуры инициализации ОСД класса. На этом остановились.

  1. …narod.ru/…/FlyingBrain-init2.hex

Если все хорошо, то моргает LED3(период примерно 1сек), LED2 горит.

Здесь инициализировались пины для дальнейшей работы с I2C датчиками

  1. …narod.ru/…/FlyingBrain-init3.hex

Если все хорошо, то LED2,LED3 должны поморгать 5 или 6 раз, затем потухнуть. Период моргания примерно 1 сек.
Здесь произошел тестовый опрос датчиков по I2C шине. Они все должны ответить о себе. Если все ОК, то будет моргать как описано выше. Если нет, то будет моргать как-то по другому. Можно будет сделать тест на каждый из датчиков.

Отписываемся в теме, на каком этапе происходит не так, как описано. Я скажу, что это означает.

На всякий случай проверяем сигнал сброса. Есть ли там +3.3В при подаче питания.
BOOT0 - должен быть притянут к нулю при подаче питания. На схеме он притянут резистором.

Для нормального старта должны буть обязательно установлены: МК, LSM303, L3G4200, BMP085, LM75AD, AT45DB161D.
Без ГПС модуля все равно будет стартовать и выходить в консоль.

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

P.S. заметил, что ссылки глючно вставились на 3ю и 4ю прошивку. Сейчас исправил. Должны быть ссылки по порядку на init0, init1, init2, init3

тигромух

Первые три прошли как положено. На четвертом затык: горят LED2 и LED3 и ничего не происходит. Точно так же как и с полной прошивкой. Датчики пока обратно не запаивал.
Уровни на шине постараюсь сегодня проверить.

тигромух

I2C в единице. Звонится 4.7кОм до 3.3в, как и положено.
BOOT0 в нуле.
NRST в единице.

AlexSneg

У меня сегодня корпоратив. Короче, я не в состоянии чего-то делать. Завтра сделаю под каждый датчик индивидуально тест. Будем запаивать по о одному, затем проверять.

AlexSneg

Во всех тестах норма - LED2,LED3 должны поморгать 5 или 6 раз, затем потухнуть. Период моргания примерно 1 сек.
Другое поведение - проблема с обнаружением соответствующего датчика

  1. тест присутствия магнитометра
    …narod.ru/…/FlyingBrain-mag.hex

  2. тест аселя
    …narod.ru/…/FlyingBrain-accel.hex

  3. bmp085
    …narod.ru/…/FlyingBrain-baro.hex

  4. lm75ad
    …narod.ru/…/FlyingBrain-temp.hex

  5. l3g4200d
    …narod.ru/…/FlyingBrain-gyro.hex

Запускать можно в любом порядке. Каждый из тестов пытается опросить по I2C только тот датчик, для которого данный тест предназначен.

тигромух

Проще всего было запаять LM75 и BMP085. На них и потренировался.
С запаяным чипом соответствующая прошивка делает одну вспышку двумя диодами и молчит.
Если запустить прошивку от незапаяного чипа - вечное свечение LED2+LED3.

Проверил остальные датчики - все аналогично.
В качестве отчаянной попытки 😃 запаял все датчики одновременно, плюс флешку. Теперь на любой из тестов получаю одну вспышку LED2 + 3.

Ха! Залил полную прошивку и получил ком-порт! 😲
Буду разбираться дальше.

тигромух

Из замеченных косячков на сайте.

На страничке Схемотехника АП:

>Запаиваем MCP1702, C8, C9 и USB разъем
Надо бы поменять на “Запаиваем IC32, C8, C9, D7 и USB разъем”

>Далее запаиваем STM32 и резистивно-конденсаторный обвес к ней: кварц, C6, C7, C3,C4, C2,C2,R2,R1,C5.
На “Далее запаиваем STM32 и резистивно-конденсаторный обвес к ней: кварц Q1, C1, C2, C3, C4, C5, C6, C7, R1, R2.”

В разделе Прочий софт для проекта не качаются прошивалка и драйвера для VCP.

А в Фото готовых устройств фотки старой версии 😃

AlexSneg
тигромух:

С запаяным чипом соответствующая прошивка делает одну вспышку двумя диодами и молчит.

Странно. Возможно я в тестовых накосячил. Делал в слепую, на железке не проверял. Проверю позже.

тигромух:

Буду разбираться дальше.

Перед началом разборок обязательно сброс настроек в дефолт (через кнопку) и команда в консоли save config
Не помню точно, но начиная с какой0то прошивки есть команда cat flash Она показывает распозналась ли флешка.
Если GPS модуль запаял, то можно посмотреть cat gps PDF мануал содержит подробно инфу, как бороться с GPS модулем, если он EB600

тигромух:

Из замеченных косячков на сайте.

Исправил все за исключением фоток.