Вопросы по iNav

Cossack
kasatka60:

Полетник получает по sbus сигнал FS и тупо игнорирует значения по всем каналам, включая значение RSSI. Вот и все.

Хм, об этом не подумал… Спасибо. Просто смутило происходящее…

dartlexx

Приветствую!
Подскажите, пожалуйста по след. ситуации с датчиком тока от esc (KRAMAM-4-In-1).
Сконвертировал конфиг для полетного контроллера SKYSTARSF7HD (SKYSTARS F722 2020) из betaflight v.4.2.11 в inav v.3.0.2.
Квадр летает, но проблема с датчиком тока - не работает. В бетафлайте он работает. Может чтото упустил при конвертации, посмотрите, пожалуйста.

Вот что касается датчика тока:
betaflight конфиг:
dma ADC 2 0
# ADC 2: DMA2 Stream 2 Channel 1

resource ADC_BATT 1 C01
resource ADC_RSSI 1 C02
resource ADC_CURR 1 C03

преобразовал в inav target.h:
#define ADC_INSTANCE ADC1
#define ADC1_DMA_STREAM DMA2_Stream0
#define USE_ADC
#define ADC_CHANNEL_1_PIN PC1
#define ADC_CHANNEL_2_PIN PC2
#define ADC_CHANNEL_3_PIN PC3
#define VBAT_ADC_CHANNEL ADC_CHN_1
#define RSSI_ADC_CHANNEL ADC_CHN_2
#define CURRENT_METER_ADC_CHANNEL ADC_CHN_3

Приложил файл с конфигами бетафлайта и inav, таргетом для inav и итоговой прошивкой inav_3.0.2_SKYSTARSF7HD.hex

inav.from.bf.SKYSTARSF7HD.zip

dartlexx

Разобрался. Там в adcTagMap используется маппинг DEFIO_TAG_E__PC1. Просто добавил
#define TARGET_IO_PORTD 0xffff
#define TARGET_IO_PORTE 0xffff
в target.h и заработал датчик тока.
Кому интересно, приложил прошивку, таргет и дамп настроек

SKYSTARSF7HD.zip

EHOT
  1. Есть ли реализация iNav для Linux или другой ОС (ОСРВ)? Или свернуть шею к Ардупилот +NAVIO 2 ?
  2. Есть ли возможность выполнить какой либо скрипт - Lua, Basic, Python… Типа как Lua в OpenTx? Например в каком либо полетном режиме хочу задать особое поведение борта, которое не определено текущей “жесткой” логикой.
    Например отключить мотор самолета, если и так поднимает термичкой.
kasatka60
  1. Нету, если только самому собирать все и вся.
  2. Пока не реализованно, но вроде были слухи о реализации что-то наподобие луа скрипов.
    Так что пока вам лучше в сторону ардупилота.
tkachovr
EHOT:
  1. Есть ли реализация iNav для Linux или другой ОС (ОСРВ)? Или свернуть шею к Ардупилот +NAVIO 2 ?
  2. Есть ли возможность выполнить какой либо скрипт - Lua, Basic, Python… Типа как Lua в OpenTx? Например в каком либо полетном режиме хочу задать особое поведение борта, которое не определено текущей “жесткой” логикой.
    Например отключить мотор самолета, если и так поднимает термичкой.

Welcome to ardupilot)))

rc468
EHOT:

Например отключить мотор самолета, если и так поднимает термичкой.

конкретно эта настройка – stop motors on low throttle.

kasatka60
rc468:

конкретно эта настройка – stop motors on low throttle.

Вы путаете туплое с мягким. Условие термик, а не газ на нуле.

rc468

Как определяет условие “термик” полетный контроллер?

EHOT

Условие “нахождение в термике” состоит из нескольких логических триггеров.
Вот для этого и спрашивается наличие скрипта, с помощью которого можно и определить наличие и главное - что с этим делать?

schs
rc468:

Как определяет условие “термик” полетный контроллер?

по увеличению высоты

kasatka60

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

rc468
schs:

по увеличению высоты

Как он отличает его от простого увеличения высоты?
Вот например коптер увеличивает высоту
Контроллер это видит и снижает тягу на винтах
Высота перестает увеличиваться
Контроллеру все равно, там термик или не термик, правильно?
Если высота увеличиваться не перестает, что происходит? Тяга снижается еще больше, вплоть до минимальной.
Тут мы и приходим к stop motors on low throttle. Или, если это не работает, то тупо ставим min throttle = 0 и моторы останавливаются сами.

EHOT

коптерам этот режим не грозит. Можно “откалибровать” количество “газа” в нетермичную погоду, когда борт летит без снижения высоты, точнее говоря - с нулевой вертикальной скоростью.
тут мнесколько факторов, в том числе и аэродинамическое качество планирования.
если надо поенять - поднимает ли борт термичкой ли мотором - устанавливаем газ в подобранное ранее значение - и определяем как изменяется высота.
Снижаемся, “тапкавпол” - летим дальше.
Но можно откалибравать и в более щиром диапазоне. Построить зависимость набора высоты от количества газа. Кивая это получится или линейный график дело второе. Ключевое - то что построена зависимость в безтермичную погоду.
Теперь если в штатном полете при определенном количестве газа - мы делаем поправку на вертикальную скорость по построенной зависимости.

Но все это оффтоп.
Меня интересует - как прикрутить СВОЙ скрипт в обработку текущих параметров полета и выдаче управляющих воздекйствий на члены управления?
В Ardupilot это можно сделать.
Дальше продолжать?

kasatka60
EHOT:

В Ardupilot это можно сделать.
Дальше продолжать?

Тут давно на это намекают.

rc468
EHOT:

если надо поенять - поднимает ли борт термичкой ли мотором

А вот зачем это понимать? Задача в приципе какая стоит - чтобы борт не поднимался? Для этого используется тяга моторов? Снижение тяги приводит к прекращению подъема? Тогда какая разница, чем он поднимается?

EHOT

Задача конкретная - иметь возможность выполнить скрипт под текущие нужды без модификации прошивки тчк

rc468

Про задачу понятно 😃 вопрос отдельный

schs
rc468:

Вот например коптер увеличивает высоту

Для коптера парения в термиках нет, насколько мне известно.

rc468:

Контроллеру все равно, там термик или не термик, правильно?

обрабатываюся многие параметры. Можете почитать в документации подробнее.
ardupilot.org/plane/docs/soaring.html

rc468
schs:

обрабатываюся многие параметры. Можете почитать в документации подробнее.

подробнее там, если в итоге, то срабатывает тупо по параметрам высоты.
ну вот реально тупо - SOAR_ALT_MIN, SOAR_ALT_MAX и SOAR_ALT_CUTOFF.
вот и вопрос - зачем тогда все остальное.
высота падает - включаем тягу
высота растет - выключаем тягу
по какой причине растет или падает высота - какая разница?