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

egunak95
alexeykozin:

к чему такие извращения?

Попробуйте ЧИППРОГ и он понравится, программа очень наглядно, всё чего грузишь всё видно на экране, люблю профессиональный инструмент и пусть молодёжь приобщается к этим средствам а не к “шнуркам” из тини или ещё какой меги. Однако если дорого увы, но мне досталось бесплатно с ЛПТ портом, благо есть мать со старым интерфейсом. Я про него вспомнил когда занадобилось PIC16F88 прошить, решил дисплей с последовательным портом применить, купил эту хрень www.megachip.ru/item.php?item_id=3205025 а у неё прошивка с глюком, ну мне консультант посоветовал мастер кит NM9215, короче время потерял и деньги на мороженное не сэкономил. Не работает он на ПИКах. Потом на сайте Фитана смотрю адаптер для внутрисхемного на все случаи и для атмела и для пики. Ну с этого и надо было начинать, все проблемы решил. А раньше я на нём РФки шил, а оказалось его производитель до сих пор поддерживает.

romkat:

Супер-пупер прошивка минимосд! Два переключаемых полетных скрина прям с пульта управления, домашняя высота и куча вкусностей, все легко настраиваеммо из конфигурилки.

Хорошая новость, однако опять описания нет что с чем применять - не ясность.

RedSun
egunak95:

Попробуйте ЧИППРОГ и он понравится, программа очень наглядно, всё чего грузишь всё видно на экране, люблю профессиональный инструмент и пусть молодёжь приобщается к этим средствам а не к “шнуркам” из тини или ещё какой меги.

У ардуиновской оболочки можно пару галочек проколоть - и будет видна последовательность и компиляции, и загрузки.
Тут дело в другом. Сама идеология ардуино состоит в том, чтобы людей - непрофессионалов в области железячного программирования приобщить к микроконтроллерам. И проект ардупилота вырос из студенческих упражнений на тему САУ. А популярен он стал именно из-за того, что любой желающий со знанием примитивно-учебного С (а то и без оного) мог участвовать в разработке и допиливать прошивку под свои нужды. Ну а ардупилот-мега - это уже попытка выкатить коммерческий продукт, который бы работал из коробки, не для любителя поковыряться, а для конечного пользователя. И звоночно-свисточный планнер - не инструмент для настоящих самураев, но он так и задумывался 😃)
Как мне кажется, кесарю - кесарево, а слесарю - соответственно. Профессионалам от электроники ардуинообразные проекты для развития неинтересны - такие люди в состоянии и плату развести, и прошивку написать хоть на ассемблере, хоть в кодах. А вот у меня из знаний по железу - только прочитанное в институте, и почти никакой практики. Так я беру ардуину и имею желаемое без использования паяльника, что приятно и удобно 😃)

egunak95
RedSun:

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

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

RedSun
egunak95:

…просто интерес дальше повёл…

Дык сколько людей - столько интересов. Мне так алгоритмы ковырять интереснее, а уж ардуино там или позитронный мозг - глубоко пофиг, лишь бы функционал обеспечивало и в бюджет влезало. Надо гвозди забивать, есть молоток - пользуюсь. Потребуются шурупы - придется или шуруповертом обзаводиться, или удар тренировать 😃))

bababababa

немного не хватает времени, и немного лень) поэтому прошу помочь с решением простого вопроса

на какие номера пинов можно вывести сигнал на серво?
и впринципе, для управления серво, достаточно конструкции как в примере?
#include <Servo>

myservo.write()

и питание на серво прямо с ардуины идет? не надо отдельно питание подводить? на 4 машинки?

RedSun

Зависит от мощности серв. По хорошему, для мощных хорошо бы использовать свое собственное питание, а с ардуины взять только управляющий сигнал. Если интересует результат. Хотя для проверки работоспособности можно одну-другую НЕНАГРУЖЕННУЮ микросерву подключить к ардуине, кормящейся от комп по USB. При этом возможны чудеса вроде самостоятельной перезагрузки, зависона и т.п…

bababababa

хорошо, спасибо)

а с пинами как быть? можете подсказать номера пинов на вывод?

egunak95
egunak95:

Хорошая новость, однако опять описания нет что с чем применять - не ясность.

Ну вот установил версию 2.1, все опции работают, ток показывает, напряжение и проценты ёмкости. Отлично, ВСЁ ЧТО НУЖНО ЕСТЬ В ПОЛНОМ ОБЪЁМЕ!

bababababa

это для UNO/Mega
а какие номера пинов здесь?
…googlecode.com/…/FRAMES_PLANE.jpg

я писал код с подключением библиотеки серво, серво пробовал втыкать соответственно на все 8 изображенных на картинке пинов.
servo1.attach(1)…servo8.attach(8)

не работает. вот ищу причину - или не те пины, или не тот код, или не хватает мощности.
думаю проверить с помощью светодиода, если пойдет с нужного пина ШИМ, значит проблемма в серво.

буду благодарен за подсказки, т.к совсем не хватает времени=(

alexeykozin

2 bababababa
вы хотите дописать прошивку ардупилота или написать полностью свой код?
если ардупилот переписываете то пины с колодки заняты управляющими объектами класса описанного в RC_Channel
как инициализировать эти каналы и устанавливать на них сигнал есть в примерах внутри папок библиотек

если пишете полностью свой код то весьма трудно о чем либо говорить не видя этого кода

для того чтобы понять к какой ноге чипа идет радио канал нужно открыть схему APM2 например выходной канал №6 колодки сервовыходов идет через резистор на порт PE5 это 7 нога чипа и соответствнно digital out 3 ардуино

RedSun
bababababa:

это для UNO/Mega
а какие номера пинов здесь?

А почитать ? Не посмотреть картинки, а почитать ?
The APM2 schematics and board files are here.
Разобраться в схемах, что на какую ногу идет ?
Поковыряться в сырцах : Arduplane 2.65

egunak95


Поставил батарейку на GPS время на фиксу уменьшилось. Плюс батарейки на 4 выход как по даташиту, резистор на 150 Ом удалён. Держалка батарейки приклеена к плате циакрином.

romkat:

Супер-пупер прошивка минимосд! Два переключаемых полетных скрина прям с пульта управления, домашняя высота и куча вкусностей, все легко настраиваеммо из конфигурилки.

Все опции работают, только RSSI куда подключать в АРМ1? Какой аналоговый вход для этого предназначен?

alexeykozin
egunak95:

Поставил батарейку на GPS время на фиксу уменьшилось. Плюс батарейки на 4 выход как по даташиту, резистор на 150 Ом удалён. Держалка батарейки приклеена к плате циакрином.

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

egunak95
alexeykozin:

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

Я понял из даташита что это должна быть литивая батарейка, типа как в компьютере, но она не аккумулятор - одноразовая. Тоже самое ставят в RTC в часах реального времени. Я не прав?

alexeykozin

в даташите не указывается тип батареи, лишь показан принцип куда подключать
я ставлю ионистор на 0,22фарады он не боится переразряда и дозаряжается без контроллера заряда.
пробовал оставлять на несколько часов - держит, на сколько максимально хватает - не засекал

bababababa

Алексей, спасибо большое за подсказку с RC библиотеками, нашел нужные коды.

Но серво все равно не двигается.
Залил немножко измененный код из примера APM_RC
Purple Radio

#include <Arduino_Mega_ISR_Registry.h>
#include <APM_RC.h> // ArduPilot Mega RC Library

Arduino_Mega_ISR_Registry isr_registry;
APM_RC_APM2 APM_RC;

void setup()
{
isr_registry.init();
APM_RC.Init(&isr_registry);

APM_RC.enable_out(CH_1);
APM_RC.enable_out(CH_2);
APM_RC.enable_out(CH_3);
APM_RC.enable_out(CH_4);
APM_RC.enable_out(CH_5);
APM_RC.enable_out(CH_6);
APM_RC.enable_out(CH_7);
APM_RC.enable_out(CH_8);

Serial.begin(115200);
Serial.println(“ArduPilot Mega RC library test”);
delay(1000);
}

void loop()
{

Serial.print(“CH:”);
for(int i = 0; i < 8; i++){

Serial.print(APM_RC.InputCh(i));
APM_RC.OutputCh(i, APM_RC.InputCh(i));
}
}

С инпут идет 1200 - пульт не подключен.
Серво втыкал во все 8 outputs. Все безрезультатно.
Если воткнуть в inputs-серво оживает, совершает непонятные движения)) но за плату при таком подключении боязно))

alexeykozin

“рейка” выходов в отличии от рейки входов с приемника не питается от юсб ни при каком раскладе, вы подключили какое нибудь внешнее питание на средний контакт?

bababababa

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

egunak95
egunak95:

RSSI куда подключать в АРМ1?

На форуме люди пишут: I think it just gets the RSSI via mavlink which is not really RSSI but reports the quality of the signal by measuring packet loss. I have the same set up and just installed MinimOSD. I’m also wondering how to set the min max values to work with ezUHF. At the default 0-255 it doesn’t seem to work using those values. diydrones.com/…/how-to-setup-rssi-with-ezuhf-and-a… Это значит, что РССИ берётся расчётным путём из потока передач МАВлинка. Однако в программе resiver_rssi_pin !=-1 это что-то значит привязку к пинам или где? Я дальше программу пока не смотрел, но помню что приёмник подключить можно, где-то в мануале было написано. Ну если не найду пина ничего, можно и так пользовать, достаточно информации от РССИ канала телеметрии.

egunak95
romkat:

Супер-пупер прошивка минимосд!

Обнаружилась такая ошибка : когда ёмкость аккумулятора подходит к нулю ОСД (версия 2.1) продолжает показывать, но уже отрицательные проценты. В планировщике такого нет , т.е. скончался акку стоит ноль. Пришлось добавить в Мавлинк
if (current_total1 != 0 && g.pack_capacity != 0) {
battery_remaining = (100.0 * (g.pack_capacity - current_total1) / g.pack_capacity);
if(battery_remaining < 0)
battery_remaining = 0;

egunak95:

Все опции работают, только RSSI куда подключать в АРМ1? Какой аналоговый вход для этого предназначен?

Я думаю, что в один из портов PF0-PF7 , там где аналоговые входы 0 и 1 заняты измерением напряжения и тока. Есть пример как подключается RSSI code.google.com/p/arducopter/issues/detail?id=417&… Но там что-то не получилось с портом 8, а потому пользует 7. Однако не думал, что программу нужно добавлять, искал готовое решение в 2.65, но там этого нет. Да всё это ерунда мне кажется эти децибеллы от РССИ по делу нельзя использовать, ну пропал сигнал, а дальше что делать, антенну повыше поднять или мощность добавить?