flybrain. передатчик + приемник + автопилот. powered by stm32
Если подразумевается, что все исходники будут открытыми, то я бы использовал приставку “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к. Ну а если с точки зрения разума?
нужны ножки с выходами от таймеров.
Зачем? Вы что там Linux собираетесь в качестве ОС ставить?
Достаточно просто параллельного 8/4 бит порта, где можно одномоменто изменить состояние всех бит. Даже на однкристалках I8051 такое возможно было. Ну перетусуйте ножки, в конце концов, даже I2c/SPI легко на портах общего назначения сделать…
Я хочу чисто аппаратное решение.
Это вопрос религии? 😃
Даже на Фишках 4-6 PWM выходов работают с разрешение в 1 мкс…
то есть фактически вероятность “повезет” увеличена в 2 раза.
Вероятности перемножаются.
Делали бы тогда два модуля на диапазон 868.
И оба будут заглушены близкой помехой в диапазоне?
Реально увеличить дальность можно только увеличением выходной мощности.
Почему то на 2.4 ГГц можно на 100 мВт летать 2-3 км стабильно и 5-7, если повезет, а на 433 - нельзя?
Вот сколько хочет иметь дальности среднестатистический FPVишник?
Сегодня: 10-15 км стабильной связи (это связано с энергетикой среднего электролета) и 30-50 км с ухищрениями типа бустеров, направленных антенн и т.п. Завтра 50-100 км. 😃
Это вопрос религии?
нет, это вопрос рациональности кода. Зачем городить код, если можно просто асинхронно на лету управлять скважностью таймера. Это красиво, эффективно и просто как 3 копейки. Камень не будет отвлекаться это раз. Исключены любые софтовые ошибки - это два. Не надо заниматься никакими вычислениями дополнительными - три. Не нужно задействовать прерывания - четыре. Чем меньше софта, тем меньше возможности программеру наделать глюков.
И оба будут заглушены близкой помехой в диапазоне?
22-й модуль позволяет отстроится довольно широко. Какая предполагается ширина полосы помехи? 100 Мгц?
а на 433 - нельзя?
Так вроде не я говорил что диапазон 433МГц забит под завязку. А 868 чистый. Отсюда логика, зачем лезть в 433 если можно подальше в полосе 860+ разнести два модуля. На 20 Мгц два модуля можно отодвинуть.
10-15 км стабильной связи
Такой дальности можно достичь если доработать выход RFM22 до выходной мощности хотя бы 500мВт. В принципе можно добавить усилитель на транзисторе. Только у меня нет ни спектрометра, ни КСВ метра. На глаз не получится настроить, нужны приборы. У меня есть только осцил в свободном доступе. Но я не против маленько подшаманить выход в последствии.
Завтра 50-100 км
Ога, а пслезавтра в космос захотим!
Ну перетусуйте ножки, в конце концов, даже I2c/SPI легко на портах общего назначения сделать…
Плохая мысль. Нельзя этого делать. Быстродействие камня в сотню раз больше быстродействия i2c. Реализовывать i2c софтово, это поставить камень на ручник. В STM все можно на аппаратных DMA каналах и прерываниях по началу, окончанию организовать. Так и буду делать. Софтовый I2C не наш путь.
Главная цель - уйти от печальной системной ошибки всех более менее работающих открытых проектов - убогость и хилость архитектуры микроконтроллера на котором они строятся. Тема Mega 128 должна отмереть. Надо набрать воздуха в грудь и сделать шаг вперед уже.
Простите, но больно пафосно. Почему-то все начинающие так думают- а ведь “более менее работающие проекты” появились несколько лет, когда и у STM32 еще только баги вылавливали и ерраты писали…
Тут уже один такой есть, тезка президента. На 400-мегагерцовом TMS320. 😃 Уже год с хвостиком делает- но пока не полетел 😦… По компасу дрейф гиросковов устраняет.
Почему-то берущиеся за это сразу думают, что причина плохого поведения некоторых автопилотов в “убогой архитектуре” контроллеров. 😃
2baychi : программирование уже давно превратилось в ремесло…
Куда проще ( с точки зрения скорости разработки) взять камень с 5000 процентным запасом и делать все аппаратно- думать не надо.
Если програмный I2C у человека вызывает опасения - (поставить камень на ручник 😃 ) - ну не чувствует человек пока что такое синхронный интерфейс, - зачем лишний геморрой ему?
А вот уйти от связки проводов от приемника- это правильно.
Но тогда логично делать и второй шаг- какие нафиг аппаратные таймера, куда 100 ногий проц?
Всего 1 нога- как футаба! ( машинки и регуляторы S-bus)
…если доработать выход RFM22 до выходной мощности хотя бы 500мВт. В принципе можно добавить усилитель на транзисторе. Только у меня нет ни спектрометра, ни КСВ метра. На глаз не получится настроить, нужны приборы…
У вас же есть RSSI и амперметр - пол-ватта делается за несколько минут 😃 Даите мне вашу платку потестить а в замен предлагаю несколько сотен BFG198 транзисторов и несколько штук PD55003 и PD55008 (практически неубиваемые в отличие от модулей Mitsubishi) , правда без фильтра LPF бустер угробит видео но фильтр можно приобрести отдельно.
Между прочим всегда пользуюсь софтовым i2c, пульт Wii Nunchuck опрашивается и передает пакеты 300 раз в секунду
…
STM32F405RG - камень… Понимаешь, в нашем камушке 192кб честно озу…Как вариант, поскольку в моем камне памяти 1Мег…Вооо, посылка с камнями пришла…У меня таймеров на борту камня штук10…Камень не будет отвлекаться это раз. …Быстродействие камня в сотню раз больше быстродействия i2c.Реализовывать i2c софтово, это поставить камень на ручник. ,…Куда проще ( с точки зрения скорости разработки) взять камень с 5000 процентным запасом…Теперь по названию. Хотелось бы уйти от стереотипных штампов в принципе и названий типа Open SomeThing… в частности.
Извините !
Не удержался ! 😃
КаменныйМозг !
Почему-то все начинающие так думают-
Ну вот обозвали начинающим. Пошел фоткать передатчик с приемником, а то так и будут считать, что ничего не работает и ничего не летает.
И еще раз, я не буду на первом этапе ничего изобретать. Возьмем то, что есть и портируем. На данном этапе я склоняюсь к порту МегаПирата. Дальше будем смотреть в какую сторону развивать.
ну не чувствует человек пока что такое синхронный интерфейс
Я как раз знаю что такое программный I2C поэтому и не буду реализовывать такю шнягу, когда процессор в 20 раз работает быстрее чем предельная скорость выдачи 1 бита, которую может воспринять слэйв устройство. Я не видел ни одной программной реализации I2C которая бы не тормозила проц в пустых ожиданиях
На 400-мегагерцовом TMS320
я читал эту ветку и долго ждал пока будут результаты. Но автора понесло в GSM управление и какие-то побочные продукты. К тому же для меня подход к DSP достаточно проблематичен. Да, там до фига вычислительной мощности, но не развитая периферия (может конечно я не те модели смтрел, но из доступных это именно так). Размер корпусов - конский. И у меня нет навыков и аппаратуры аппаратного дебага. Затраты на подход с нуля к STM для человека , который имеет дело с атмелом примерно 1000руб на все железо.
Даите мне вашу платку потестить
Если бы вы жили в Н.Н., то без проблем дал бы. Сейчас выложу схему приемника и передатчика, как это есть на данный момент в рабочем состоянии. Можете дорисовать выходной усилитель, какой пожелаете, я его соберу, посмотрим как будет работать. Беретесь за это дело? Только чур делать из обще доставаемых компонентов.
КаменныйМозг
Stone Brain
Так?
Всего 1 нога- как футаба!
так и придем к этому в последствии 😉
…
Можете дорисовать выходной усилитель, какой пожелаете, я его соберу, посмотрим как будет работать. Беретесь за это дело? Только чур делать из обще доставаемых компонентов.
ничего придумывать не надо, у меня и деталей для бустера и готовых печатных плат целый склад
Stone Brain
Так?
если добавить всего одну букву то название преврашается в родное и понятное для большинства англоязычных -
Stoned Brain 😃
Ну вот обозвали начинающим. …////
Я как раз знаю что такое программный I2C поэтому и не буду реализовывать такю шнягу, когда процессор в 20 раз работает быстрее чем предельная скорость выдачи 1 бита, которую может воспринять слэйв устройство. Я не видел ни одной программной реализации I2C которая бы не тормозила проц в пустых ожиданиях
“Пустые ожидания”- это , что называется решение “в лоб”, простите. Оно подходит было для тех приложений - где вагон времени.
Если “вы не видели реализации” - это не значит, что этого нельзя СОЗДАТЬ САМОМУ. Вопрос только потраченного времени. В вашем случае кристалл дешевле потраченного времени.
На Атмеге с ее большими по сравнению с STM32 затратами времени на прерывания на прерывания и на порядок более низкой тактовой-
действительно софтовая реализация приводила бы к замедлению в 8-12раз. (просто мало инструкций “основного” кода можно было выполнить во время пауз интерфейса)
На stm32- ожидаемая потеря производительности- примерно 40-50%.
Схема приемника линк на большое разрешение
“Пустые ожидания”- это , что называется решение “в лоб”, простите. Оно подходит было для тех приложений - где вагон времени.
То есть, запускать таймеры, отпускать процессор и ждать прерываний? И городить 3ех этажный код. Если задача стоит опрашивать один датчик и больше ничего не делать, то на здоровье, занимайтесь мазохизмом. Я ж не говорю, что это нельзя сделать. Делайте, кто ж мешает. Мне такие алгоритмы не улыбаются.
На stm32- ожидаемая потеря производительности- примерно 40-50%.
Так вот я и спрашиваю зачем? Зачем делать что-то программно, чтобы потерять 40-50%, если есть решение аппартное, встроенное, халявное и без потерь?
В вашем случае кристалл дешевле потраченного времени.
А это, типа не аргумент?
ничего придумывать не надо, у меня и деталей для бустера и готовых печатных плат целый склад
Можно конкретнее, схемку или эскиз конкретно для RFM22 дифференциальных выходов с поддержкой передачи и приема?
Stoned Brain
Stoned это выложенный из камня. Stone это и существительное (камень) и прилагательное (каменный)
Любое существительное в английском языке может быть атрибутом. В вашем варианте Stoned образуется как причастие от глагола to stone
Я не прав?
Схема передатчика. Высокое разрешение