MultiWii

drozd79

Всем привет! Мужики читаю тему, но не нашел пока ответа. Приехала мне плата Arduino Mini Pro. Так же есть USB адаптер вот такой arduino.cc/en/Main/MiniUSB . Подпаял 4 выхода USB адаптера (TX,RX, GND, VCC) к 4-м соответствующим входам ардуино, пытаюсь залить программу, выскакивает ошибка:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

На ардуинке горит зеленый и моргает красный постоянно. Вопрос, как узнать есть загрузчик в моей ардуинке?
Правильно ли я подключил USB-адаптер к Ардуино!

ДО этого была плата Arduino Duemilanove заливалось все без проблем!

SovGVD
mahowik:

ощущение что на высоте более метра сонар уже не отдает дистанцию

вполне возможно, сигнал отразился от неровной поверхности и рассеялся/ушел в строну + тут надо учитывать угол действия сонара и не забывать что высота от коптера до земли - это не дальность от сонара то точки отражения, а гипотенуза в треугольнике

tda2030

конечно, желательно, чтобы он излучал перпендикулярно поверхности земли. Угол излучения обычно небольшой, порядка 15 градусов.

Александр Дроздов, что до ардуинки, то не хватает еще и сигнала reset. Обрати внимание на то, что это 2я нога ft232, подключенная к ресету AVRки через последовательно включенный конденсатор. На старых версиях плат можно было ресетить вручную. У них интервал ожидания после ресета был довольно большой. У promini такого не выйдет. Сам пробовал. + еще Rx и Tx могут быть попутаны местами.

Определить, есть ли бутлодер, обычно можно так: заресетил кнопочкой платку, после отпускания светодиод на 13й ноге должен моргнуть.

mahowik
tda2030:

и еще пока вспомнил. В проектах, где есть и баро, и сонар для удержания высоты обычно делают так: большие высоты - само собой баро, т.к сонар метров до 3-5 чет работает, а на низких высотах сонар, т.к. точность выше

сперва так и сделал… но потом как нихрена не вышло, оставил толко сонар… т.е. надо понять причну сперва… буду профайлить через bluetooth… благо что второй етаж всего… жена упирается НО будет оператором дома, а то смотреть на комп и пытаться не вписаться в провода или балкон чей нить сложновато 😃

SovGVD:

вполне возможно, сигнал отразился от неровной поверхности и рассеялся/ушел в строну + тут надо учитывать угол действия сонара и не забывать что высота от коптера до земли - это не дальность от сонара то точки отражения, а гипотенуза в треугольнике

tda2030:

конечно, желательно, чтобы он излучал перпендикулярно поверхности земли. Угол излучения обычно небольшой, порядка 15 градусов.

с етим тож понятно… пока пробую в зависании, потому угол можно считать 90гр к горизонту… кроче надо сперва понять что происходит на высоте более метра… пират ведь летает 😉
кстать на сколько точно висит на сонаре? +/-??см?

omegapraim
drozd79:

Всем привет! Мужики читаю тему, но не нашел пока ответа. Приехала мне плата Arduino Mini Pro. Так же есть USB адаптер вот такой arduino.cc/en/Main/MiniUSB . Подпаял 4 выхода USB адаптера (TX,RX, GND, VCC) к 4-м соответствующим входам ардуино, пытаюсь залить программу, выскакивает ошибка:
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

На ардуинке горит зеленый и моргает красный постоянно. Вопрос, как узнать есть загрузчик в моей ардуинке?
Правильно ли я подключил USB-адаптер к Ардуино!

ДО этого была плата Arduino Duemilanove заливалось все без проблем!

Вас китаезы надули, программатор подсоединяется по 5ти проводам надо еще и ресет от программатора на аурдину подрубать и будет вам счастье.

tda2030

по даташиту точность самого сонара 0.3 см (!!!). По ходу дела все остальное упирается в математику, правильность настройки ПИДа, и уровень разброса в показаниях сонара

не помню в каком проекте, но я только начинал разбирать тему коптеров, смотрел видео полетов с сонаром. Высота от пола была небольшая, не более 1.5 метров. С виду держался очень ровно. Не знаю, если в +/- 10 сантиметрах от исходного положения болтался… не больше…

tusik
mahowik:

кстать на сколько точно висит на сонаре? +/-??см?

В сырую погодду 5 см, а так 10

mahowik
tda2030:

по даташиту точность самого сонара 0.3 см (!!!). По ходу дела все остальное упирается в математику, правильность настройки ПИДа, и уровень разброса в показаниях сонара не помню в каком проекте, но я только начинал разбирать тему коптеров, смотрел видео полетов с сонаром. Высота от пола была небольшая, не более 1.5 метров. С виду держался очень ровно. Не знаю, если в +/- 10 сантиметрах от исходного положения болтался… не больше…

tusik:

В сырую погодду 5 см, а так 10

даташит смотрел тоже… довольно точно отдает… дома высоту потолков перемерял везде с точностью в полсантиметра 😃
с математикой и ПИД тож по идее все ок, т.к. в настроенний алт-холд сунул дистанс от санара и на высотах менее метра держит +/-30…50см
вот интересно, а пробовал кто на сонаре висеть так скажем на 3-4 метрах?
у меня навязчивая идея, что вибрации от движков уменьшают чувствителность сонара, т.е. зашумляют принятый пулс-сигнал… отсюда и дальность действия падает…

tusik
mahowik:

висеть так скажем на 3-4 метрах

У меня не висит:) Сонар работает у меня до двух метров. Замечено как: до двух метров колебаний нет после двух ±метр-полтора, снижается до двух - останавливается. В алт-холде пиды не настраивал

Sir_Alex
tusik:

Замечено как: до двух метров колебаний нет после двух ±метр-полтора, снижается до двух - останавливается. В алт-холде пиды не настраивал

Дело в том, что код сонара я поправил в Пирате 2.1.1R8, до этого там могли скакать показания на высоте больше метра… Т.к. переполнялся счетчик длительности импульса от сонара. Кроме того, сонар сам по себе не правильно использовался, между измерениями надо держать паузу в несколько миллисекунд.

Так что если в MultiWii похожий код был, то проблема в нем.

nemo61
drozd79:

пытаюсь залить программу, выскакивает ошибка: avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51

omegapraim:

надо еще и ресет от программатора на аурдину подрубать и будет вам счастье.

Можно и не подрубать. Я делаю так:
нажимаю кнопку загрузки.
Когда появляется надпись об окончании компиляции - выжидаю примерно секунду и жму ресет на ардуине.

mahowik
Sir_Alex:

Так что если в MultiWii похожий код был, то проблема в нем.

я дравер для сонара тогда с фиксом взял, т.е. тот который ты на форум выкладывал… Или ты нашел эту багу с переполнением позже?

Sir_Alex
mahowik:

я дравер для сонара тогда с фиксом взял, т.е. тот который ты на форум выкладывал…

Ну тогда не знаю… Я в MultiWii ничерта не знаю 😃 Разве что могу сказать, что в Пирате, происходит постепенное выравнивание показаний от сонара к баро. Если показания сонара выходят за границы то сразу идет работа с барометром. Вот кусок кода отвечающий за это:

        if(baro_alt < BARO_TO_SONAR){
            #if SONAR_TILT_CORRECTION == 1
                // correct alt for angle of the sonar
                float temp = cos_pitch_x * cos_roll_x;
                temp = max(temp, 0.707);
                sonar_alt = (float)sonar_alt * temp;
            #endif

            scale = (sonar_alt - SONAR_TO_BARO_FADE_FROM) / SONAR_TO_BARO_FADE;
            scale = constrain(scale, 0, 1);

            current_loc.alt = ((float)sonar_alt * (1.0 - scale)) + ((float)baro_alt * scale) + home.alt;

            // solve for a blended climb_rate
            climb_rate         = ((float)sonar_rate * (1.0 - scale)) + (float)baro_rate * scale;

        }else{
            // we must be higher than sonar (>800), don't get tricked by bad sonar reads
            current_loc.alt = baro_alt + home.alt; // home alt = 0
            // dont blend, go straight baro
            climb_rate         = baro_rate;
        }
tda2030
nemo61:

Можно и не подрубать. Я делаю так:
нажимаю кнопку загрузки.
Когда появляется надпись об окончании компиляции - выжидаю примерно секунду и жму ресет на ардуине.

пробовал так. на promini так уже не получается, короткий интервал ожидания команды с программатора. у Вас какая плата?

ЗЫ. ура!!! переделал поворотный узел хвоста. Теперь люфты оооочень маленькие. )))))))))))))
вопрос: на полном газе показания ACC_Z проваливаются с 515 до ~500. Можно шкалу на 8g оставить или желательно на 16 перейти? Где-то на 70% газа ACC_Z никуда не прыгает. Так ш скорее всего и с +\- 8g все будет ок. Не помню такого, когда газ на полную давал ))

omegapraim
nemo61:

Можно и не подрубать. Я делаю так:
нажимаю кнопку загрузки.
Когда появляется надпись об окончании компиляции - выжидаю примерно секунду и жму ресет на ардуине.

А стоит оно того, мозг себе парить из-за того что тупо лень припаять 1н лишний провод и аурдина сама нажмет ресет когда ей это нужно.

mahowik
tda2030:

вопрос: на полном газе показания ACC_Z проваливаются с 515 до ~500. Можно шкалу на 8g оставить или желательно на 16 перейти? Где-то на 70% газа ACC_Z никуда не прыгает. Так ш скорее всего и с +\- 8g все будет ок. Не помню такого, когда газ на полную давал ))

цитирую себя 😃))

- т.к. на диапазоне +/-8g для акселя проблема с вибро решаема, TRUSTED_ACCZ включен по умолчанию для правильной калькуляции в ИМУ и использования асс Z для увеличения точности ALT HOLD.
Тут можно сделать простой тест. Прижмите коптер к полу и плавно увеличивая газ до максимума, проверьте не просдает ли Z ось. Только берегите пальцы плз., т.к. тест надо проводить с пропами на борту. У меня (при +/-8g) просядает примерно на 70-80% газа, но это уже не рабочая зона, потому не страшно. Если же просядает в рабочей зоне, надеюсь у вашего акселя есть +/-16g, т.е. курите даташит, либо остатся резинко-демпфирование
😉

Boev_Dmitry
drozd79:

пытаюсь залить программу, выскакивает ошибка:

адаптер видимо подключен правильно, но плата не перезагружается при прошивке, соответственно не активируется бутлоадер.
варианты - или самому перезагрузить плату кнопкой, когда IDE скомпилет скетч и начнет его загружать, или прочитать это
arduino.cc/en/Main/ArduinoBoardProMini
там есть внизу описание про “Automatic (Software) Reset”

UPD
походу с вашим адаптером такое не получится - там выход RTS от FT232RL не выведен на разъемы, придется ресетить плату ручками

SovGVD

кто-то давно просил перевод pdf-ки с описанием комбинаций стиков airm.ru/articles/2 - базовый вариант, без включения телеметрии и конфигурации через LCD

mahowik
SovGVD:

описанием комбинаций стиков

  • калибровка магнитометра с пульта: trottle(max) + yaw(max) + pitch(min)
    т.е. как калибровка акселя, только яв вправо…
drozd79
omegapraim:

Вас китаезы надули, программатор подсоединяется по 5ти проводам надо еще и ресет от программатора на аурдину подрубать и будет вам счастье.

Киданули в плане того, что не загрузили бутлоадер?

omegapraim:

А стоит оно того, мозг себе парить из-за того что тупо лень припаять 1н лишний провод и аурдина сама нажмет ресет когда ей это нужно.

Дмитрий подскажите пожалуйста, вот такой у меня USB-адаптер

На плате Arduino mini pro вывод Reset обозначен, как RST - это он? А вот на адаптере он есть? Как написали выше, второй ноге FT232 соответствует вывод DTR на моем адаптере. Это и есть RESET для Ардуино?

И еще вопросик, зачем нужна перемычка на моем USB-адаптере? Она стоит на +5В, я так понимаю. Точнее для чего она предусмотрена?

tda2030

выдержка с сайта ардуины. Описание promini, секция Reset

Automatic (Software) Reset

Rather then requiring a physical press of the reset button before an upload, the Arduino Pro Mini is designed in a way that allows it to be reset by software running on a connected computer. One of the pins on the six-pin header is connected to the reset line of the ATmega168 via a 100 nanofarad capacitor. This pin connects to one of the hardware flow control lines of the USB-to-serial convertor connected to the header: RTS when using an FTDI cable, DTR when using the Sparkfun breakout board. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of the reset line can be well-coordinated with the start of the upload.

This setup has other implications. When the Pro Mini is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB-). For the following half-second or so, the bootloader is running on the Pro. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.

коротко смысл. Ресет выводится на ногу RTS, когда используется FTDI кабель и на DTR, когда используется плата Спаркфана. Подрубается через конденсатор в 100 нанофарад. И самое главное - МК ресетится автоматически посредством софта (не в ручную) и именно поэтому период ожидания бутлодера сокращен!!!

Дальше, если смотрим схематику, то вывод RESET (RST на самой плате) - это прямое подключение к самому контроллеру, а нам нужно через емкость. В схематике эта нога обозначена как DTR (arduino.cc/en/…/Arduino-Pro-Mini-schematic.pdf) и выходит на 6ти контактный разъем JP1.
На самой плате (arduino.cc/en/Main/ArduinoBoardProMini) этому соответствует пин под названием GRN (нижний левый на картинке). Вот к нему то и надо подрубать вывод 2 с микросхемы FT232 переходника USB-COM. У Вас на плате он должен быть разведен и обозначен как DTR. Итого, 6 ног в интерфейсном разъеме (2*GND, VDD, Rx, Tx, DTR).

что до джампера на переходнике, это скорее всего выбор источника питания, подаваемого на колодки JP2 и JP3
arduino.cc/en/uploads/…/mini_usb_schematic.pdf
(либо с порта USB, либо внешнее 5В)

и да, это не просто слова. У меня все работает. Схематику использовал ардуиновскую, но платы разводил сам