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

alex-ber
LeonVS:

Алекс, ты эти строчки закоментил?

Ух… Ну вы все и строчить стали - прямо Чат!!!
Не успел написать а тут уже все обсудили…
Леонид - естественно : НЕТ! Я тогда про эти траблы с микриками даже не догадывался! Спасибо - завтра попробую закоментить и залить 26-ю…

Syberian
LeonVS:

Полагаю зависон вызывался не закоментированными строчками считывающими в ардупилоте микрики

я замечал конкретный сброс платы, т.е. в планировщике писало initialising

ukkr:

Позволю себе повторить вопрос

позволю себе не ответить, т.к. не моих рук дело 😃 На мой взгляд, верхняя половина до init бесполезна.

alex-ber
Syberian:

я замечал конкретный сброс платы, т.е. в планировщике писало initialising

Привет Олег!!!
Да, если память мне не изменила - было тоже самое: Вортекс просто уходил в перезагруз…
Тогда мы решили, что переполнялся буфер обмена (у нас с Олегом АРС 220 с низкой скоростью обмена, у Леонида даталинк от Александра с максимальной скоростью…).

ukkr
alex-ber:

Поясню - камера при переключении тумблера начинает сканирование = поворот вправо до упора, задержка (было бы очень класно, чтоб задержку можно было выставить или в Планере или (что еще круче !) доп каналом с крутелкой…), поворот в центр, поворот влево и т.д.?
у тебя на видео впринципе так и есть - поворот -пауза-поворот… но на другом канале хотелось бы и с паузой в крайних точках…

Дык, она паузу и делает после поворота в крайнюю точку, как Леонид и заказывал 😃 Или имеется ввиду, что серва должна плавно перемещаться с определённой задержкой, скажем на 5-10 градусов в секунду. При достижении крайнего положения, она должна замереть на какую-то паузу, а потом начать двигаться в обратную сторону. И так до потери пульса?

БТВ, у МегаПилота есть поддержка управлением камера-маунтом. Само управление сосредоточено в AP_Mount и поддерживает туеву кучу функционала, к примеру
MAV_MOUNT_MODE_RETRACT // высунуть маунт на заданное пользователем положение и ничего больше не делать
MAV_MOUNT_MODE_NEUTRAL //нейтральное положение
MAV_MOUNT_MODE_MAVLINK_TARGETING // то же, что и MAV_MOUNT_MODE_NEUTRAL + постоянная работа стабилизации подвески
MAV_MOUNT_MODE_RC_TARGETING // ручное управление с пульта
MAV_MOUNT_MODE_GPS_POINT //направлять камеру на ГПС координату
Только я это не тестировал, посему не смогу вам рассказать, работает ли оно или это очередной мёртвый отросток от основной версии. 😦

Syberian:

позволю себе не ответить, т.к. не моих рук дело На мой взгляд, верхняя половина до init бесполезна.

Чудненько, наши мысли совпали 😃 Вот и стал код Пирата на 8 строчек короче 😃

alex-ber
ukkr:

Только я это не тестировал, посему не смогу вам рассказать, работает ли оно или это очередной мёртвый отросток от основной версии.

Спасибо!
ПС Константин - какбы мы в этой теме Свои - давайте на ТЫ - так вроде проще общаться! (если не против…).
Спасибо еще раз - буду разбираться…

Syberian
ukkr:

Самое интересное, у М1 и М2 “+” запараллелен.

Изначально вортекс был придуман для мультикоптеров. М1 соединен с М2 для того, чтобы в случае трикоптера запитать хвостовую серву. Во все остальные места втыкались регуляторы, имеющие свои UBEC. Плата имеет свой стаб от 12В (который дико греется).
Вот схема разводки питания вортекса
…rcgroups.net/…/a4082697-15-Power_Vortex.jpg

В случае самолета нужно

  1. соединить все средние провода Мх
  2. соединить их с Sonar+, чтобы обеспечить питание самой платы.

Также я лично соединил с USB+, чтобы не подавать внешнее питание при перешивке платы.

В первом посте картинка есть
www.rcgroups.com/forums/showthread.php?t=1547655

ukkr:

С помощью функции analogRead() вы можете читать значения с любого из этих входов в любом месте. На самом деле – Mega2560 пофигу, что подключено на эти пины, оно просто оцифровывает тот сигнал, что вы подаёте на пин. Это может быть как термометр, так и барометр, который выдаёт аналоговый сигнал и т.д.

Главное, отключить led sequencer с соответствующих каналов, т.к. он объявляет их выходами.

Извините, что не по порядку коментю… нафлудили много 😁

ukkr
Syberian:

В случае самолета нужно

  1. соединить все средние провода Мх
  2. соединить их с Sonar+, чтобы обеспечить питание самой платы.

Олег, 1е-- сделал, как и писал,-- соплёй припоя с задней стороны платы. 2е – за неимением сонара пока не делаю. Обнаружил, что pan и tilt тоже идут без “+”. Ну да, у тебя на рисунке так и есть( ничего, что на ты?).

LeonVS:

APM_RC.OutputCh(9, xxx_pos); - сие хрень не где не чего не кажет, но сервой дрыгает

Леонид, забыл предупредить.

OutputCh 

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

closest_limit()

), а PWM, который должен находиться в промежутке от 900-2100us. Посему, тебе мой код надо было поправить под этот метод, чтоб он использовал не -1800/1800 ранж, в 900/2100. Олеговский метод, OutputCh имеет защиту от дурака, он корректирует второй параметр, чтоб тот не вылез за пределы 900-2100, так что серву не спалите 😁.

Саш,

Спасибо еще раз - буду разбираться…

, там, чтоб включить в коде поддержку Камера Маунта, надо в config.h поставить
вместо

#ifndef MOUNT
# define MOUNT		DISABLED
#endif

такое

#ifndef MOUNT
# define MOUNT		ENABLED
#endif

Да, Саш, вот накидал, тот второй вариант, о котором говорил:

Смотреть лучше в полноэкранном режиме, отключив звук 😄 По центру как раз белая качалка сервы, видно как работает. Сорри за качество видео, у нас 2 ночи, свет не могу включить, а под рукой только мобилка. 😮 Алгоритм прост – серва крутится на определённый градус с паузой в секунду после каждого своего поворота. Когда она доходит до крайнего положения – она замирает в этом крайнем положении на 3 секунды. После этого она начинает крутиться в обратную сторону, пока не достигнет другого крайнего положения. И так, пока не надоест. B)

Syberian

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

ukkr

Первая дрыгалка на 2 положения понадобилась Леониду. Вторая “продвинутая” Саше.

😁
Первая дрыгалка на 2 положения понадобилась Леониду. Вторая “продвинутая” Саше.

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йные дрова, но до одного места. Прикол в том, что девайс просто берёт и перезагружается, судя по всему…