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

ekf

Диапазон 5вольт +\- 0.25 вольт ( 5% допуск) - это бытовой стандарт мира 5 вольтовых микросхем, наследниками которой являются и процессора типа PIC и MEGA. MAX7456 (OSD) тоже работает в этом диапазоне.С точки зрения нагрева корпуса именно эту микросхему ( а значит и весь OSD) лучше запитать минимально допустимым напряжением по даташиту. АЦП в процессоре 10 битный, опорное берется от источника питания. Это значит, что при делении 5.12 вольт на 1024 получится ровное значение 5 милливольт для минимального шага квантования. Красивое, ровное значение. Но мне непонятна привязка математики к плавающему значению опорного напряжения.

DChernov
ekf:

Красивое, ровное значение. Но мне непонятна привязка математики к плавающему значению опорного напряжения.

Аллегры вот что пишут про свои сенсоры (ACS758):
Ratiometry. The device features a ratiometric output. This
means that the quiescent voltage output, VIOUTQ, and the magnetic
sensitivity, Sens, are proportional to the supply voltage, VCC
Так что гуляж питающего (оно же опорное) напряжения автоматически компенсируется.
Кстати, аирспидсенсор тоже работает с питанием в качестве опоры.

ekf
DChernov:

гуляж питающего (оно же опорное) напряжения автоматически компенсируется

У меня не получилось.

vasia

“NAV_WAYPOINT n/a, alt, lat, lon} – Контрольная точка n/a, высота, широта, долгота” …че то мозк сломал, что в параметрах точки значит сокращение “n/a”?

dima_ua

Basic waypoint commands

WAYPOINT

Option Alt Lat Lon
Delay (seconds) Altitude (meters) Latitude Longitude

  • Mavlink command is NAV_WAYPOINT
  • Delay option is triggered after the craft reaches the waypoint radius. The Next command is loaded after the delay.
  • Delay time is in seconds, the default is 0

n\a - не доступно или не задано. в зависимости от контекста

alexeykozin

аллегро имеет определенное значение напряжения на ампер тока , это значение даже калибровать не надо тупо вбиваете коэфициент.
вот тут специфические моменты hobby.msdatabase.ru/…/apm25-current-sensor
тут какие параметры крутить на примере ардукоптера hobby.msdatabase.ru/…/apm2powermodule
и собственно
BATT_AMP_PERVOLT количество вольт соответствующих 1А тока проходящего через сенсор тока
к примеру для сенсора ALLEGRO ACS756 на 50А c чувствительностью 0,04 вольта на ампер - этот коэффициент равен 25,

для ALLEGRO ACS756 на 100А с чувствительностью 0,02 вольта на ампер - этот коэффициент равен 50
для расчета коэффициента для других сенсоров следует взять из документации чувствительность вольт_на_ампер

и рассчитать значение по формуле BATT_AMP_PERVOLT =1/ вольт_на_ампер

алегро - просто лучшее решение с точки зрения измерения тока для наших целей.

DChernov:

Так что гуляж питающего (оно же опорное) напряжения автоматически компенсируется. Кстати, аирспидсенсор тоже работает с питанием в качестве опоры.

суть в том что алегро имеет фиксированный независимый от 5 вольт выход, а ардуино-проц имеет питающее в качестве опорного и делает расчет вольтажа исходя из предположения что питание 5.0
хотя нужно в крайний код заглянуть, арду ведь умеет и hardware voltage измерять и никто ему не запретит учитывать просадку опорного

DChernov
alexeykozin:

алегро имеет фиксированный независимый от 5 вольт выход

Тогда непонятно, что значит текст на 16 странице даташита о рациометрическом выходе.

ekf
alexeykozin:

суть в том что алегро имеет фиксированный независимый от 5 вольт выход, а ардуино-проц имеет питающее в качестве опорного и делает расчет вольтажа исходя из предположения что питание 5.0

Нет, не имеет.
При питании 5.00 вольт на выходе аллегро было 2.491 вольт.
При установке этого значения в офсет ток на экране ( при отсутствии тока в цепи мотора) был равен 1.8 ампера. При установке напряжения офсета 2.513 ток стал равен 0.0-0.15 ампера. Т.е. подбором этого значения необходимо выставить 0 на амперметре. Шаг по 5 милливольт. Мне не понятен цирк с математикой - шаг АЦП 5 (примерно) милливольт, а значение можно вводить с точностью 1 милливольт. Чего они там тогда считают?

djsatan

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

prg
alexeykozin:

суть в том что алегро имеет фиксированный независимый от 5 вольт выход, а ардуино-проц имеет питающее в качестве опорного и делает расчет вольтажа исходя из предположения что питание 5.0

Не уверен, что я правильно понял проблему. Разговор ведь не про абстрактный “ардуино-проц”, а про ardupilot/APM2? Там измеряется напряжение проца с помощью встроенного “эталона”. Не помню 1.1 или 2.56. А потом оно данные ADC делит на эту фигню.

TribeXFire
djsatan:

возможно ли подключить датчик температуры к АПМ и видеть эту температуру в МП,

Пока не нашел поддержки внешних, подключаемых датчиков температуры, народ предлагал такую функцию, в ответ получил только:
"we send a temperature from the barometer. it can be seen as raw_temp or press_temp in the mission planner’s flight data > status tab. "

Добрый_Ээх

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

AlbusLupus

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

по прочтении последних 20 страниц в голове так и не прояснилось(((

И еще радиолинк на какой частоте если у меня видео 1.3, РУ на 2.4?
(производитель разницу играет, есть какие-то советы)

Хочу приобщится но читать все это оч долго и много.

X3_Shim
AlbusLupus:

то какую ревизию платы стоит брать?

да они там все одинаковые почти.

AlbusLupus:

выносной компас лучше будет?

да

AlbusLupus:

еще радиолинк на какой частоте если у меня видео 1.3, РУ на 2.4?

В вашем случае на любой частоте. Но заглядывая в будущее, берите на 900

AlbusLupus:

Хочу приобщится но читать все это оч долго и много.

тяжело будет приобщаться.

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 вольт?