naza2frsky - адаптер смартпорта для FrSky за 3$

Morfey
alezz:

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

Ардуина данные шлет, проверял, а вот почему она не шлет именно напряжение, понят не смог, ибо знаний по этому вопросу ноль.

alezz:

Учитывая что “в naza2frsky все работает” осталась мелочь - определить что в скетче для АРМ не правильно, сравнив оба скетча

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

alezz:

осталась мелочь - определить что в скетче для АРМ не правильно

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

alezz
Morfey:

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

ну наверное НЕ ноль если удалось прикрутить к naza2frsky вывод напряжения, который он изначально НЕ делается. Для начала точно так же в АРМ версии попытаться выводить общее напряжение (напряжение одной банки) как это сделано в naza2frsky ибо искомая строка тебе уже известна.

Morfey
alezz:

ну наверное НЕ ноль если удалось прикрутить к naza2frsky вывод напряжения, который он изначально НЕ делается.

Просто внимательно прочитал тему и делал по твоему описанию. Так же удалось таким же методом прикрутить три банки к naza2frsky, но это больше смахивает на колхоз. (И такое будет нормально работать только в opentx 2.1, как я понимаю)

alezz:

Для начала точно так же в АРМ версии попытаться выводить общее напряжение (напряжение одной банки) как это сделано в naza2frsky ибо искомая строка тебе уже известна.

Сейчас буду пробовать.

alezz:

ну наверное НЕ ноль если удалось прикрутить к naza2frsky вывод напряжения, который он изначально НЕ делается.

Просто внимательно прочитал тему и делал по твоему описанию. Так же удалось таким же методом прикрутить три банки к naza2frsky, но это больше смахивает на колхоз. (И такое будет нормально работать только в opentx 2.1, как я понимаю)

alezz:

Для начала точно так же в АРМ версии попытаться выводить общее напряжение (напряжение одной банки) как это сделано в naza2frsky ибо искомая строка тебе уже известна.

Сейчас буду пробовать.

Попробовал в MavLink_FrSkySPort заменить

FrSkySPort_SendPackage(FR_ID_A3_FIRST, handle_A2_A3_value((ap_roll_angle+180)/scalefactor));

на

FrSkySPort_SendPackage(FR_ID_A3_FIRST, analogRead(A0));

Получил в телеметрии датчика “А3” число, не зависящее от поданного напряжения на вход А0. (Так что “в лоб”, как в naza2frsky не получилось).

А если такую же операцию проделать, но написать так:

FrSkySPort_SendPackage(FR_ID_CELLS, analogRead(A1));

То хоть в телеметрии начинает отображаться датчик “Cels”, правда вместо значений там “—”.

alezz
Morfey:

Попробовал в MavLink_FrSkySPort заменить

FrSkySPort_SendPackage(FR_ID_A3_FIRST, handle_A2_A3_value((ap_roll_angle+180)/scalefactor));

на

FrSkySPort_SendPackage(FR_ID_A3_FIRST, analogRead(A0));

Получил в телеметрии датчика “А3” число, не зависящее от поданного напряжения на вход А0. (Так что “в лоб”, как в naza2frsky не получилось).

Ну давай разбираться дальше, то ли разрядность FR_ID_A3_FIRST в телеметрии не правильное, то ли analogRead не работает (например нет напряжения на входе). Вот инфа по analogRead arduino.ru/Reference/AnalogRead
т.е. функция выдает значения от 0 до 1023. Поэтому пробуем сначала например FrSkySPort_SendPackage(FR_ID_A3_FIRST, 500); потом FrSkySPort_SendPackage(FR_ID_A3_FIRST, 1000); а потом запредельное FrSkySPort_SendPackage(FR_ID_A3_FIRST, 10000); и смотрим что получаем по телеметрии. Исходя из полученных результатов делаем выводы 😉

Morfey
alezz:

Поэтому пробуем сначала например FrSkySPort_SendPackage(FR_ID_A3_FIRST, 500); потом FrSkySPort_SendPackage(FR_ID_A3_FIRST, 1000); а потом запредельное FrSkySPort_SendPackage(FR_ID_A3_FIRST, 10000); и смотрим что получаем по телеметрии. Исходя из полученных результатов делаем выводы

В первом случае телеметрия дает 5.0, второй 10.0 и последний 100.0.
Как я понимаю почему то не считываются данные с входов A0-A2

alezz
Morfey:

Как я понимаю почему то не считываются данные с входов A0-A2

ну вот, так и до истины добраться не долго 😃 Либо нет напряжения на входах (например подтянул вход к земле низкоомным сопротивлением), либо оно слишком большое (подтянул вход к плюсу, а не минусу), либо AnalogReference неправильно настроен arduino.ru/Reference/AnalogReference, либо увы выгорели входы A0-A2 (например подал напряжение больше 5В). Может есть какие еще варианты, это то что сразу в голову пришло.

Morfey

Сейчас еще раз проверил, при таком виде:

FrSkySPort_SendPackage(FR_ID_A3_FIRST, analogRead(A0));

В телеметрию приходит фиксированное значение 10,23.

alezz:

Либо нет напряжения на входах (например подтянул вход к земле низкоомным сопротивлением), либо оно слишком большое (подтянул вход к плюсу, а не минусу), либо AnalogReference неправильно настроен arduino.ru/Reference/AnalogReference, либо увы выгорели входы A0-A2 (например подал напряжение больше 5В).

Ничего не меняя в схемотехнике, прошиваю ту же ардуину naza2frsky и все работает.

Делитель делал по схеме:

alezz:

AnalogReference неправильно настроен arduino.ru/Reference/AnalogReference,

Поменяв AnalogReference на DEFAULT заработала

FrSkySPort_SendPackage(FR_ID_A3_FIRST, analogRead(A0));

Но побаночно все ровно молчит.

alezz
Morfey:

Но побаночно все ровно молчит.

а на А0 сейчас вся батарея или первая банка? Какие напряжения на входах А0-А2?

Morfey
alezz:

а на А0 сейчас вся батарея или первая банка?

Первая банка

alezz:

Какие напряжения на входах А0-А2?

где то в районе 2.8 - 3,2

alezz

напряжение нормальное, т.е. одна банка есть нужно еще две? Предлагаю к заработавшей

FrSkySPort_SendPackage(FR_ID_A3_FIRST, analogRead(A0));

добавить еще например

FrSkySPort_SendPackage(FR_ID_T1, analogRead(A1));
FrSkySPort_SendPackage(FR_ID_T2, analogRead(A2));

т.е. использовать Т1 и Т2

Morfey
alezz:

т.е. использовать Т1 и Т2

уже сделал:

Morfey:

Так же удалось таким же методом прикрутить три банки к naza2frsky, но это больше смахивает на колхоз. (И такое будет нормально работать только в opentx 2.1, как я понимаю)

Так у меня уже работает в naza2frsky, я пытаюсь понять, почему у меня в MavLink_FrSkySPort не работает по человечески побаночный контроль, хотя в теме не один человек есть, у которых по описанием все ок.

alezz
Morfey:

я пытаюсь понять

Удачи! Главное заработало, колхоз не колхоз не суть важно, за сим удаляюсь 😃 Я думаю что проблему искать нужно где-то здесь в математике:

handle_A2_A3_value((ap_roll_angle+180)/scalefactor)

название переменной ap_roll_angle и константа 180 (очень похоже на градусы) для измерения постоянного напряжения как минимум настораживает

Morfey
alezz:

Удачи! Главное заработало, колхоз не колхоз не суть важно, за сим удаляюсь

Спасибо за помощь, буду пока так пользоваться, и может чего то накопаю )))

alezz:

Я думаю что проблему искать нужно где-то здесь в математике: handle_A2_A3_value((ap_roll_angle+180)/scalefactor) название переменной ap_roll_angle и константа 180 (очень похоже на градусы) для измерения постоянного напряжения как минимум настораживает

Не, в а2 и а3 они выводят совсем другое:

A2              ( HDOP value * 25 - 8 bit resolution)
A3              ( Roll angle from -Pi to +Pi radians, converted to a value between 0 and 1024)
A4              ( Pitch angle from -Pi/2 to +Pi/2 radians, converted to a value between 0 and 1024)

А вольтаж должен выводится через cells и cell:

Cell            ( Voltage of Cell=Cells/(Number of cells). [V])
Cells           ( Voltage from LiPo [V] )
1 month later
Morfey

И снова здравствуйте!
Тут получил датчик тока, и соответственно прикрутил его к naza2frsky, все ок, работает.
А теперь вопрос, как показания с этого датчика дублировать на mininazaOSD?
Если тупо подключаю в параллель, показания пропадают и там и там.
В голову пришло только что бы ардуинка дублировала показания с датчика на какой нибудь свободный порт, но мозгов на это пока не хватило.

alezz

мне кажется чтобы не городить огород с обменом данных между ардуинками, самый простой способ это сделать повторитель напряжения на операционном усилителе как предложил на предыдущей странице AndrewV rcopen.com/forum/f123/topic386079/475

Morfey

Спасибо, попробую так сделать.

Morfey

Спаял сегодня усилитель на lm358, и все заработало, теперь нету просадки при подключении к датчику одновременно naza2frsky и OSD.
Правда не обошлось без потерь, в ходе настроек похоже спалил мультиметр, перестал он корректно показывать силу тока (((

Sorcer

Вольтаж калибровал на 0.1-0.2 вольта, а вот с силой тока - нет инструментов чем другим проверить во время лёта, нужна ли калибровка?

alezz

Ток калибруется точно так как и напряжение, естественно без калибровки показания будут ну очень приблизительными. В принципе можно калибронуть на глаз, емкость батареи знаем, смотрим сколько израсходовано энергии за полет до полного разряда и подгоняем эти два числа

Sorcer
alezz:

В принципе можно калибронуть на глаз, емкость батареи знаем, смотрим сколько израсходовано энергии за полет до полного разряда и подгоняем эти два числа

Возникла идея - калибровать не на коптере, а на чём то - на чём известно потребление… ну или можно мультиметром до 10А проверить… ну а потом уже подрубать к коптеру… )
1мотор может 10А и не кушает, а вот в целом точно будет больше… (это о том, что мультиметром ни как) Нужно что нибуть статическое, а не мотор - например, лампочка, наверно подойдёт.

Moto_Flyer

Здравствуйте. Замучился рыть носом в интернете…неделю уже разобраться не могу. Сделал все как в 1 посте но координаты так и не отображаются скиньке кто нить скрин настройки пульта с компаньена. Пожалуйста. Я так понимаю подключаем прошитую ардуинку, а дальше? Дальше ничего не происходит попробовал включить в компаньене gps но оно так и пишется GPS, а как цифры то увидеть?