ArduCopter Mega: порт на обычную Arduino (тестим)

Musgravehill
LeonVS:

А новый алгоритм для баро кто нить вклячит в прошивку ? Для меня 50см было бы мега супер, сейчас плавает метра 2.

Я переделываю снова под целочисленную дробилку с масштабированием. Но базовый алгоритм высоты остается, now_pressure нужно задать как float в Ardupirate.pde или как int_32t, я еще ищу максимальный диапазон результата:


static long read_barometer(void)
{
 	float x, tmp_float;
	barometer.Read();
	//abs_pressure = (abs_pressure>>2) + (abs_pressure>>1) + (barometer.Press>>2);	 // 0.75  0.25
	now_pressure = 0.75*now_pressure + 0.25*barometer.Press;	 // 0.75  0.25

	tmp_float = (float)(now_pressure/ground_pressure); // ориганальный от БОШ
	tmp_float = pow((float)tmp_float, 0.190295);
	x = 4433000.0 * (1.0 - (float)tmp_float); // высоту относительно текущей земли!  abs_pressure \ ground_pressure
        return 	(x);
}
LeonVS

Ну как полностью отладится предлагаю сделать аля тест9 😃

iBat
Sir_Alex:

Для Black Vortex нужна специальная прошивка!

www.rcgroups.com/forums/showpost.php?p=19322208&po…

Conclusion: as blackvortex include allinone sensors and these are supported by megapirates firmware, this is the firmware you need to look for.

Кстати в терминале барометр оказывается работает, правда значения выдает от -120 см до +150. Где обещаные +/- 50см? 😃
Компас после калибровки оффсетов вроде-бы не уплывает, но направление на север почему-то неправильно показывает. Как ему сказать, что вот сейчас - север?

tusik
SovGVD:

главное что возвращается вообще

А где задается высота возврата? А то у меня летел метрах в четырех над землей

SovGVD

с дефолтными настройками он удерживает текущую высоту при возвращении

LeonVS

Затестил сегодня РТЛ 😃 Летит на базу сцук этакий, аж приятно 😃 Правда так как был ветерок, у него получился возврат угловатый, летел прямо пока не достиг базы по одной координате, с учетом ветра его снесло метров так на 30, потом уже пошел против ветра к базе уже по другой координате, учитывая что стоит удержание YAW выглядит забавно 😃 Надо будет затестить с отключением удержания YAW

tusik

Подскажите, не помню. Как подключить светодиодную ленту, чтобы при просадке батареи начинала моргать.

Virgiux

Пробую скомпилить 2.0.38 но выкидывает ошибку:MegaPirate:66: error: ‘void report_imu()’ used but never defined. С В8 никаких проблем.Купил Black Vortex так для него рекомендуют 2.0.38 прошивку

tusik

Сегодня попробовал вертикальный спуск с высоты. Поднял коптер метров на 100 вертикально вверх, и почти отключил газ. Коптер стал падать вниз, но горизонтально, без крена. Ощущение что летел на авторотации. Метрах в 20 от земли добавил газу, поймал коптер и “мягко” посадил. При снижении колбасни не заметил.

YAN=
tusik:

Подскажите, не помню. Как подключить светодиодную ленту, чтобы при просадке батареи начинала моргать.

Там слишком много ковырять надо.

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

Спросите Алекса-Исраэль. У него, вроде, какие-то решения есть.

Musgravehill
tusik:

Коптер стал падать вниз, но горизонтально, без крена. Ощущение что летел на авторотации.

Я тоже так пробовал, но с меньшей высоты. Удивился, что квадрик не кувыркнулся. Но потом понял - масса сосредоточена внизу, а парусящие винты - вверху. Это и стабилизирует машину при падении. До авторотации не доводил, только холостой ход.

Alex_from_Israel
Musgravehill:

Я тоже так пробовал, но с меньшей высоты. Удивился, что квадрик не кувыркнулся. Но потом понял - масса сосредоточена внизу, а парусящие винты - вверху. Это и стабилизирует машину при падении. До авторотации не доводил, только холостой ход.

До авторотации и не доведете. На вертолете есть подшипник специальный, ван вэй биринг. Расцепляется передача с мотора на ротор. И лопасти намного тяжелее. Если вырубить питание на моторы, так просто остановятся пропеллеры, и все. Кстати и вертолеты на авторотации нормально летают 50 класса. Не меньше. На 450 классе авторотация убогое зрелище.

YAN=:

Там слишком много ковырять надо.

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

Спросите Алекса-Исраэль. У него, вроде, какие-то решения есть.

Ничего сложного, если есть система измерения напряжения. Запрограммировать Олегов секвенсер еще проще. Но придется копаться в коде. У меня при просадке до 9.5 вольт никакой реакции на экране Планнера, кроме цифр напряжения. По идее должен писать большими буквами о критической просадке батареи. Там в sensors.pde в конце код контроля батареи. Я его малость подправил под свой датчик. Напряжение более менее правильно показывает, но программа обработки критического разряда не вызывается. Где она в коде х.з. Пока не до нее.

tusik
Alex_from_Israel:

До авторотации и не доведете

Так и не доводил. Самый мелкий газ, когда винты крутятся.

Alex_from_Israel:

Я его малость подправил под свой датчик.

У меня датчика нет. А средствами ардуины можно натряжение мерять? И, хотя бы приблизительно, что и где в коде править. Я только учусь 😃

Sir_Alex:

Отчед: Начал портировать 2.0.43

Как успехи?

HATUUL:

Знакомтесь ER9x-ARDUPILOT

Как эта прошивка? Заказал дешевую Турнигу. Кто-нибудь пробовал? Есть смысл перешивать?

iBat
tusik:

Как эта прошивка? Заказал дешевую Турнигу. Кто-нибудь пробовал? Есть смысл перешивать?

Я пока не понял чем версия ARDUPILOT отличается от простой ER9x. И еще - не нашел упоминаний о том, что на экране передатчика можно видеть какие-то параметры коптера. Да и не понятно каким образом это организовать.

Musgravehill
tusik:

У меня датчика нет. А средствами ардуины можно натряжение мерять? И, хотя бы приблизительно, что и где в коде править. Я только учусь

Самый простой вариант без копания в коде: через резистивный делитель подаем напряжение с аккумулятора на аналоговый вход Ардуины 0…5В! Советую начать с “резистор + высокоомный переменник” и постепенно повышать напряжение, чтобы не спалить порт. Потом измерите их суммарное сопротивление. Считываем попугаев analog_read(A*), калибруем. При понижении попугаев до *** запускаем “мигание” на цифровом выходе, который управляет светодиодной лентой через транзисторный ключик. Секвенсор мне без надобности.

А по делу - смотрите sensors.pde и Arducopter.pde в тех местах, где попадается battery. Алекс Шалдыбин писал об этом уже страниц 20 назад…сегодня как раз искал среди “все сообщения Алекса”. И ссылку на арду_вики давал.

tusik:

Как эта прошивка? Заказал дешевую Турнигу. Кто-нибудь пробовал? Есть смысл перешивать?

Я использую непрошитую с ФР_скай. Доволен. Не вижу смысла в лишних телодвижениях. “Работает - не трогай!”

iBat:

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

Если не ошибаюсь, выводится телеметрия с RX FRsky, проводки надо заводить на ATmega внутри аппы. Я сделал иначе: в небольшую коробочку поместил простую ардуинку и мониторчик, подсоединил к передатчику FRsky. Коробочка крепится сверху аппы, но пользуюсь редко. Просто руки чесались.

Sir_Alex
tusik:

Как успехи?

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

Musgravehill
Sir_Alex:

удалось победить гиры с акселями

можно поподробнее??

tusik
iBat:

не понятно каким образом это организовать

Через ХВее

Sir_Alex
Musgravehill:

можно поподробнее??

Ну если в кратце, то пришлось изучить что выдают гиры и аксель и как их результат передать в AP_IMU а оттуда в DCM. Раньше их результат умножался и делился на коэффициенты, полученные методом тыка, что бы привести к виду, которые выдает ардукоптеровский OilPan. Теперь, результат работы переводится напрямую в рад/с(гира) и дальше в DCM.
А вообще, они много переделали, не могу пока сказать в какую сторону.

mahowik
Musgravehill:

Самый простой вариант без копания в коде: через резистивный делитель подаем напряжение с аккумулятора на аналоговый вход Ардуины 0…5В! Советую начать с “резистор + высокоомный переменник” и постепенно повышать напряжение, чтобы не спалить порт. Потом измерите их суммарное сопротивление. Считываем попугаев analog_read(A*), калибруем. При понижении попугаев до *** запускаем “мигание” на цифровом выходе, который управляет светодиодной лентой через транзисторный ключик.

Eto uje est v MultiWii. Deliteli 33k i 51k.
51k na “+”, 33k na “-”… t.e. 33/(33+51) * 12.6v ~= 5v


/* for V BAT monitoring
   after the resistor divisor we should get [0V;5V]->[0;1023] on analog V_BATPIN
   with R1=33k and R2=51k
   vbat = [0;1023]*16/VBATSCALE */
#define VBAT              // comment this line to suppress the vbat code
#define VBATSCALE     131 // change this value if readed Battery voltage is different than real voltage
#define VBATLEVEL1_3S 107 // 10,7V
#define VBATLEVEL2_3S 103 // 10,3V
#define VBATLEVEL3_3S 99  // 9.9V
#define NO_VBAT       16 // Avoid beeping without any battery

Proboval ranshe… rabotaet, pravda chto mne tam ne nravilos tak eto razlichnie chastoti morganiya dlya kajdogo VBATLEVEL[N]_3S…

alexTAG

Подскажите пожалуста, что я сделал не так? Коптер Y6 - все подсоединено согласно рисунка. При взлете идет юлой, как будто верт без стабилизатора!