ArduCopter Mega: порт на обычную Arduino (тестим)

Sir_Alex
RA4ASN:

Извиняюсь за повтор, хочу уточнить: этот приемник поддерживает ppm_sum?

Да, а вот 8 канальный - нет.

tusik:

А ППМ_СУМ этот код будет видеть? А то я свой коптер перевел. Вместо шести проводов - один. Спасибо Сэру Алексу

Если я правильно понимаю, то Failsafe не будет работать в мегапирате. Т.к. переделанная библиотека APM_RC не говорит основному коду, идет сигнал от приемника или нет. Если допилить код, то будет работать.

tusik
RA4ASN:

этот приемник поддерживает ppm_sum?

Да. Уменя такой работает. На разъеме БАТ сигнал.

Sir_Alex:

то Failsafe не будет работать в мегапирате

Обидно, конечно…

SovGVD
Sir_Alex:

переделанная библиотека APM_RC не говорит основному коду, идет сигнал от приемника или нет

дык вот я и предлагаю это строку добавить… APM_RC вроде почти 1 к 1 передернута с мультивия, хотя могу ошибаться =)

код работы с газом в вие:

if (mask & 1<<0)
        if (!(pin & 1<<0)) {
          dTime = cTime-edgeTime[0]; if (900<dTime && dTime<2200) rcValue[0] = dTime;
        } else edgeTime[0] = cTime;

код работы с газом в пирате:

if (mask & 1<<0)
    if (!(pin & 1<<0)) {
      dTime = cTime-edgeTime[0]; if (1600<dTime && dTime<4400) rcPinValue[0] = dTime>>1;
    } else edgeTime[0] = cTime;

код работы с фейлсейфом в мультивие (THROTTLEPIN=0)

 if (mask & 1<<0) {    // If pulse present on THROTTLE pin (independent from ardu version), clear FailSafe counter  - added by MIS
        if(failsafeCnt > 20) failsafeCnt -= 20; else failsafeCnt = 0; }

между основным кодом и библиотекой одно пространство имен? или надо как то хитро задавать?, например в массив значений добавить еще знаечение флаг fail или не fail =)

т.е. имхо что-то вроде

rcPinValue[FAILINDEX]++; // где то постоянно плюсовать
...
// внутри ISR(PCINT2_vect)
if (mask & 1<<0)
    if (!(pin & 1<<0)) {
      dTime = cTime-edgeTime[0]; if (1600<dTime && dTime<4400) {rcPinValue[0] = dTime>>1;rcPinValue[FAILINDEX] = 0;}
    } else edgeTime[0] = cTime;

а уже внтури основного кода смотреть (или чего там вместо readRawRC надо)

if (readRawRC(FAILINDEX)>FAILDELAY) WARNING_ПЫЩ_ПЫЩЬ_АЛЯРМ
Sir_Alex

У кого нибудь уже есть живой MS5611 баро? Я нашкодил версию с его поддержкой, надо бы потестить.
Кстати, автор FreeIMU, возможно сможет мне выделить один из прототипов новой платки с MS5611 и новым сенсором MPU-6050. Фишка в том, что просчет координат делается прямо в датчике Ж)

Musgravehill
Sir_Alex:

уже есть живой MS5611 баро?

Заказал, жду. Надеюсь, в начале декабря подключу.

Sir_Alex:

просчет координат делается прямо в датчике

Ардуинке будет легче дышать.
Я закопался с двуплатным Пиратом, косяк на косяке.

mahowik

привет пираты! 😃

добавил “симпл” мод к вию rcopen.com/forum/f123/topic221574/3677

Т.к. ардукод не подсматривал 😃, скажите в какой момент запоминается азимут в этом моде? В момент включения двигателей или вклучения самого мода?
Если в момент включения двигателей, то можно использовать мод как хэээлп. К примеру, если зарулился… врубил симпл мод и точно зная где нос, можно спастись от крэша…
Плюс второго варианта (текущая имплеметация) в том что, то что можно изменить азимут в полете… Залетел за голову, развернул как надо, перещелкнул тумблер и “псевдо нос” смотрит куда надо…

tusik

Полетал сегодня в акро моде. Хапнул адреналинчику. Как в нем летают? Включил на высоте метров 10 и еле поймал в стаб моде в метре от земли. Ощущения, как если бы в руку дали двухметровую палку, а на верхний конец поставили коптер и заставили держать равновесие 😃 . Но за то при включении стаб мода коптер сам железно стал в горизонт. Правда летал в акро с замерзшими руками. Может в тепле и по-проще будет, весной попробую еще раз 😃

mahowik
tusik:

Полетал сегодня в акро моде. Хапнул адреналинчику. Как в нем летают?

ПИДы помягче поставь и не так страшно будет 😃
В вие вообще с высоким “Д” (не классик и отвечет за скорость реакции системы) легко летать. Но в пирате это не поможет, там “Д” другой 😃

iBat
mahowik:

привет пираты! 😃

скажите в какой момент запоминается азимут в этом моде? В момент включения двигателей или вклучения самого мода?

Если не ошибаюсь - в момент первого включения мода.

Sir_Alex
mahowik:

Т.к. ардукод не подсматривал , скажите в какой момент запоминается азимут в этом моде? В момент включения двигателей или вклучения самого мода?

В момент активации двигателей (Arming)

Covax

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

Sir_Alex
Covax:

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

Это надо Jason Short’у писать. Я написал как оно сейчас есть, функция init_simple_bearing выполняется при арминге моторов.

Covax

Я слышал Алексей Харланов способен любую прошивку сделать так как надо, а не как есть 😃 Есть такое? 😃

Sir_Alex

От жеж… 😃
У меня пока мало опыта в коптерах, мегапират - это клон Ардукоптера под другое железо, т.е. вся логика остается от AC. Поэтому я старался минимизировать изменения в прошивках. Да и вообще, на данный момент, моя цель вылизать работу датчиков, GPS, и т.д., что бы к ним не было вопросов, а дальше можно будет с режимами поиграться 😃

Covax

Ну тут дохрена помошников всегда) Арду написан очень читабельно) Так что кто-то и в режимах сможет покопаться)

SovGVD

Большинство проектов более чем читабельно написаны… фишка в том что мы вроде хотели ардукоптер для наших датчиков, а не свой форк ардукоптера
кстатии что на счет failsafe (псевдо код на прошлой страничке)?

Sir_Alex
SovGVD:

Большинство проектов более чем читабельно написаны… фишка в том что мы вроде хотели ардукоптер для наших датчиков, а не свой форк ардукоптера кстатии что на счет failsafe (псевдо код на прошлой страничке)?

Если не горит, то как дойдут руки я поправлю и проверю.

tusik
Sir_Alex:

как дойдут руки я поправлю и проверю.

Было бы очень не плохо. Хотя бы по одному каналу…

SovGVD
tusik:

Хотя бы по одному каналу…

можно обнуление поставить на все каналы… только зачем? если нет сигнала на газе, то наверянка на других каналах та же фигня

Covax

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

SovGVD

я так понимаю что при фейле на приемнике просто перестает менятся значение, т.е. 0 и 1 превращаются или в постоянный 0 или в постоянную 1 и соотвественно нет изменений на пине и предполагает что это epic fail =)
а вот если изменения так и продолжаются (то 0, то 1), то хз как детектить - может я все стики зажал в нужном положении и лечу и не меняются значения (шум не в счет)