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

sp_link

Вроде никто так и не собрал схему делителей напряжения, а я решил попробовать.
Несколько вечеров вникал в код, в итоге даже нашел ошибки. Моя задача была побаночно мерить напряжения в 8-ми банках. Мой сетап - 2 липошки по 4 банки в паралели.
В лоб конечно ничего не заработало, в итоге стал копаться в коде. Выяснилось что там используется неудобный для подстройки под свои сопротивления алгоритм. Да и резсторов таких у меня не было, ряды использовал другие.


Итак, выкладываю архив в котором работающая программа с контролем до 8 банок. Кто соберется повторить, надо будет пересчитать делители в программе потому как резисторы (их фактическое сопротивление с учетом погрешности) и напряжение питания схемы будут разные. Делители удобно пересчитывать в табличном редакторе, например в гугл докс.
Вот моя табличка, формула там видна.

В кратце так - сначала прошиваем скетч с этими делителями, все включаем, видим данные на пульте (скорее всего не верные), их вводим в таблицу, меряем фактические напряжения, их тоже в таблицу, ну и делители с которыми это все подключалось. Табличка генерит новые делители их вводим в скетч и получаем нужные напряжения, если где-то не сходится проводим данную процедуру еще раз.
Сразу обращу внимание, что важно питающее напряжение, так как на его основе идет сравнение с напряжениями на АЦП атмеги. Я использовал внешний БЕК для запитки атмеги, потому как в сети питания АПМ напряжение постоянно скачет на две-три сотки, что, в свою очередь также отражается в постоянном изменении измеряемых напряжений. С БЕКом все ровно и без скачков.
Бонусом поправлен баг с отображением координат, за это спасибо Александру Долгину (Davest).

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

MavLink_FrSkySPort_Atmega 328p_8cell battery+GPS fix.rar

ExIM

Ребят, Nano прошил скетчем из 85 поста, вроде-бы что-то работает, но не всё.
Показывает только высоту по барометру, и всё… Плата Crius AIOP 2, с MegapirateNG. Как ни пытался завести другие данные, не выходит. GPS по нулям, всё остальное тоже. Датчик тока с HK не работает ни на одном из портов.
В FrSKyPort менял строку

case 3:
//      FrSkySPort_SendPackage(FR_ID_ACCZ, fetchAccZ());
    FrSkySPort_SendPackage(FR_ID_A3_FIRST, analogRead(A2));
      break;

И все-равно ничего не выходило.
Nano подключаю к третьему порту, туда же где висит 3DRadio. Или надо туда, где GPS?
В чем может быть проблема?

alezz

туда где телеметрия: или радио или осд. Попробуй версию с поста #217

petrochen
alezz:

Проще всего это сделать подтыкнув ардуинку к FLVSS, там два выхода (входа) на смартпорт, а второй провод с FLVSS к приемышу

Не работает такая связка, пока не могу разобраться в чем дело.

В коде оставил только отправку SENSOR_ID_GPS и SENSOR_ID_VARIO.
Если ардуинку воткнуть на прямую в X8R, то все работает.
Если воткнуть через FLVSS, то напряжение с FLVSS идет на таранис, а данные с ардуинки нулями. При подключении ардуинка помаргивает ледом с разной частотой, т.е. вроде как данные отправляет.

Прошивка 0.3 из поста #86

ExIM

Спасибо, проблема оказалась в том, что приемник забинден в режиме D8. В этом случае на экран показывается только напряжение питания и высота по барометру кратная 1 целому метру.
А не подскажете, как заменить отображение A1 (напряжение питания приёмника) на что-нибудь своё? Сейчас копаюсь в коде, не особо вижу эту строку…

alezz
ExIM:

А не подскажете, как заменить отображение A1 (напряжение питания приёмника) на что-нибудь своё? Сейчас копаюсь в коде, не особо вижу эту строку…

ни как, А1 зашито железно в приемник. Но там кроме А1 куча свободных параметров, бери любой другой

ExIM
alezz:

ни как, А1 зашито железно в приемник. Но там кроме А1 куча свободных параметров, бери любой другой

Все остальные вроде бы выдают только целые числа без точки, или это можно изменить?

И как быть с нелинейностью датчика напряжения? На входе аккумулятора подключен цифровой мультиметр, и дальше уже по схеме датчик напряжения с HK. Делители подобрал так, что в режиме покоя напряжение на датчике совпадает с напряжением на мультиметре.

Но стоит только завести двигатели, напряжение на датчике падает непропорционально результату мультиметра.
Выглядит это примерно так:
Газ,%____Uмультиметра,В___Uтелеметрии,В.
Disarm_______11.55____________11.5
0___________11.54____________11.3
20%_________11.50____________10.9

70%_________11.42_____________9.3

alezz

если речь о аналоговых входах А2-А4 то они настраиваются и в компаньоне и с пульта, для каждого есть параметры unit/range/offset, поэксперементируй
по поводу нелинейности датчика, это вообще что-то странное. Наверное нужно вместо покупного датчика с НК собрать свой (это 2 резистора откуда нелинейность?) и добавить в опыт еще одно измерение - напряжение на выходе датчика. В принципе погрешность 0.2 - 0.3В это нормально, но 2 - 3В конечно нет

ExIM
alezz:

они настраиваются и в компаньоне

Компаньон, как я понимаю, это утилита для Taranis?
У меня Tурнига 9X, оффсеты и юнит только для A1 и A2 можно настроить, остальное только в коде прошивки менять
Спасибо за совет, сегодня попробую собрать свой датчик. 😃

deadlyguest

Здравствуйте. Заинтересовался данной темой, купил пару ардуин (pro mini 328). Залил hex из 97 поста, телеметрия работает, координаты gps показывает неверно. Более поздние версии hex файлов для APM показывали просто прочерки и когда небыло фиксации gps и когда фиксация появлялась. Пробовал скомпилировать скетчи, представленные здесь, но Arduino IDE пишет, что мало памяти (глобальные переменные заняли 174%). Я в общении с ардуиной новичок, прошу помощи.

deadlyguest

Прошил при помощи Arduino IDE 1.0.5 скетч из 217 поста и все заработало. Большое спасибо.

Entrprise
petrochen:

Не работает такая связка, пока не могу разобраться в чем дело. В коде оставил только отправку SENSOR_ID_GPS и SENSOR_ID_VARIO. Если ардуинку воткнуть на прямую в X8R, то все работает. Если воткнуть через FLVSS, то напряжение с FLVSS идет на таранис, а данные с ардуинки нулями. При подключении ардуинка помаргивает ледом с разной частотой, т.е. вроде как данные отправляет. Прошивка 0.3 из поста #86

Если бы не прочитал, то так бы и думал что это я где то накосячил 😃
Вообщем такая же ситуация, через FLVSS не работает, а напрямую данные идут.
А есть где то описание какие данные от назы в какие поля телеметрии передаются или надо в коде искать?

alezz

описания нет, но там код достаточно простой- читается как описание 😃

Entrprise
alezz:

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

понял, поковыряюсь.

а на счет ситуации с совместной работой с FLVSS есть идеи?

ExIM
sp_link:

Вроде никто так и не собрал схему делителей напряжения, а я решил попробовать.

Либо меня не так учили схемотехнике, либо я не совсем пойму…

Красным обозначена земля? Тогда в желтой метке происходит короткое замыкание…
И не много ли для ардуинки давать 4.2? Боюсь немного…

sp_link

Оп, ошибочка, там напрямую первая банка идет на ардуину, до земли она не идет! Вы первый самый внимательный.
5вольт для атмеги самое то!

arduino.cc/en/Reference/analogReference

ExIM
sp_link:

Оп, ошибочка, там напрямую первая банка идет на ардуину, до земли она не идет! Вы первый самый внимательный.
5вольт для атмеги самое то!

arduino.cc/en/Reference/analogReference

Спасибо большое, вы хорошую работу проделали!
Ушел брать в руки паяльник. 😃

Entrprise
Entrprise:

а на счет ситуации с совместной работой с FLVSS есть идеи?

сегодня либа обновилась в связи с фиксом совместной работы ардуинки и других смарт-портовских датчиков - www.rcgroups.com/forums/showpost.php?p=29439177&po…

Алексей, Вас ждут великие дела по выкатыванию новой версии 😃

alezz
Entrprise:

сегодня либа обновилась в связи с фиксом совместной работы ардуинки и других смарт-портовских датчиков

хм. теперь вроде понятно почему вместе не работало. Но так лениво переделывать, у меня то других датчиков нет 😃