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

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, но там этого нет. Да всё это ерунда мне кажется эти децибеллы от РССИ по делу нельзя использовать, ну пропал сигнал, а дальше что делать, антенну повыше поднять или мощность добавить?

vtoryh
romkat:

code.google.com/p/minimosd-extra/

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

Залил прошивку, потом чарсеты.
Теперь вместо графики иероглифы… попробовал еще раз то же самое.
Попытался вернуться на стандартную, в графике теже иероглифы. 😦
Шо может быть и как решить?

egunak95
vtoryh:

Попытался вернуться на стандартную, в графике теже иероглифы

Я же говорил, что ЧИППРОГ очень полезный программатор! Обычно в таких случаях я этим программатором стираю всё и перезаписывая взад вместе с бутлуадёром. Не зря там в опциях есть проверка флеш и ЕЕПРОМа на стёртость перед загрузкой новых кодов. Иногда повторяю несколько раз если не проходит на стёртость, что там за поцессы с этой памятью не знаю, однако если такая опция существует значит это нужно делать. Поэтому совет стереть и перезаписать. Можно также применить AVRISP mkII и через АВР студию перезаписать хекс, там предусмотрено стирание перед записью. Где-то писали что когда микросхему часто перезаписывают возникают глюкоподобные неожиданности.

romkat

Никаких проблем обсалютно с этой прошивкой, летаю через день, могу предположить криво встал чарсет, но это должно вылечится, залей стоковый mcm через _стандартную_ конфигурилку, потом перепрошей.

vtoryh:

Залил прошивку, потом чарсеты.
Теперь вместо графики иероглифы… попробовал еще раз то же самое.
Попытался вернуться на стандартную, в графике теже иероглифы. 😦
Шо может быть и как решить?

vtoryh
romkat:

Никаких проблем обсалютно с этой прошивкой, летаю через день, могу предположить криво встал чарсет, но это должно вылечится, залей стоковый mcm через _стандартную_ конфигурилку, потом перепрошей.

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

vtoryh

Спасибо Алексею Козину. Проблему с минимосд решил.
Оказывается надо и цифровую часть питать и аналоговую.
А я платку снимал, ложил на стол и подключал FTDI. 😃
Естественно видеочип оставался без питания и не принимал в себя чарсеты.
Стандартная нормально пашет. Пробовал екстру прошивать, чистый экран.
То есть вначале пишет что типа миним осд экстра бла-бла-бла и потом чистый экран с камеры.
В итоге пока обратно оригинальную вернул прошивку.

egunak95
vtoryh:

Естественно видеочип оставался без питания и не принимал в себя чарсеты

А я их сразу “срастил” по питанию чего и Вам советую.

vtoryh
egunak95:

А я их сразу “срастил” по питанию чего и Вам советую.

Ну я не знал про такую фишку… А читать инструкции не привык. 😃

romkat
vtoryh:

Ну я не знал про такую фишку… А читать инструкции не привык. 😃

)) читайте Володь доки, они рулез!) ты когда “экстру” залил, конфигурилкой экраны хоть прошил? Вполне возможно у тебя второй эран пустой после перепрошивки и на восьмом канале переключалка режимов (так по умолчанию в прошивке), так?)