flybrain. передатчик + приемник + автопилот. powered by stm32
Кстати, наша GPS частота 1575 МГц.
Да 1,5ГГц, где-то так…😉
Я для себя видео планирую в районе 900Мгц, либо 2,4 или выше. но опять же никто не мешает GPS антенну отнести подальше если есть сомнения на эту тему. Но я думаю, что не должно мешать.
LM1881
Смотрел, отмел. Там +5В, значит нужно будет согласование с STM и к тому же нет у меня +5В нигде. А STM входа, они хотя и 5V tolerant, но я не люблю кривизны. Значт придется полевики колхозить. К тому же ничего нового от 1881 мы не получим кроме синхры, а это я и так получу с компаратора. Кроме того, опорное для компаратора заведено с DAC1 выхода. Я тогда смогу в реал тайме подбирать порог срабатывания прямо на ходу. Мне кажется здесь будет преимущество.
И понижать до 3.3 и 1.8 В LDO КРЕНКами
Питание я завожу от приемника, у меня там импульсник +5 - +18 до 3,3В. А приемник запитываентся напрямую от +12В. Питание +5 от регулятора я только в сервы напрямую пускаю. Оно у меня нигде не используется. Я может на выходных выложу схемотехнику передатчика и приемника готового. Там понятнее станет.
мозг мухи
Fly не только муха но и глагол летать.
Пусть будет FlyingBrain.
Необходимости в ПАВе я пока не увидел. Опыт людей с этого форума говорит о том, что 433 МГц это достаточно далеко от видео.
Возвратую землю С7, С8 желательно привести на одну из GND ног проца
С7, С6. Сейчас посмотрел на плату. Они туда и идут на 63 пин проца.
У меня вот реальные сомнения насчет необходимости энерго независимых часов и кварца на 32Кгц. Так и сяк думал, но плюнул и решил не делать.
Дрейф зависит от относительного изменения, а не от абсолютной величины
Мозгом я понимаю, что ты прав. Но тело не дает, убрать термометр с платы. Пусть будет. Буду хоть смотреть разницу в нагреве барометра, ядра STM, гиры и окружающей среды. Ну и + опция температуры для OSD уже встроенная будет.
Необходимости в ПАВе я пока не увидел. Опыт людей с этого форума говорит о том, что 433 МГц это достаточно далеко от видео.
ПАВ не от видео нужен а от мощной помехи внутри диапазона. Представте, что летите досттоно далеко, сигнал на уровне -100 дБ. А тут на соседнем канале далнобойщик рацию включил и уровень -50 дБ, всего-то. А RFM уже в ауте:(
С7, С6. Сейчас посмотрел на плату. Они туда и идут на 63 пин проца.
Sorry, С6 с JPEG на бумаге нечетко выходит. 😦 Но проблеммв в том, что возвратная земля идет через GND нескольких других элеметов. Лучше бы напрямую и уже полсе ножки проца - куда либо еще.
Кстати, платка ведь не четырехслойная? Лучше сразу 4-х слойку закладвать - цена копейки, а всяких помех на порядок меньше при грамотной разводке…
тело не дает, убрать термометр с платы. Пусть будет
Больше не меньше. Можно ведь и не запаивать. 😃
реальные сомнения насчет необходимости энерго независимых часов и кварца на 32Кгц. Так и сяк думал, но плюнул и решил не делать.
И правильно! До полета он нафиг не нужен, а в процессе GPS время будет. 😃
олее того, вот я уже написал СИ код для кватернионов и кальмана на VC++ погонял в тестах.
Подробнее про тесты можно?
И предлагаю делать это всё под управлением многозадачки. Чтобы в лопах не запутаццо.
А RFM уже в ауте
А ну так я не все сказал. У меня реальный FHSS реализован. Передатчик меняет синхронно частоту с приемником 25 раз в секунду. + еще 2 запасных failsafe канала, заранее отнесенных подальше от раций.
Лучше сразу 4-х слойку закладвать - цена копейки, а всяких помех на порядок меньше при грамотной разводке…
Двухслойка. Я при помощи лазера и утюга. Для прототипа - нормал. Второй вариант работы над ошибками все равно будет. Сейчас и это сойдет.
До полета он нафиг не нужен, а в процессе GPS время будет
Да, вот я тоже все время в этот аргумент упираюсь. Однако вот сценарий:
Летим. Вдруг питание умерло, потом вернулось. Все пересбросилось. Если батарейку не ставить, так ведь и не узнаем, что был сброс. Если только во флешку логи писать постоянно. Но ресурс перезаписи флеши тож не бесконечен, писать ее постоянно - плохо. В проце есть 2кб энергонезависимого ОЗУ. но нужно батарейку 3В разводить на плату
А ну так я не все сказал. У меня реальный FHSS реализован. Передатчик меняет синхронно частоту с приемником 25 раз в секунду. + еще 2 запасных failsafe канала, заранее отнесенных подольше от раций.
Так не поможет все это! Максиммум 45-50 дБ избирательности, а потом затыкается RFM-ка. С другой стороны и PAW при FHSS как собаке пятая нога…
Кстати, любопытны подробности Вашей FHSS реализации на 433. Сколько каналов? Какая длительность пакета/паузы? Точность PWM кодирования и количество сигналов?
ведь и не узнаем, что был сброс. Если только во флешку логи писать постоянно. Но ресурс перезаписи флеши тож не бесконечен, писать ее постоянно - плохо.
Лог то все равно писать будете 1-5 раз в сек. Признак “в полете” ввести и можно много понять…
В проце есть 2кб энергонезависимого ОЗУ. но нужно батарейку 3В разводить на плату
Не обязательно батарейку. Ионистор на 0.25-1 Ф, дает несколько недель храннения данных. Тантал на 200 мКф - несколько часов…
Еще несколько мелочей по схеме:
- C15 470 нФ. Типоразмер 0805. Требуется 10% точность и хороший ТКС. Найти в столь малом корпусе с диэлектриком не Z5U весьма проблематично. Советую в след. раз ставить 1206 или вообще не SMD.
Кстати, любопытны подробности Вашей FHSS реализации на 433
1 секунда делится на 50 частей (тайм слоты). 1 пакет передается внутри одного тайм слота. Пакеты нумеруются. Нечетные шлет передатчик на борт. Четные шлет приемник на передатчик. То есть имеем 25 раз в секунду передачу в каждую сторону. 1 пакет тащит на себе 9 полезных байт. 4 джойстика (8 бит на джойстик) + 2 нагрузочных байта под всякое разное, дискретные переключатели + 1 байт команда от передатчика для частотных переходов. Если передатчик решает сменить частотную сетку, то он передает в течение 1 сек, новую частотную сетку, затем отдает команду о переходе. Приемник подтверждает прием частотной сетки и применяет ее на следующей секунде. То есть в принципе можно на ходу сканить каналы и если какой-то один портится, то переходить на другой. Я это сделал, полетал. Потом забил болт на это дело. Взял тупо сделал меню для забивки 25 разных частот и двух запасных для failsafe. Ну просто не увидел больших плюсов. Опять же функционально это работает, сделать это или реализовать любые фантазии на эту тему можно в любой момент, но сейчас не хочется на мелочи отвлекаться.
По поводу PWM. Сейчас использую 8 бит на джойстик. А приемник все PWM на сервы формирует аппаратно от таймеров. У меня таймеров на борту камня штук10. Мне их девать не куда 😃 Я прямо с точностью до 1 мкс длиной импульса таймера управляю и засылаю его на серву. То есть, там точность позиционирования серв кварцованая. Китайские синие сервы стоят мертвяком, где поставили. Дерганье отсутствует как понятие. Я пробовал и 16бит но я реально не вижу разницы. А 255 положений джойстика и так за глаза. Там сам резистор джойстика не позволят даже такое разрешение использовать. Но у меня еще пульт - говно китайское от дешевой игрушки. Но даже с ним такие результаты достигнуты.
Опять же я сейчас в канале выставил скорость 4800 бит/сек. Ее запросто до 9600 можно поднять, гнать например 16 байт в пакете. Но это опять же бантики, которые сейчас на фиг не нужны. Ну буду доводить это дело до стадии production, так продумаем это дело и реализуем, проблем то ведь нет.
А для совсем параноиков, можно SIM900 запроектировать в production вариант. И прямо гнать DTMF частоты для управления на борт. Такая мысль у меня тоже была, но я себя вовремя отговорил.
Лог то все равно писать будете 1-5 раз в сек
Ну писать без очистки страницы, это не тоже самое, что чистить страницу каждый раз. С ионистором это идея, признаю, тормознул чего-то я. Но в прототип наверное не буду уже ставить. Потом решу это дело для чистового варианта.
C15 470 нФ
тоже согласен, моя лажа мелкая. Не подумал. Если поместится параллельно добавлю еще кондер с 1206 принт футом. Либо тот, либо другой кондер воткну, какой найду поточнее.
Приемник подтверждает прием частотной сетки и применяет ее на следующей секунде.
А если подтверждение не дойдет?
тупо сделал меню для забивки 25 разных частот и двух запасных для failsafe. Ну просто не увидел больших плюсов. Опять же функционально это работает, сделать это или реализовать любые фантазии на эту тему можно в любой момент, но сейчас не хочется на мелочи отвлекаться.
Вот и я всегда говорил: cимплексные системы (не требующие обратной связи) всегда надежнее полудуплексных. 😃
255 положений джойстика и так за глаза. Там сам резистор джойстика не позволят даже такое разрешение использовать.
Для FPV носителей может и без разницы, но хорошие пульты 2048 дискрет от 256 отличить позволяют.
прямо гнать DTMF частоты для управления на борт. Такая мысль у меня тоже была, но я себя вовремя отговорил.
Зачем DTFM? - масло маслянное - надежности канала двухчаcтотное кодирование не улучшит. И там и там, по сути, ЧМ прием а пропускная способность одна. Вот автокорелляционное кодировани (типа кода Баркера), реальная альтернатива, но эффективность не очевидна.
А если подтверждение не дойдет?
Ну как оно не дойдет? Оно пытается 25 раз его передать на разных частотах. Ну если не дойдет, еще через 1 сек будет failsafe там они найдут друг друга все равно. Опять же не обязательно менять всю сетку сказу. Можно постепенно частоты заменять.
Вот и я всегда говорил: cимплексные системы
В чем-то да, а в чем-то нет. Летать на цифре без обратной связи и не видя RSSI на стороне приема, очень опасно. Нет уж, пусть будет дуплекс.
хорошие пульты 2048 дискрет от 256 отличить позволяют.
Мой не позволяет 😉 ни при каких обстоятельствах. Это все “бантики” добавить дискретности всегда можно. +4 бита погоды не сделают. Мы ничем не ограничены в этом вопросе.
Вот автокорелляционное кодировани (типа кода Баркера), реальная альтернатива, но эффективность не очевидна.
Я думал о настоящем SpreadStectrum’e это интересная тема. Я нашел проект одного немца. Он на одном смесителе и точном гетеродине сделал чисто софтовый GPS приемник, причем пребразование у него прямое, а АЦП 2вух битное, далее он это засунул на com порт PC и чисто софтово ищет корреляции. за 10 секунд он накапливает статистику, находит сигналы и считает координаты. Самое засадное в данной теме для меня - это балансный смеситель качественный и миниатюрный. Я сколько не мотал это дело, все фигня получалась. Если удастся найти источник заполучения этих компонентов, хотябы Mimicircits производителя, то можно реально работать ниже уровня шума. Вводить коды баркера или N-последовательности как в CDMA. Я придумал как изготовить цифровой управляемый стабильный гетеродин на одном кристале, стоимость будет 200руб. А если все это заработает, то мы вообще все будем в шоколаде и все кипятком будут писать не только на этом форуме. Я уже молчу про коммерческую ценность такой разработки. Представь сколько можно отжать дальности на минимальной мощности. И ведь никто не поймает и хрен заглушит. Но тему честного SS я не готов тянуть один. Я могу участвовать всеми силами, но не один.
2 шт STM32F405RGT6 у меня в руках. Посмотри по схеме нет ли еще каких принципиальных плюшек, а то у меня глаз уже реально замылился. Я буду на выходных печатку гладить и травить.
Подробнее про тесты можно?
Чисто математическая модель. Просто отлажен код, который работает. Генерятся показания гироскопа и акселя, подмешивается шум, подается на вход тестового кода, потом сравнивается. Это чисто теоретические исследования.
Нет уж, пусть будет дуплекс.
Передавать телеметрию на землю - кто-ж против. Я возражаю только в плане использования обратного канала для перестройки параметров связи на лету. Уже много раз доказывал и готов доказать еще раз: алгоритмы построенные на принципах “договора в процессе” позволяют оптимизировать лишь энергетику линии связи, но ВСЕГДА будут иметь худшую надежность, чем алгоритмы, где логика перестройки каналов известна заранее и не требует подтверждений в стророну земли.
Даже учитиывая, что по известным причинам обратныый канал для летающей модели как правило надежнее прямого, нельзя гарантировать что не услышав ответа приемник и передатчик окажуться в разных сетках. 😦
Посмотри по схеме нет ли еще каких принципиальных плюшек
Посмотрю еще, надо даташиты на MEMSы докурить.
Есть одно возражение иделогического плана. У Вас все завязано на приемник Вашей разработки. Между тем добавление 4-6 PWM выходов и одного PPM входа позволить подключать к АП большинство современных приемников и сделает данный модуль пригодным для многих авиамоделистов.
Между тем добавление 4-6 PWM выходов и одного PPM входа позволить подключать
Я этого ждал:)
Приемник стандартно имеет универсальный один PPM выход с инфой обо всех каналах?
Согласен на 6 PWM выходов, но как вариант расширения. Изначально добиваюсь работы для своей архитектуры. Меня ломает занимать место на плате 6-ю здоровыми разъемами. К тому же планирую иметь модификацию совсем совмещенного варианта на одной плате: приемник+автопилот.
Если есть вариант разводки с микроразъемом, чтобы совсем мало места заняли эти PWM выхода и не торчали, то будет совсем хорошо.
Я возражаю только в плане использования обратного канала для перестройки параметров связи на лету
Александр, я уже говорил, что фактически пришел к такому-же выводу, полетав на динамической перестройке. В результате сделал статическую сетку и забил болт. Но принципиально в финальной версии можно реализовать как опцию и то и другое. Главное, что есть железка с широкими возможностями программного апгрейда.
сделает данный модуль пригодным для многих авиамоделистов.
У меня реально большие сомнения, что широкая аудитория сумеет запаять такие форм факторы чипов даже на заводские платы 😃
Production вариант будет по максимуму small size optimized. Хочу, чтобы было максимально мелко и плотно и занимало мало места.
Приемник стандартно имеет универсальный один PPM выход с инфой обо всех каналах?
Те которые вообще имеют PPM выход - да. К сожалению, не все это имеют, но по крайней мере популярные здесь LRS - имеют.
Для остальных остается несложное решение encoder - преобразователь PWM-ов в PPM.
К тому же планирую иметь модификацию совсем совмещенного варианта на одной плате: приемник+автопилот.
Только хотел спросить, почему сразу не добавили MEMSы в приемник? 😃
Еще по идеологии, можно отметить полезность выноса MEMSов и компаса на отдельной миниплатке - для удобства установки на модели. Но это уже в “идеальном варианте” . 😃
Кстати, по телеметрии с приемника: Вы силовой ток меряете? И если да, то чем?
Вопросы по схеме:
- STM-ка поддерживат 3 I2C интерфейса. Почему Вы посадили все MEMSы и т.п. на один интерфейс?
- Все-же смущает меня такая экономия на электролитах! В даташите на LSM303 явно указан 100 мкФ по питанию, не спроста ведь. 😃
но по крайней мере популярные здесь LRS - имеют.
Ну тогда сделаем при доводке до финала.
Только хотел спросить, почему сразу не добавили MEMSы в приемник?
Хочу иметь две модификации. Приемник + автопилот совмещенный и приемник с автопилотом модульно. Не всегда же FPV надо.
Схемотехнически и софтово это будет максимально одинаково, просто либо две платы, либо все на одной плате.
Еще по идеологии, можно отметить полезность выноса MEMSов и компаса на отдельной миниплатке
Ну не знаю, здесь у меня много сомнений. В первую очередь длина I2C. Я ее гоняю на 400кГц. Я уже попробовал и запаял LSM303 на отдельной платке и отнес на разъеме на расстояние 20 см. Я задолбался глюки ловить. Неделю проблему не мог понять. Как убрал разъемы и длинные провода, все как часы заработало. Так что не думаю…
Почему Вы посадили все MEMSы и т.п. на один интерфейс?
А почему бы и нет? Мне с точки зрения разводки это место экономит. Опять же I2C пины могут занимать что-то другое нужное. Читать я буду по прерываниям от устройства. Не вижу причин лишние проводники на плате разводить. А разнос устройств по разным шинам ничего к функционалу не добавит.
В даташите на LSM303
Я уже LSM попробовал. Все работает. Глобально 3,3В вырабатывается на импульснике, там достаточно микрофорадов стоит. Если мы хотим ВЧ помехи снять в точке питания, то зачем все глобально микрофорадами обвешивать. Даташит еще не повод всю конструкцию электролитами загромождать. В этом же даташите написано и во всех апноутах нарисовано, что I2C должно от 1,8в работать + колхоз из транзисторов чтобы согласовать двунаправленную I2C с микроконтроллером. Так вот - вранье. Я это уже проверил, все там от 3,3 пашет без всяких согласований.
Кстати, по телеметрии с приемника: Вы силовой ток меряете?
ACS712ELCTR-30A-T прямо в разрыв, ближе к разъему аккумулятора.
Еще есть модель до 40 - 60 ампер. Но мне и этого достаточно.
Чисто математическая модель. Просто отлажен код, который работает. Генерятся показания гироскопа и акселя, подмешивается шум, подается на вход тестового кода, потом сравнивается. Это чисто теоретические исследования.
А я думал макет трясся - вертелся - ускорялся.
Тады ждем реальных опытов. Как положение тела будет отслежывацца.
…
Fly не только муха но и глагол летать.
Пусть будет FlyingBrain.
…
А почему такое название? “МозГ” в названии - имхо вообше как-то двусмысленно звучит, а ешё с приставкой “улётный”… 😃
Может обьявить конкурс на этом форуме на лучшее название?
-albertr
Может обьявить конкурс
Предлагайте свой вариант, я не против. Выберем лучшее к моменту релиза.
Если подразумевается, что все исходники будут открытыми, то я бы использовал приставку “Open”.
“OpenLRS” уже занято, но есть куча других вариантов, например: OpenFPV, OpenPilot, OpenRC…
-albertr
Оно будет открыто в исходниках в части общего функционала, протоколов, интерфейсов и прочей лабуды для любого некоммерческого использования. Однако, оставляю за собой право не открывать исходники в части алгоритмов стабилизации, придуманных лично мной на каком-то этапе и имеющих признаки ноу-хау. Однако, такие алгоритмы будут доступны в виде накомпиленой DLL которую можно будет линковать, если кто-то захочет что-то улучшить или пересобрать, опять же не в коммерческих целях. Так же оставляю за собой право на каком-то этапе отпочковать коммерческую версию, которая будет существовать параллельно с открытой версией и имеющей признаки специфического функционала. На этапе адаптации кода МегаПирата под эту железку, уж точно не будет ничего закрытого. Любой желающий сможет скачать, накомпилять и улучшить. Никаких ограничений на существование альтернативных самостоятельных софтовых разработок на базе данного железа так же не будет.
Еще раз хочу подчеркнуть обязательно будет первоначальный релиз, в котором в основном весь автопилотный код будет не мой и я на него не претендую. Я НЕ БУДУ изобретать колеса. Главная цель - уйти от печальной системной ошибки всех более менее работающих открытых проектов - убогость и хилость архитектуры микроконтроллера на котором они строятся. Тема Mega 128 должна отмереть. Надо набрать воздуха в грудь и сделать шаг вперед уже.
Теперь по названию. Хотелось бы уйти от стереотипных штампов в принципе и названий типа Open SomeThing… в частности.
MegaPirat звучит классно, но оно уже занято. Предлагаю не торопиться и проявить больше фантазии и накидать больше разнообразных вариантов.
Может назвать просто - БУЛАТ или СУСАНИН 😃
Ладно, вы тут думайте, а я спать пошел
летаю с RFM22B модулями примерно 1 год, без ретрансляторов или бустеров надежное управление ограничивается радиусом 1.5км с простыми антеннами из куска провода. У вас нет идей улучшить ВЧ часть ? Слон предложил 2 модуля на разных диапазонах, я не вижу никакой выгоды в таком решении -дальность точно не улучшится а бустер превращается в двойную головную боль так как без фильтров, дуплексеров -ключей останавливается телеметрия. Зато весть о двух-диапазонной LRS взбудоражила многих на RCGroups 😃 Я принципиально против бустеров (закон !) , с репитерами больше возможностей но поскольку репитер вносит задержку как минимум один пакет вам надо перейти с 50 тайм-слотов на 200-300
У вас нет идей улучшить ВЧ часть ?
Получить на малой мощности дальность в десятки км без бустера и припарок в виде узконаправленных антенн можно только, если пойдем путем честного Spread Spectrum. Реально ли это теоретически ? Ответ ДА. Реально ли это практически? Ответ будет ДА, как только найдется кто-то, кто расскажет мне где и как и в разумные деньги добыть двойной балансный смеситель размером хотя бы 1см на 1,5см. Пример модели, который нужен MBA-15L. Еще бы неплохо найти источник добывания ВЧ усилителей типа MSA-0886. И готовьтесь к тому, что приемник с такой хренью существенно прибавит в размерах печатной платы.
летаю с RFM22B модулями примерно
А у вас не старая ревизия? А то там мощность была ниже, чем у модулей начиная с 3-ей ревизии. У меня на земле расстояние 1 км с пол пинка прошибает.