flybrain. передатчик + приемник + автопилот. powered by stm32
Кстати, любопытны подробности Вашей 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 км с пол пинка прошибает.
Подумал насчет PWM выходов. Есть два решения для чистового варианта:
-
отдельный модуль-переход в который поставить самую младшую stm32F100c6 за 40 руб, чтобы преобразовать usart -> PWM 8 - 12 каналов + она будет принимать PPM от приемника и слать по usart в модуль автопилота. Фактически этот модуль будет притворяться приемником. Размеров можно будет достичь минимальных. На нее поставим импульсник, оно же будет питать автопилот и играть роль приемника для моей, изначально задуманной архитектуры. Любители пачки ненужных проводов и разъемов будут довольны. Управлять внутренними настройками и калибровками им придется через USB софт, как это и сейчас в MegaPirat’е.
-
переход к корпусу LQFP100. Там будет доступно еще 3 таймера на свободных пинах по 4 pwm канала на каждый таймер. Тогда можно будет прямо на плате все развести. Это добавит тоже в районе 50 руб к себестоимости
Оба варианта никак на повлияют на firmware и останутся 100% совместимыми программно с моей исходной схемотехникой
Я за первый вариант. Не хочу городить огород и занимать место не нужной ни при каких обстоятельствах мне байдой и разъемами, тем более, что я изначально был против. Модуль перехода я спроектирую и напишу в него firmware, апгрейдить можно будет через usb модуля автопилота. Как такой вариант развития для людей со стандартными приемниками и передатчиками?
я не вижу никакой выгоды в таком решении -дальность точно не улучшится
Я тоже не понимаю в чем тут фишка, если честно. Просто два канала и два диапазона и все. С чего вдруг там дальность вдруг в разы подпрыгнула? Спрашивать Слона стесняюсь. Ну да помехоустойчивость улучшится. Но радиус действия то тут при чем!
В воздухе будет около 3 Км.
Прочитал внимательно первый пост. Недопонял, аппа на 3 км, моделью сам не управляю… трольь на форуме?
Прочитал внимательно первый пост. Недопонял, аппа на 3 км, моделью сам не управляю… трольь на форуме?
Drinker, здесь в одном посте больше информации чем в вашей ветке на 3-х страницах 😉
с РФМ модулями удавалось связатся до 6км с нормальными диполями а так на самике антенна -кусок провода в горизонтальной плоскости а с нунчака свисает хвостик в вертикальной плоскости ни 1.5км работает стабильно
такие же результаты на форуме Флайтроне, может поэтому его опен-ЛРС не завоевал популярности с Июня когда стал доступен код и приемники/передатчики модули. Представитель ХопРФ прямо написал мне что чувствительности лучше -115дБ они сами не видели а заявленная -122 цифра теоретическая
Вообщем ВЧ надо обязательно улучшить а иначе будет как у всех остальных uhf lrs
Зачем вам миксер, запустить RFM22B на 50MHz ?
Подумал насчет PWM выходов. Есть два решения для чистового варианта:
Зачем 100 ножек? На Вашей STM-ке и так полно свободных выходов. С той-же точностью - 256 дискрет в пределах 1 мс - это 4 мкс на дискрету. Разве таймер не справится? Или прерывания долгие?
На простейшей DSP-шке я бы такую точность в легкую обеспечил… Таже фишка 4 выхода делает…
Я тоже не понимаю в чем тут фишка, если честно. Просто два канала и два диапазона и все. С чего вдруг там дальность вдруг в разы подпрыгнула?
Потому что в одном диапазоне трудно использовать доступную чувствительность RFMки. Если повезет, на 100 мВт можно улететь на 10-15 км. Но любая помеха свыше 55 дБ от сигнала в пределах диапазона, гарантированно заглушит приемник. 868 МГц - сам по себе более чистый диапазон. Плюс 433, вероятность заглушить сразу оба - в квадрате меньше. Практически это FHSS по двум диапазонам. 😃
Зачем 100 ножек? На Вашей STM-ке и так полно свободных выходов.
нужны ножки с выходами от таймеров. Не на любую ножку можно скоммутировать таймер аппаратно. Я хочу чисто аппаратное решение. Либо делать хорошо, либо не делать. Аппаратные пины таймеров везде частично перекрыты какими-то задействованными интерфейсами и их не получится отнести на другие пины. На 100 ножке их можно скоммутировать на дополнительные пины. Ну в принципе нет особой проблемы что 64 ноги паять, что 100 ног.
Если повезет, на 100 мВт можно улететь на 10-15 км
то есть фактически вероятность “повезет” увеличена в 2 раза. А поскольку она изначальна равно 0 целых хрен десятых… Короче ноль умножить на 2 будет 0. Делали бы тогда два модуля на диапазон 868. Нет, я не верю в чудеса. Откуда вязалясь заявленная улучшенная дальность в РАЗЫ, как это на писано на сайте 1slon.ru ?
Реально увеличить дальность можно только увеличением выходной мощности. А уж если увеличивать, то есть модули мицубиси готовые. Нужно только отработать по схемотехнике быстрое переключение прием-передача.
Вообщем ВЧ надо обязательно улучшить а иначе будет как у всех остальных uhf lrs
А давай я так поставлю вопрос.
Вот сколько хочет иметь дальности среднестатистический FPVишник? Понятно, что все хотят ставить рекорды на 200к. Ну а если с точки зрения разума?