Автопилот Arduplane - открытое ПО

alexeykozin
prg:

Там измеряется напряжение проца с помощью встроенного “эталона”. Не помню 1.1 или 2.56. А потом оно данные ADC делит на эту фигню.

посмотрел код и если ничего не прошлядел, встроенный в 2560 эталон используется для вычисления параметра hardware voltage а для аналоговых сенсоров используется напряжение питания +5 в качестве опорного
программной коррекции опорного напряжения нет. поэтому если источник питания не держит четко 5.00 то все показания аналоговых сенсоров будут плавать.
ну всех или нет я может погорячился, но напряжение батареи и ток - будут.
надо еще аирспид глянуть - ибо это критически важный датчик весьма чувствительный к изменению питания
проверить очень просто если есть источник регулируемого напряжения. посмотреть показания датчиков при питании 4,6 и при 5.0

AlbusLupus:

подскажите новичку какую железяку лучше купить (понятно что оригинал но жаба душит), если выбирать что-то из поднебесной то какую ревизию платы стоит брать?

если цель удушение жабы + руки и паяльник на своих местах берете любой апм 2.5.2 или 2.6 навесом паяете туда какойнить хороший стаб 3.3, впаиваете электролит на 470-1000мкф в цепь питания
получится хороший контроллер.
Желательно сразу поменять конденсатор с13 на 50 вольтовый. китайцы не церемонятся и иногда ставят на 16 вольт, в результате гироскопы плывут, особенно от изменений температуры.
залить кварцы влагозащитным составом чтобы от конденсата проц не встал (атмега чувствительна к подмоканию кварца)
добавить к этому всему точный бп на 5 вольт и глонасс-гпс приемник и получится апм как мой набор
но мой набор не способствует удушению жабы, больше предназначен тем кому надо “самое самое” без косяков и в идеальном исполнении.

AlbusLupus

а подскажите еще один момент…я хочу использовать арм как автопилот для цессны 182 (1 метр размах крыла).
Вообще автопилотировать такую модель возможно? или не стоит заморачиватся?

djsatan

Автопилот можно поставить куда хочешь
Размер модели не сильно критичен
Там уже ПИДы только настраивать

prg
alexeykozin:

программной коррекции опорного напряжения нет

Программной коррекции напряжения конечно нет. Но в некоторых случаях значение масштабируется под ADC. Умножается, конечно, не делится на vcc.
/*
return voltage from 0.0 to 5.0V, scaled to Vcc
*/
float ADCSource::voltage_average(void)
{
float vcc_mV = hal.analogin->channel(ANALOG_INPUT_BOARD_VCC)->read_averag
float v = read_average();
// constrain Vcc reading so that a bad Vcc doesn’t throw off
// the reading of other sources too badly
if (vcc_mV < 4000) {
vcc_mV = 4000;
} else if (vcc_mV > 6000) {
vcc_mV = 6000;
}
return v * vcc_mV * 9.765625e-7; // 9.765625e-7 = 1.0/(1024*1000)
}

ekf

Прекрасно! Но к сожалению, я умею только ассемблер PIC. Поэтому, если Вас не затруднит - меня интересует ответ на простой вопрос. При каком опорном напряжении (напряжении питания платы АПМ), вычисления имеют максимальную точность: 5.000 вольт, 5.120 вольт или возможно любое высокостабильное напряжения питания в диапазоне 4.75 - 5.25 вольт?

DChernov
alexeykozin:

надо еще аирспид глянуть

Тоже рациометрический выход.
На 5 странице www.freescale.com/files/sensors/…/MPXV7002.pdf на графике формула выходного напряжения (не сразу найдёшь).

А вот измерители тока на базе миллиомного резистора и INA169 типа РЦ-Таймеровских имеют выход абсолютный, вот они должны врать в схеме с опорой в виде питания.

Надо бы ещё глянуть по разводке печатной платы АПМ, как там сделано, не возникает ли между питанием Аирспида и Атмеги разности потенциалоа из-за протекания питающих токов телеметрии или там ОСД.

ekf

ina169 показывает более-менее точно при токе выше 20 ампер.

alexeykozin
DChernov:

Тоже рациометрический выход.

имхо проще обеспечить четкие 5 вольт питания чем ловить блох с методами измерения, тем более если говорить о надежных системах то качественное питание - залог стабильности системы целиком.
последние полгода или даже больше занимался поиском идеального стаба. Все компактные лдо максимум до ампера. большинсву хватает, но кто делает навороченную систему с телеметриями от ватта и более уже вынуждены питать их отдельно. Из бюджетного регулируемого лдо попалась микруха IRU1150. она придумывалась специально для очень капризных к питалову интеловских чипсетов с мощной переменной нагрузкой. Лдо имеет поверсенс по ДВУМ линям по (gnd и выходу). тоесть умеет компенсировать потери в проводах - дорожках к питаемому чипу. Разумеется делать питающий шлейф для апм из 5 проводников это через чур, сенс можно подключить на выходные пины платы а потерями в проводе пренебречь. Тест модулей показал что все круто имульсы до 2,9 ампер держит без просадки до сотых долей на выходе стаба. на толстом 22авг проводе падает соток пять, это некритично. В отличие от других лдо которые стабильны начиная от 5,6 вольт входного IRU требует 6,15 на входе. Сооответственно чуть меньше КПД и чуть больше нагрев.
Мы сейчас сделали партию бп в котором юбек дает 6,3. тесты показали чуть больший нагрев, стабильную работу без перегрева при токах в ампер. страховки ради заявляем что постоянная нагрузка 800ма, ипульсная до и ток защиты 2,9а.
Если интересно могу выложить чертежи платки, схемку

Shrizt

Подскажите, в минимосд высота показывается относительно моря чтоли? Надо ли, и если надо то как, ее выставить на ноль? Если я включу rtl он же грохнет об землю модель? Или он держит заданную высоту относительно дома?
Сегодня бахнулся об дерево ������ 😦

А еще, периодически osd пропадало с картинки… Что это может быть?

ВлАс
alexeykozin:

Желательно сразу поменять конденсатор с13 на 50 вольтовый.

Алексей, почему 50в, питание МПУ6000 3.3в? За что отвечает этот конденсатор, может имеет смысл танталовый поставить, они не боятся морозов?

prg
DChernov:

Тоже рациометрический выход.

Посмотрел внимательней на код ardupilot. Там есть два основных способа измерения напряжения. voltage_average, voltage_average_ratiometric.
И вот, например, для аналогового airspeed используется voltage_average_ratiometric, а для тока и напряжения “абсолютный” вариант - тот, что я выше привел. Получается, что использовать высококачественный аналоговый ратиометрический датчик тока - не совсем правильно. Даже если обеспечить стабильное напряжение питания, зачем внутренний ref в вычисление привлекать?

Shrizt:

А еще, периодически osd пропадало с картинки…

У меня это было на двух из двух китайских плат. Из-за китайского клона микросхемы max7456. При низкой температуре. Пропадание текста OSD, а иногда пропадание всего изображения. После замены max7456 проблем не было.

ekf:

при токе выше 20 ампер

Это с шунтом 0.0005 Ом?
Мне большие токи не нужны, я шунт поменял.

Добрый_Ээх

Кстати по поводу установки базы. В окне Flight Plan справа под кнопками есть типа ссылки Коорд. Базы. Так вот если её щёлкнуть она привязывает базу к текущему месту и в окошечках показывает координаты и высоту)

alexeykozin
ВлАс:

Алексей, почему 50в, питание МПУ6000 3.3в? За что отвечает этот конденсатор, может имеет смысл танталовый поставить, они не боятся морозов?

это конденсатор charge pump мпу имеет встроенный высоковольтный источник питания, напряжение на этом конденсаторе порядка 24 вольт.
поскольку типовые номиналы по напряжению у керамики 10 16 25 50 вольт то логично ставить на 50
важна не стабильность по емкости а отсутствие утечки, нужна керамика.
при малейшей утечке напряжение падает, гироскоп откалиброванный на другой напруге дает угловую скорость

ВлАс
alexeykozin:

поскольку типовые номиналы по напряжению у керамики 10 16 25 50 вольт то логично ставить на 50

А по скольку на нем нет никаких надписей, то надо просто поменять…

MANS

MavlinkOSD 2.0
Питание +5В и +12В (пробовал и +5В и +5В).
При подключении к телевизору картинка очень яркая, прямо белый текст на ярко-белом фоне. Текст распознается за счет черных теней от шрифта (текст “No MAV Data”, не видит данных, но это другой вопрос).
При приеме в очки через передатчик 5.8ГГц вообще срыв синхронизации (на телеке, при подключении напрямую, иногда тоже срывается).
Аппаратная неисправность?
Работает изначально так с дефектом.
Если смысла ремонтировать нет и проще новую заказать, то так и скажите. Старую отдам вам для опытов.

Shrizt
prg:

У меня это было на двух из двух китайских плат. Из-за китайского клона микросхемы max7456. При низкой температуре. Пропадание текста OSD, а иногда пропадание всего изображения. После замены max7456 проблем не было.

Пропадает и опять само появляется? Меняли прям микросхему на плате? Где ж взять не-китай? 😃

Остается вопрос про высоту, подскажите плз, мануал не курится что то:

Shrizt:

Подскажите, в минимосд высота показывается относительно моря чтоли? Надо ли, и если надо то как, ее выставить на ноль? Если я включу rtl он же грохнет об землю модель? Или он держит заданную высоту относительно дома?

alexeykozin
Shrizt:

Пропадает и опять само появляется? Меняли прям микросхему на плате? Где ж взять не-китай?

я брал на пробу оригинальные микрухи, со свежим годом выпуска в терраэлектронике до подорожания по 900р
www.terraelectronica.ru/catalog.php?ID=1115&search…
оригинальная микруха заметно меньше греется но ценник космический

если бы сейчас стал делать свою платку обязательно бы поставил пару мелких разъемов на 4 контакта под стиль разъемов какой нить типовой аппаратуры имершенрц например чтоб подключать можно было без перепайки хошь с камеры в передатчик хошь через осд

Shrizt
alexeykozin:

но ценник космический

Едрит-мадрид, китайцы рулят… вот ведь удивительно, вроде микруха греется, а на холоде работает нестабильно… может для этого и греется? 😃

kaveg
Shrizt:

Остается вопрос про высоту, подскажите плз, мануал не курится что то:

Там можно смотреть и высоту эбав си левель(уровня моря), и высоту относительно дома, хоум альтимтьюд… смотри в настройках показометров в конфигурялке осд.

чтобы не быть голословным ссылка на доку code.google.com/p/arducam-osd/wiki/Cfg_HAM
там в разделе panels description

prg
Shrizt:

Пропадает и опять само появляется?

Насколько помню, текст OSD пропадал и не восстанавливался до перезагрузки. А видео с камеры то появлялось то пропадало.

alexeykozin:

но ценник космический

Ага, 900x2 сейчас. Но на каком-нибудь алиэкспрессе брать смысла нет. Там то же самое, что и на платах.

Shrizt
kaveg:

Там можно смотреть и высоту эбав си левель(уровня моря), и высоту относительно дома, хоум альтимтьюд… смотри в настройках показометров в конфигурялке осд.

чтобы не быть голословным ссылка на доку code.google.com/p/arducam-osd/wiki/Cfg_HAM
там в разделе panels description

То есть, это параметры осд, а автопилот при rtl,ALT_HOLD_RTL меряет относительно высоты точки старта? Правильно?