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

Syberian
SovGVD:

в Linux версии arduino IDE

Тогда попробуй поменять Math.h на math.h
Насколько я знаю, линух не любит разные регистры.

По поводу акселя и гиро, попробуй поковырять AP_ADC_ADS7844.cpp, там все I2C процедуры выдраны из Мультивия. Подставив инициализацию и чтение, все должно заработать.

SovGVD
Syberian:

Тогда попробуй поменять Math.h на math.h

ага, получилось
Binary sketch size: 124428 bytes (of a 126976 byte maximum)
однако тяжеленькая прошивочка получается

кто нибудь уже летал на этой прошивке хоть?

Syberian

Ну, я в руке запускал, тряс по-разному, вроде отлично работает… У Норберта на квадрике чо-то глючит с управлением моторами. Больше впарить потестить некому 😦

SovGVD
Syberian:

я в руке запускал

а почему не полетал? сегодня поковыряю датчики и MultiWii, попробую взлететь… к 9-ому попробую эту прошивку

еще вопрос по дальномеру, в коде 2 пина используется, у меня только 1 (PING))) сенсор) - тупо запаралелить на 2 пина ножку? или код менять придется? или вообще не в курсе? =)

Syberian

Да потому что не умею! 😦 А Morpheusa в гости звать пока рано.
Сонар используется импульсный, т.е. у него 2 ноги, одна - активация импульса, 2 - эхо. Т.е. вход не аналоговый, как у maxsonar, а цифровой.
В каком виде сигнал на пинге?

SovGVD

arduino.cc/en/Tutorial/Ping?from=Tutorial.Ultrasou…

// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
  // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  // The same pin is used to read the signal from the PING))): a HIGH
  // pulse whose duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
  inches = microsecondsToInches(duration);
  cm = microsecondsToCentimeters(duration);
Syberian:

Да потому что не умею!

да я тоже не умею, но попробовать полетать имхо надо =)

Syberian

ааа, читеры… pinmode занимает 80 мкс
Чтобы можно было замкнуть 2 пина, добавь это:

ISR(TIMER5_COMPA_vect) // measurement is over, no edge detected, Set up Tx pin, offset 12 us
{if (sonar_meas==0) sonar_data=-1;DDRL|=B00000100; PORTL|=B00000100;TCNT5=65533;}
ISR(TIMER5_OVF_vect) // next measurement, clear the Tx pin,
{PORTL&=B11111011;DDRL&=B11111001; sonar_meas=0;}
ISR(TIMER5_CAPT_vect) // measurement successful, wait 40ms, next measurement
{sonar_data=ICR5;TCNT5=29990;sonar_meas=1;}

Замыкать надо 47 и 48 ноги

Volver

прошивка залилась, но че-то настраивать запарился. Погода, однако, хорошая, пошел опять на Мультивие летать ))))

Также, смотрел “raw sensor data” там только гирики работали, аксели были отключены.

soliada

Очень бы хотелось поддержку гироскопа L3G4200D и акселерометра ADXL345(цифровой),в Мультивии они поддерживаются.
Думаю будет полезно многим,т.к не все такие продвинутые Программеры,особенно я.

Syberian

Вышла официальная бета, которая тут же подверглась портированию.
Теперь уж ничего дополнительно качать и команды вводить не надо. Поставил библиотеки, открыл проект, закомпилил, зашил…
Проект порта поменял название, будет идти в ногу с Ардукоптером.
…googlecode.com/…/PirateCopter2Beta1.zip
По умолчанию настроен на FFIMU.

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

SovGVD

тут пока тоже дофига всего, но не понятно летает кто-то или нет =)
хотел завтра попробовать эту прошивку, а чето моторчик один дребезжит немного, другой скребется… причем ни разу не падал пока эксперементил =(
UPD: собирается, но в Linux снова ругнулось на Math с большой буквы =)

Syberian

опять в БМП085? а у меня с маленькой ругается в винде 😦

Roix

Ахринеть!
Олег, понимаю, что Вы не в курсе, что значит сокращение “svn”, и вообще принцип работы механизма по этому протоколу, поэтому как бы это… Попадаете по распространение “***”, как минимум 😦 Не делайте так больше, пожалуйста.
А все обновления можно выкладывать в другие места, свободные для скачивания без клиентский программ.

mahowik
Roix:

что значит сокращение “svn”

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

Syberian

http://www.sliksvn.com/en/download собственно совершенно бесплатная субверсия.
Сам проект с открытым кодом, под GPL, free to modify etc. Копилефты в коде имеются.
Чего еще надо-то?

Syberian

Обновлен МегаПират бета2:

  • основной цикл стал 5.4 мс вместо родных 16, для I2C-датчиков это очень критично
  • закончена настройка сонара. Используется DYP-ME007 за $8 вместо Maxsonar за $40. Точность - 1 сантиметр, дальность до 3 метров (стабильно), максимум 5.
    Trig подключить к D47, Echo - к ноге D48.
  • переписана инициализация ITG3200, из-за чего у него в 8 раз упал рейт

Барометр как работал, так и работает.
Для GPS надо носить на улицу, т.к. окна на север, фикса нет, хотя статус показывается нормально.
Магнетометр из Allinone нужно вырезать и вешать отдельно, а еще лучше самого разработчика 😦 , так как вот , а другого у меня нет.

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

Ах да, забыл архивчик приложить 😃
ardupirates.googlecode.com/…/MegaPirateB2.zip

Напоминаю, что:
Дабы исключить мороки с разными версиями библиотек у разных пользователей, МегаПират будет обновляться так называемыми бандлами (bundle), т.е. полным архивом, который был лично затестен мной так, как он есть.
Для каждой конкретной версии ArduCopter2 будет существовать свой архив МегаПирата. После выхода очередного обновления ардукоптера и его “пиратизации” работа над предыдущим архивом будет прекращена.

Covax
Syberian:

Магнетометр из Allinone нужно вырезать и вешать отдельно, а еще лучше самого разработчика , так как вот , а другого у меня нет.

Олег, а в чем там проблема?

Syberian

Ссылку на слове “вот” заметил?
Этот чел натыкал конденсаторов с железными выводами, которые магнитятся (прилипают к отвертке), рядом с магнетометром. Из-за чего компас показывает север где-то под ногами. Вон, он уже там отмазывается в теме…

Covax

Золотой ты человек! а то я уже хотел заказывать эту оллинван…
Такая же бодяга наверное из FF IMU?

well that sucks. Some of the Jussi’s FFIMUs have problems with the mag too, mine works OK though, at least Jussi offers a few options to fix the problem, hopefully CSG_EU will do the same.

Volver
Covax:

Такая же бодяга наверное из FF IMU?

да, на второй версии 1,22 с магнетометром 5883 тоже глюки были, пока на DEV версии кода не откалибровал магнетометр.
на первом ффиму 1,1 с магнетометром 5843 проблем нет.

Syberian

Кто ж его знает!
Я вот сижу и думаю, пойти за кондерами vishay, или просто выпаять к лешему те, что рядом с компасом. И что делать с BMР085?
Была суровая мысль выпилить к черту компас с куском платы и вывести на проводках на стоечку.