Автопилот Arduplane - открытое ПО
к чему такие извращения?
Попробуйте ЧИППРОГ и он понравится, программа очень наглядно, всё чего грузишь всё видно на экране, люблю профессиональный инструмент и пусть молодёжь приобщается к этим средствам а не к “шнуркам” из тини или ещё какой меги. Однако если дорого увы, но мне досталось бесплатно с ЛПТ портом, благо есть мать со старым интерфейсом. Я про него вспомнил когда занадобилось PIC16F88 прошить, решил дисплей с последовательным портом применить, купил эту хрень www.megachip.ru/item.php?item_id=3205025 а у неё прошивка с глюком, ну мне консультант посоветовал мастер кит NM9215, короче время потерял и деньги на мороженное не сэкономил. Не работает он на ПИКах. Потом на сайте Фитана смотрю адаптер для внутрисхемного на все случаи и для атмела и для пики. Ну с этого и надо было начинать, все проблемы решил. А раньше я на нём РФки шил, а оказалось его производитель до сих пор поддерживает.
Супер-пупер прошивка минимосд! Два переключаемых полетных скрина прям с пульта управления, домашняя высота и куча вкусностей, все легко настраиваеммо из конфигурилки.
Хорошая новость, однако опять описания нет что с чем применять - не ясность.
Попробуйте ЧИППРОГ и он понравится, программа очень наглядно, всё чего грузишь всё видно на экране, люблю профессиональный инструмент и пусть молодёжь приобщается к этим средствам а не к “шнуркам” из тини или ещё какой меги.
У ардуиновской оболочки можно пару галочек проколоть - и будет видна последовательность и компиляции, и загрузки.
Тут дело в другом. Сама идеология ардуино состоит в том, чтобы людей - непрофессионалов в области железячного программирования приобщить к микроконтроллерам. И проект ардупилота вырос из студенческих упражнений на тему САУ. А популярен он стал именно из-за того, что любой желающий со знанием примитивно-учебного С (а то и без оного) мог участвовать в разработке и допиливать прошивку под свои нужды. Ну а ардупилот-мега - это уже попытка выкатить коммерческий продукт, который бы работал из коробки, не для любителя поковыряться, а для конечного пользователя. И звоночно-свисточный планнер - не инструмент для настоящих самураев, но он так и задумывался 😃)
Как мне кажется, кесарю - кесарево, а слесарю - соответственно. Профессионалам от электроники ардуинообразные проекты для развития неинтересны - такие люди в состоянии и плату развести, и прошивку написать хоть на ассемблере, хоть в кодах. А вот у меня из знаний по железу - только прочитанное в институте, и почти никакой практики. Так я беру ардуину и имею желаемое без использования паяльника, что приятно и удобно 😃)
У ардуиновской оболочки можно пару галочек проколоть - и будет видна последовательность и компиляции, и загрузки.
Да там есть в настройках эти птицы ставил, однако для начинания это хорошо. Конечно система IDE интересна для начального уровня. Сейчас я пробуюсь на Атмеловской студии и ещё установил МРЛаб от Пика. Последний удивил, что компиляция сопровождается установкой фьюзов, что в Атмеге было неизменно. Насколько техника ушла в перёд, а сколько-то лет назад Спектрум паяли РФ прожигали. Я тут не критикую, сам бегинер в этом деле, просто интерес дальше повёл, а как без этого, есть интерес познать - есть интерес к жизни, есть активная позиция и т.д. Только молодёжи что-то мало, если б мне сейчас откатить до 14 лет я бы не нервюры пилил из фанеры, но Вы меня поняли, Вы же взрослый человек (Цитата от М. Горбачёва)
…просто интерес дальше повёл…
Дык сколько людей - столько интересов. Мне так алгоритмы ковырять интереснее, а уж ардуино там или позитронный мозг - глубоко пофиг, лишь бы функционал обеспечивало и в бюджет влезало. Надо гвозди забивать, есть молоток - пользуюсь. Потребуются шурупы - придется или шуруповертом обзаводиться, или удар тренировать 😃))
немного не хватает времени, и немного лень) поэтому прошу помочь с решением простого вопроса
на какие номера пинов можно вывести сигнал на серво?
и впринципе, для управления серво, достаточно конструкции как в примере?
#include <Servo>
…
myservo.write()
и питание на серво прямо с ардуины идет? не надо отдельно питание подводить? на 4 машинки?
Зависит от мощности серв. По хорошему, для мощных хорошо бы использовать свое собственное питание, а с ардуины взять только управляющий сигнал. Если интересует результат. Хотя для проверки работоспособности можно одну-другую НЕНАГРУЖЕННУЮ микросерву подключить к ардуине, кормящейся от комп по USB. При этом возможны чудеса вроде самостоятельной перезагрузки, зависона и т.п…
хорошо, спасибо)
а с пинами как быть? можете подсказать номера пинов на вывод?
Хорошая новость, однако опять описания нет что с чем применять - не ясность.
Ну вот установил версию 2.1, все опции работают, ток показывает, напряжение и проценты ёмкости. Отлично, ВСЁ ЧТО НУЖНО ЕСТЬ В ПОЛНОМ ОБЪЁМЕ!
а с пинами как быть? можете подсказать номера пинов на вывод?
А почитать ?
arduino.cc/en/Reference/Servo
arduino.cc/en/Main/ArduinoBoardUno : PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.
arduino.cc/en/Main/ArduinoBoardMega2560 : PWM: 2 to 13 and 44 to 46. Provide 8-bit PWM output with the analogWrite() function.
это для UNO/Mega
а какие номера пинов здесь?
…googlecode.com/…/FRAMES_PLANE.jpg
я писал код с подключением библиотеки серво, серво пробовал втыкать соответственно на все 8 изображенных на картинке пинов.
servo1.attach(1)…servo8.attach(8)
не работает. вот ищу причину - или не те пины, или не тот код, или не хватает мощности.
думаю проверить с помощью светодиода, если пойдет с нужного пина ШИМ, значит проблемма в серво.
буду благодарен за подсказки, т.к совсем не хватает времени=(
2 bababababa
вы хотите дописать прошивку ардупилота или написать полностью свой код?
если ардупилот переписываете то пины с колодки заняты управляющими объектами класса описанного в RC_Channel
как инициализировать эти каналы и устанавливать на них сигнал есть в примерах внутри папок библиотек
если пишете полностью свой код то весьма трудно о чем либо говорить не видя этого кода
для того чтобы понять к какой ноге чипа идет радио канал нужно открыть схему APM2 например выходной канал №6 колодки сервовыходов идет через резистор на порт PE5 это 7 нога чипа и соответствнно digital out 3 ардуино
это для UNO/Mega
а какие номера пинов здесь?
А почитать ? Не посмотреть картинки, а почитать ?
The APM2 schematics and board files are here.
Разобраться в схемах, что на какую ногу идет ?
Поковыряться в сырцах : Arduplane 2.65
Поставил батарейку на GPS время на фиксу уменьшилось. Плюс батарейки на 4 выход как по даташиту, резистор на 150 Ом удалён. Держалка батарейки приклеена к плате циакрином.
Супер-пупер прошивка минимосд! Два переключаемых полетных скрина прям с пульта управления, домашняя высота и куча вкусностей, все легко настраиваеммо из конфигурилки.
Все опции работают, только RSSI куда подключать в АРМ1? Какой аналоговый вход для этого предназначен?
Поставил батарейку на GPS время на фиксу уменьшилось. Плюс батарейки на 4 выход как по даташиту, резистор на 150 Ом удалён. Держалка батарейки приклеена к плате циакрином.
имеет смысл поставить вместо выпаянных 150 ом - диод, батарейка будет быстрее заряжаться. без онного она минут пять заряжается
имеет смысл поставить вместо выпаянных 150 ом - диод, батарейка будет быстрее заряжаться. без онного она минут пять заряжается
Я понял из даташита что это должна быть литивая батарейка, типа как в компьютере, но она не аккумулятор - одноразовая. Тоже самое ставят в RTC в часах реального времени. Я не прав?
в даташите не указывается тип батареи, лишь показан принцип куда подключать
я ставлю ионистор на 0,22фарады он не боится переразряда и дозаряжается без контроллера заряда.
пробовал оставлять на несколько часов - держит, на сколько максимально хватает - не засекал
Алексей, спасибо большое за подсказку с RC библиотеками, нашел нужные коды.
Но серво все равно не двигается.
Залил немножко измененный код из примера APM_RC
Purple Radio
#include <Arduino_Mega_ISR_Registry.h>
#include <APM_RC.h> // ArduPilot Mega RC LibraryArduino_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-серво оживает, совершает непонятные движения)) но за плату при таком подключении боязно))
“рейка” выходов в отличии от рейки входов с приемника не питается от юсб ни при каком раскладе, вы подключили какое нибудь внешнее питание на средний контакт?
нет канечн) меня же никто не предупреждал)))
а код то верный?
ну тоесть серво надо питать отдельно, ясно, спасибо огромное, надеюсь больше подводных камней не встречу))
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 это что-то значит привязку к пинам или где? Я дальше программу пока не смотрел, но помню что приёмник подключить можно, где-то в мануале было написано. Ну если не найду пина ничего, можно и так пользовать, достаточно информации от РССИ канала телеметрии.
Супер-пупер прошивка минимосд!
Обнаружилась такая ошибка : когда ёмкость аккумулятора подходит к нулю ОСД (версия 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;
Все опции работают, только RSSI куда подключать в АРМ1? Какой аналоговый вход для этого предназначен?
Я думаю, что в один из портов PF0-PF7 , там где аналоговые входы 0 и 1 заняты измерением напряжения и тока. Есть пример как подключается RSSI code.google.com/p/arducopter/issues/detail?id=417&… Но там что-то не получилось с портом 8, а потому пользует 7. Однако не думал, что программу нужно добавлять, искал готовое решение в 2.65, но там этого нет. Да всё это ерунда мне кажется эти децибеллы от РССИ по делу нельзя использовать, ну пропал сигнал, а дальше что делать, антенну повыше поднять или мощность добавить?