Проект Мегапират на самик!

LeonVS
Syberian:

Номер канала (число, а не СН_х) - Мх

Олег, а почему тогда по “СН_х” данные в планер идут верно? Может там две переменных, одна для вывода данных, другая для вывода на серву? Или это все же “кривость” портирования?

ukkr:

метод принимает в качестве второго параметра не градусы( или градус*10, как в случае с

Спасиб, но я все равно переделал сей код под конкретные циферы в обоих положениях, мне так удобней 😃

Syberian:

Так и не вкурил, кому и зачем понадобилась дрыгалка?

Дрыгалка понадобилась мне, будет управлять затвором фотика 😃

ukkr:

Леониду. Вторая “продвинутая” Саше.

Чую вторая продвинутая при скорости ская в 60км в час будет крайне бесполезна 😃 Эт если только на забор соседской дачи прилепить 😉))
Если для обзора камеры то лучше попытаться разобраться с камера маунтом (смотреть на заданную координату фишка зачетная должна быть) Там до кучи и стабилизация камеры есть 😃

Syberian
LeonVS:

а почему тогда по “СН_х” данные в планер идут верно?

Ща растолкую.
Есть набор объектов класса RC_CHANNEL: ch_throttle, ch_roll, ch_pitch, ch_5 и т.д. - это не просто переменные. С ними можно выполнять действия, определенные классом и читать их некоторые параметры. К примеру, ch_1.ServoOut возвращает значение от -512 до 512, а ch_1.pwm_out - то же, но приведенное к ППМ-каналу: от 900 до 2000.
ch_1.rc_in возвращает то, что на него поступило с приемника. Также в объекте производится субтриммирование, ограничение диапазонов и проч вызовом функции ch_1.CalcPWM();

После всего вызывается другой объект apm_rc.outputch(CH_1.ch_1.pwm_out), что собственно и переписывает положение канала в генератор сервоимпульсов.
Независимо от этого вызывается процедура протокола mavlink, которая передает ch_1.servo_out по телеметрии.

На пальцах: данные в планер и то, что мы “вручную” пишем на сервовыходы платы, никак не связаны между собой.
К тому же, именно серво-выходы (не путать с каналами приемника) с 5-го по 8-й в планер вообще не поступают.

Заметь, CH_x (большими буквами) - это просто символьный дефайн числа (х-1) для удобства, чтобы каналы не с нуля считались, а ch_x (маленькими буквами) - это уже объект.

alex-ber
LeonVS:

Чую вторая продвинутая при скорости ская в 60км в час будет крайне бесполезна Эт если только на забор соседской дачи прилепить ))

про вторую дрыгалку я просил пока не знал о маунте! конечно если разобраться с ним то эта дрыгалка будет уже не нужна… но всеравно спасибо - значит в принципе на свободный канал можно любую программу отработки сервы написать (если умеешь…).
Ладно - пока на работе можно теорию разводить… вечером приду домой и займусь железом - вот тогда более предметно поговорим!

LeonVS

Просто перевод маунт в енейбл результата не дал…

ukkr
LeonVS:

Просто перевод маунт в енейбл результата не дал…

Лёнь, проверь, есть ли питание на пан и тилте, у мну вроде как не было, как и на Мх

ukkr

Так-с. Маленький аддон от меня. Первое – при включённом маунте BlackV таки управляет тилтом и паном. Проверил это тем, что сервы включенные в эти два канала стали в 0 при включённом маунте, а когда был дизейблд – оставались у меня в тех положениях, в которых и подключал. Как в АРМ Планнере настроить управление камерой так и не нашёл пока, это унылое говно меня всё больше огорчает.
Теперь о плохом. У меня действительно перезагружается BlackV, когда подключён к компу. Прошивка 26я. Подключён он через ЮСБи-шнурок, скорость 115200. Перезагружается по своему собственному усмотрению, причём, чем быстрее я кручу плату Вортекса, тем чаще оно перезагружается. Факт перезагрузки определяю тем, что в АРМ Планнере режим переключается с Мануального\Авто на Initial-ing, а все сервы становятся в 0. Поменял Fast Serial на зафикшенную версию от АрдуПлейн 2.28, стало перезагружаться значительно реже, но 3 раза за полчаса перезагрузилось таки 😦. Собственно, это печально… Если Леонид летает с таким – ему надо 100 гр за храбрость налить. Мне пепелаца жалко было бы.
Какие будут рекомендации? Поставить меньше скорость соединения у COMа?

Syberian
ukkr:

Какие будут рекомендации?

размер буфферов покрутить в serial%.begin

ukkr
LeonVS:

А есть мысли что может вызвать дрожание М5 и М6?

Лёнь, у меня дрожания нету, по крайней мере игрался с
APM_RC.OutputCh(CH_7, xxx_pos); // send to Servos
APM_RC.OutputCh(CH_8, xxx_pos); // send to Servos

xxx_pos=xxx_pos+xxx_addon;
if(xxx_pos>2000){
xxx_pos = 2000;
xxx_addon=-xxx_addon;
}
if(xxx_pos<1000){
xxx_pos = 1000;
xxx_addon=-xxx_addon;
}

Это при изначальном xxx_pos = 1500;
и xxx_addon=100;

Вставлен код в тот же односекундный луп.

Так, у меня по ходу полный П на аппаратном уровне приключился. В какой-то момент, когда работал с АРМ Планнером при подключённом по ЮСБи Блек Вортексе 7я винда выдала радостное сообщение, что подключённое устройство не опознано. Соответственно компорт не подключён. И с тех пор, переподключаю БлекВортекс – винде пофиг, не хочет она видеть это устройство. Что за бред мог приключиться на голом месте?

Блин, такое впечатление, что БлекВортекс уходит на перезагрузку постоянно, потому-что в винде Устройство USB не опознано всплывает с калейдоскопической частотой

Да, краткий миниаддон – на прошивке той, что зашита поставил 256 байт на буффера serial.begin

ukkr

Так-с, что-то не могу найти, как бутлоудеру вортекса сказать, чтоб он не грузил основную прошивку… 8( Неужели прийдёться через ISP перешивать бутлоадер, в надежде, что при перепрошивке затрётся МегаПират???

Блин, Вортекс жжёт

vortex.name=Black Vortex (ATmega2560)

vortex.upload.protocol=stk500
vortex.upload.maximum_size=258048
vortex.upload.speed=57600

vortex.bootloader.low_fuses=0xFF
vortex.bootloader.high_fuses=0xDA
vortex.bootloader.extended_fuses=0xF5
vortex.bootloader.path=atmega
vortex.bootloader.file=ATmegaBOOT_168_atmega1280.hex
vortex.bootloader.unlock_bits=0x3F
vortex.bootloader.lock_bits=0x0F

vortex.build.mcu=atmega2560
vortex.build.f_cpu=16000000L
vortex.build.core=arduino

Вместе с этим, в том же топике приаттаченный BOOT_mega2560.zip, внутри которого… BOOT_mega2560.hex И какой же мне бутлоадер всё ж использовать??? 😈

Но это ещё не всё. Из boards.txt:
vortex.bootloader.high_fuses=0xDA
vortex.bootloader.extended_fuses=0xF5

Вместе с тем, isojed.nl/blog/…/Black-Vortex-Board-v0.06.pdf

Имеет совсем другие фузы:
vortex.bootloader.high_fuses=0xD8
vortex.bootloader.extended_fuses=0xFD

И чё теперь творить? Какие фузы использовать?

ukkr

Дьявол, не могу перепрошить бутлоадер через ISP, девайс успевает перегрузиться, либо во время верификации чипа, либо позже… 😈

Мы меня теряем…

dundel1
ukkr:

подключённое устройство не опознано

Константин, попробуйте снести дрова меговские в винде, и переустановить. Причём, именно через снос дров, а не просто переустановить. У меня 2 раза такой фокус уже был, винда7, 64бит. Помогало именно так, снёс, подключил, установил. Извините, если посоветовал очевидную вещь😊

ukkr
dundel1:

Константин, попробуйте снести дрова меговские в винде, и переустановить. Причём, именно через снос дров, а не просто переустановить. У меня 2 раза такой фокус уже был, винда7, 64бит. Помогало именно так, снёс, подключил, установил. Извините, если посоветовал очевидную вещь

У меня тоже винда 7 64битная. А что за меговские дрова? Я снёс FTDIйные дрова, но до одного места. Прикол в том, что девайс просто берёт и перезагружается, судя по всему…

dundel1

Ну да, это они и есть:). Это я их так обозвал, потому что после опознавания пишет “Ардуино мега” в устройствах:)

LeonVS
ukkr:

У меня действительно перезагружается BlackV

Нда… Унылое гумно какое то… Слушай давай чтоб полностью уровнять наши прошивки, пропиши в АПМ_конфиг 115200 (скорость порта телеметрии)
#define SERIAL3_BAUD 115200
У меня не виснет с такой скоростью даже если модуль сам отключен.
Только с полетов вернулся, сегодня ветерок ощутимый где то 25-30 км в час, в одну сторону летим под 85-90, обратно лезем на скорости 30-35 😃
Преодолели порог в 5 км автономного полета 😃 Ток на круизе где то в районе 10А, сожрало на сие дело 1500мАч 😃 Тобишь запас хода на 5АЧ где то под 15км… Не густо, но и не плохо в то же время 😃

ukkr:

при включённом маунте BlackV таки управляет тилтом и паном.

При качении платы сервы должны шевелиться (стабилизировать камеру) у меня этого нет… Где то надо еще крутить…
К стати что за новый оптический датчик у дронсов появился? Что меряет???

ukkr

Лёнь, у меня сейчас тут полное веселье, кажишь мой БлекВортекс пал смертью храбрых…

Ищу вот хороший похоронный марш, чтоб хоронить его…

LeonVS:

У меня не виснет с такой скоростью даже если модуль сам отключен.

И у меня не виснит, у меня перезагружается.

LeonVS
ukkr:

И у меня не виснит, у меня перезагружается.

Это и имел ввиду 😃
Чем ты его бедолагу так замучал что он у тебя издох 😃? Может свеженькую прошивку залить чистую не изнасилованную 😃?

ukkr

Да я б с удовольствием Вортекс залил. Но он при старте перезагружается. Посему в винде он не успевает подмаутится к COM-порту.Вот и веселуха. Даже бутлоадер прошить не могу с очисткой флеши заново, чтоб его в порядок привести.

Самое обидное, что всё, что менял в последнем коде-- Serial.begin(SERIAL0_BAUD, 2560, 2560); влепил, хотя хотел написать Serial.begin(SERIAL0_BAUD, 256, 256); Откуда там 0 взялся – палец, блин дрогнул или отвлёк кто-то. И самое фиговое, что работало всё “чётко”, АРМ Планнер подконнектился, всё было классно. А потом перезагруз за перезагрузом. 😦 Финита.

ukkr

Блин, такое впечатление, что я уже убил ISPшным программированием Вортекс в конец. Уже не совпадает ЧипСингатура. 😦

Syberian
ukkr:

Мы меня теряем…

если через ISP тоже не прошиться, значит, питание платы пропадает.

LeonVS

Ну что господа, то о чем так долго говорили большевики свершилось! 😃 Вортекс сцуко завис…
Вводные: Ветер 40-50км в час у земли, но все же решились затестить в эксримальных условиях 😃 Запуск по вчерашнему маршруту, на первом заходе уже израсходовано 3000мАч, решаю вернуть, в ручную ввожу номер точки для захода на посадку (до этого без проблем все отрабатывало) сразу же связь с вортексом рвется у еОСД, и походу врубается режим CIRCLE, начинает кружить с выключенным движком… Еще раз не пожалел что стоит альтернативная ГПС, иначе бы искали чую доооолго 😃
Вечером если кому интересно скину видео аварийной посадки 😃

ukkr

Яххххххуууууууууууууууууууууууууууууууууу!!!
Я снова в строю!!!
Ночная борьба за жизнь пациента, 3х разовое применение дефибриллятора( программатора ISP), танцы с бубном над кровеносной системой( системой питания), вскрытие под микроскопом увенчались успехом – пациент ожил. Я весь сонный сейчас, бо всю ночь бился за Вортекс, но некоторые выясненные нюансы раскрою.

  1. Не запитуйте Вортекс от 3х банок лития!!! Хоть там и написано 6-18В на вход, от 3х банок лития за каких-то 30-40 минут непрерывной работы плата( или DC-DC) перегревается и Вортекс то отказывается загружаться вообще, то перезагружается. Используйте максимум 2е банки. С ними он работает стабильно на протяжении минимум 1.5 часов( больше тестить сил нету).

  2. Проверяйте свои проводочки, мама-мама и т.д. Я еб…ся с программатором ISP, он всё никак не мог запрограммировать Вортексу бутлоадер – постоянная Signature Verification Failure , каждый раз оно считывало разную сигнатуру Вортекса. Или ошибки чтения фюзов. Трабл оказался в том, что на моём проводочке мама-мама, который я одел на штырёк земли в ISP входе Вортекса+ штырёк земли в программаторе провод отломился от разъёма. А снаружи хрен увидешь, термоусадка надёжно удерживала и разъём и провод вместе. И второй такой же проводок, который я на MOSI надел был надорванным, то контачил, то нет. Только через 3 часа мазохизма до меня дошло проверить эти провода. После замены – бутлоадер залился за минуту.
    Ну а дальше уже дело техники.

  3. Замена

Serial.begin(SERIAL0_BAUD, 128, 128); 

на

Serial.begin(SERIAL0_BAUD, 144, 144); 

приводит к постоянным перезагрузкам при подключённом АРМ Планнере. Возврат на 128 буф-ра уменьшает частоту перезагрузок до 1 раз в 10-15 минут. Пока нет сил разбираться с причиной.

Вот такие вот дела.