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

Ustas69
Syberian:

попробовал полетать на квадрике morpheusa

Так morpheus вроде и есть на aircam.ru (ака Руссокоптер)

Morpheus
Активный участник
34 лет
Омск
Дата рождения: Июнь-10-1977

Syberian
Ustas69:

Так morpheus вроде и есть

Здесь он тоже есть.
Значит, это действительно был рускоп.

Юрий, если надумаете стать пиратом, для самолетов на то же железо тоже порт есть. По точкам уже полетали с автовзлетом и RTH.
===

Видно, не судьба мне от мультироторов скрыться 😁
Придется продолжать прерванную линию мегапирата, начиная с 49 версии.

SovGVD
Syberian:

Придется продолжать прерванную линию мегапирата, начиная с 49 версии.

велкам бек ту мегапайратнг =) кинь мыло на gmail.com - добавлю в code.google.com/p/megapirateng/

Covax:

там все сделано с умом, мегапират и ардукоптер летают хуже

хотелось бы не голые слова по личным ощущения, а какие то доказательства, например одна и та же рама с моторами, один и тот же пилот, но разные мозги - тогда буде что сравнивать, а то обычно выходит что сравниваем собрал_из_того_что_было против купил_всё_супер_пупер - и тут как бы сразу понятно кто летает лучше, а кто хуже

Syberian
SovGVD:

велкам бек

оу оу оу… а как перетащить свой репозиторий с ардупиратов? Там 90% всех обновлений за год - мои 😦 Хотелось бы историю сохранить.

SovGVD
Syberian:

а как перетащить свой репозиторий с ардупиратов?

слить себе на копм, поудалять .svn и залить в новый репозиторий наверное, но лучше у гуру SVNна спросить =)

Morpheus
Ustas69:

Так morpheus вроде и есть на aircam.ru (ака Руссокоптер)

Morpheus
Активный участник
34 лет
Омск
Дата рождения: Июнь-10-1977

Я тут тоже есть.

Syberian : Была версия 3.5

nemo61
SovGVD:

одна и та же рама с моторами, один и тот же пилот, но разные мозги

Так и было. На Руссокоптере взлететь не смог. На мегапирате с тем же железом летал.

tusik
SovGVD:

велкам бек ту мегапайратнг

Я че, зря нового ардукоптера заказал? 😃

Syberian
tusik:

Я че, зря

типа будет чем сравнить 😉

Я вот, например, только рад, что у меня алинонов и вортексов кучка: и на самолет, и на трикоптер есть что поставить… А там еще бензинка на подходе.

SovGVD
Syberian:

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

у меня адруинок и датчиков по отдельности… мозгов на 4 квадрика, моторов и регулей на 3 =)

Ustas69

Ну вот видите, как все славненько, главное во время подзадорить😁

Так что, allinone с MS5611 заказывать? Лучше он, чем BMP085?😃

Syberian

Считается, что лучше, но лично я не проверял. У меня все БМПшки, так что буду мучать то, что имею.

SovGVD
Ustas69:

allinone с MS5611 заказывать? Лучше он, чем BMP085?

я бы с MS заказал - датчик в 10 раз точнее (в теории), да и новые арду мозги с этим датчиком

Syberian
SovGVD:

да и новые арду мозги с этим датчиком

только уточняй, что это уже не пиратские а “оригинал” 😉 или я не о том подумал?

SovGVD
Syberian:

я не о том подумал?

о том =) да именно в оригинале, но раз код есть (не смотрел - занят работой), то можно от туда перетырить, да и Sir Alex вроде писал код под этот датчик

mahowik
Syberian:

Найти строку ( №125 ) i2c_write(0x18+4); // Internal Sample Rate 1kHz, 1…6: 1=200hz, 2-100,3-50,4-20,5-10,6-5 Заменить на i2c_write(0x18+2); // Internal Sample Rate 1kHz, 1…6: 1=200hz, 2-100,3-50,4-20,5-10,6-5

ето с 20hz на 98hz?
можно попробовать по идее смело и на 188hz врубить т.к. гиро оссобо не боится вибрации

i2c_write(0x18+1);

как раз имеет смысл если время цикла не более 5-6мс

Syberian:

у тебя не прописан инит PCINT - прерывания по входу ECHO
PCMSK0 = B00010000; // sonar port B4 - d10 echo
PCICR |= 1; // PCINT activated for PORTB

наставил Serial.println(“point_[N]”); в обработчки прерываний а также в setup() и loop()
в итоге картина такова: в обработчики и в loop() не заходит, а setup() вызывается в бесконечном цикле

есть идеи?

Sir_Alex

У меня сейчас мало времени на портирование (Я еще занимаюсь Русификацией электронных книг Kindle), но я почти закончил порт 2.1, осталось только проверить и допилить шероховатости. Я застрял на сборке нового коптера, старый разобрал, а на новый еще не успел установить мозги… Так что, Олег, подожди немного пока я не закончу, а дальше можем вместе что то делать. В старых исходниках не вижу смысла, пусть лежат на старом месте, можно туда сделать ссылку разве что.
Код под MS5611 написан, но не работает (пару человек пробовали), нужен человек понимающий код и с таким датчиком. Я не покупаю отдельно этот датчик, т.к. жду когда доделает новую платку Fabio (FreeIMU) с MS5611 и MPU6050 (тот, что стоит на новом APM 2.0) - у него были трудности с комплектухой, но в ближайшую неделю должны быть готовы. 😃

Sir_Alex
mahowik:

наставил Serial.println(“point_[N]”); в обработчки прерываний а также в setup() и loop() в итоге картина такова: в обработчики и в loop() не заходит, а setup() вызывается в бесконечном цикле есть идеи?

У тебя неправильно инициализировался Таймер5. В пирате используется еще канал B таймера, а у тебя его нет, но он инициализировался.
Замени код функции setup() на этот:

void setup() {
  // initialize the serial port, lets you view the
  // distances being pinged if connected to computer
  Serial.begin(115200);

 // Sonar INIT
//=======================
//D48 (PORTL.1) = sonar input
//D47 (PORTL.2) = sonar Tx (trigger)
//The smaller altitude then lower the cycle time
  cli();
  PORTH&=B10111111; // H6 -d9  - sonar TX
  DDRH |=B01000000;

  PORTB&=B11101111; // B4 -d10 - sonar Echo
  DDRB &=B11101111;

  TCCR5A = 0; //standard mode with overflow at A and OC B and C interrupts
  TCCR5B = (1<<CS11); //Prescaler set to 8, resolution of 0.5us
  TIMSK5 = B00000011; // ints: overflow, capture, compareA
  OCR5A = 65510; // approx 10m limit, 33ms period

  PCMSK0 = B00010000; // sonar port B4 - d10 echo
  PCICR |= 1; // PCINT activated for PORTB
  sei();
}

Кстати, спасибо за скетч, я пока сам ковырял, обнаружил багу с кодом сонара. Иногда происходит переполнение счетчика не успев обработать эхо сигнал от сонара. По уму надо это учитывать и кроме того измерения надо выполнять один раз за 5 переполнений счетчика (по спецификации на сонар, один цикл измерения не должен быть короче 150мс).

mahowik

спасибо огромное! попробую отпишусь.

Sir_Alex:

по спецификации на сонар, один цикл измерения не должен быть короче 150мс

ну да, по идее так для прохождения звуком 5м, как раз надо примерно 150мс…

а фикс на найденный баг уже есть?

Sir_Alex
mahowik:

а фикс на найденный баг уже есть?

Я в твоем скетче поправил, а в пирата пока не перенес.

mahowik
Sir_Alex:

Я в твоем скетче поправил, а в пирата пока не перенес.

проверил… терь все работает! спасибо еще раз!

з.ы. впилил в мультивий… циклтайм в порядке!
осталось alt pid регуль подпилить под него…