MultiWii

tda2030

nsk-racer, кусочек кода из def.h

#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__)
#define PROMINI
#endif
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1281__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
#define MEGA
#endif

если все правильно понимаю, то тип платы определяется исходя из установленного контроллера. Эмм, подозреваю, что тип контроллера передается IDE.
В самой Ардуине задается в Tools -> Board.
думаю, что ничего страшного не будет, если самостоятельно зададите тип Вашей платы. У меня самопальная promini, все работает ок )

что до датчиков, тут ничего не могу подсказать. Про себя - чтоб корректно работало, собрал преобразователь уровней 5В (ардуина) -> 3.3В (датчики). Проблем с определением не возникало.

А теперь мои вопросы.

исходные данные. Плата promini на Atmega 328p. Конфугурация пепелаца - трикоптер. Радио - 6 канальное ХоббиКинг. Датчики - ITG3205 и bma180 по i2c.
Моторы dt750, регули Mystery 20A blue series (brake - off, timign setup - (22-30)deg, soft start-up - start acceleration, switch freq - 16kHz)

прошивка 1.9

вопросы:
1) не могу заставить работать 6-й канал. 5 задействованы, пашут правильно.
физически 6-й подключен к D12 (до этого была свободна). Правки в коде

/* possibility to use PIN8 or PIN12 as the AUX2 RC input
it deactivates in this case the POWER PIN (pin 12) or the BUZZER PIN (pin 8)

раскомментировал #define RCAUXPIN12

  • в def.h поправил с
    #define AUX2PIN 0 // optional PIN 8 or PIN 12
    на
    #define AUX2PIN 12 // optional PIN 8 or PIN 12

вроде все. Однако в гуи значение на AUX2 = 900 и не меняется. Пробовал на 12 пин подавать данные с других каналов приемника. Никакой реакции. И обратно - 6й канал вместо, к примеру, 5го. 6й физически работает

2). по поводу использования опции trust acc_z. Эмм, смотрю тут на форуме народ чувствительность акселя в данном направлении меняет и полосу пропускания фильтра. И это все для bma020. Никто ничего не пробовал подобного делать с bma180? Просто пока не вникал какие флаги и в какие значения надо выставлять. Надеюсь, можт кто подскажет, если же нет, будем сами курить. И вообще, насколько сильно сказывается включение использования acc_z на поведение коптера? Оно того стоит? 😃

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

  • регуляторы на максимальный газ откалиброваны;
  • аксель и гиро откалиброваны;
  • включение питания на максимально возможной горизонтальной поверхности. Задержка калибровки гиры - 2 сек;
  • значения стиков Pitch и Roll совсем рядом с 1500. Прыгают немного, но это аппа виновата;
  • триммирование акселя сильно не помогает, хотя делаю по 15-20 “щелчков” для каждого направления завала
  • вибрации на датчиках в режиме 2/3 от полного газа заметны, но не фатальны;
  • расположение датчиков правильное. Отклонения кривых совпадают, изображение виртуальной модельки повторяет перемещения реальной. Ничего никуда не плывет со временем.

нипонятна почему так. на 1.7 подобного не замечал. Вечером скрин ПИДов выложу )

upd: ах да, тут кто-то еще serial LCDшками интересовался. Глянул на спаркфане - дороговато будет и ждать надо. У меня уже была LCDшка. Стало быть надо платку было сваять serial -> parallel. Если глянуть в ардуиновскую IDE, то там в примерах (Examples -> LiquidCrystal -> SerialDisplay фактически уже есть код для этого преобразователя. Облом в том, что он отображает только одну строчку. Прямо сейчас не могу вспомнить, но дописал буквально пару строчек кода, чтобы LCDшка заработал корректно. Если интересно, попытаюсь найти. Собсно сам код занимает 3кбайта + загрузчик. Так ш на atmega8 пойдет только так, если, конечно, вы не считаете, что для таких нужд использовать мегу8ю вообще транжирство. Зато все можно собрать чуть меньше, чем за вечер. Проверял, работает 😃

VitaliyRU
DemidSPb:

Цитата Сообщение от mahowik Посмотреть сообщение в мультиви “Д” параметр другой… вот пожалуй 2 луШШых ссылки: www.rcgroups.com/forums/showthread.php?t=1375728 www.rcgroups.com/forums/showp...postcount=7460 Вот кто бы адекватный перевел бы это на русский применительно к мультивии…

Перевести не переведу, но покурив код… Обычный там “Д”. Отрицательный был в бородатых версиях типа 1.3 и т.п.
Еще одна особенность. В вии при расчете дифференциальной составляющей(а эта составляющая размерности углового ускорения)учитывается ускорение не за один шаг цикла а усредненное за 3 шага. КМК это сделано по 2 причинам… Хотя зачем на самом деле, я естественно без понятия 😃)
что бы не было деления на переменную(увесистая вещь для проца, да и получится черти что, все расчеты то целочисленные), а усердняя за несколько шагов длительность шага цикла(Cycle time в GUI) можно принять const = деление не нужно. Это будет тоже ускорение, но в безразмерной величине.
И что бы тряска коптера так не влияла, как известно “Д” капризное к вибрациям.
В общем, на мой взгляд, код там как в классическом PID регуляторе, только чуть оптимизированный под конкретную задачу.

nsk-racer

Бросил пока затею с мегой, теперь новая проблема, Регули пищат моторы дрыгаются на месте, на KK контроллере всё нормально работает, в чём дело?

с пульта отдельно через приёмник калибруется и работает

nsk-racer

Опытным путём было выяснено что проблема в регулях, регули Turnigy Trust 45A. Подцепил ради интереса контроллеры турниги плюш 18А, с ними всё нормально работает, а с траст писк и дёрганье, при том что пищит чаще если газ на всю, если минимум реже. В чём дело?

sulaex

попробуйте на апе газ ниже настроить

nsk-racer

Я триммером убавлял газ всё равно, а вот если сделать минтротл ниже 1000, то при включении в полётный режим, моторы не пищат, пока тротл не станет выше 1000, потом как раньше. Пробовал калибровать отключая питание моторов во время полётного режима, потом включал их обратно при полном газе, несколько пытались калиброваться, но только на старой прошивке версии 1.7, на 1.9 вообще никакой реакции нету!

mahowik
VitaliyRU:

Перевести не переведу, но покурив код… Обычный там “Д”

мляяя… вот лень хотябы заснуть в гугл транслейт 😉 почитайте ветку… ни разу он не классик… я тут уже ни раз приводил ссылки на легкое-доступное чтиво про ПИД регули…

VitaliyRU:

И что бы тряска коптера так не влияла, как известно “Д” капризное к вибрациям.

ну не путайте народ не разобравшись… к вибрациям чувствителен “И” параметр… т.к. это интегрирование… суммирование по другому… т.е. если суммировать шум/вибрации в цикле, это приводит к дрейфу системы в произвольном направлении…

VitaliyRU:

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

не совсем так:

  1. для акро мода это PID
  2. в случае левел мода это комплексный PI-PD

www.multiwii.com/forum/viewtopic.php?f=7&t=905&sta… -

pidcontrol.narod.ru - вот оч. понятная статейка про классик ПИД регуль

з.ы. “Д” параметром в мультиви можно регулировать скорость системы в целом… хотите плавности и мягкости, подымайте его до 40-50, но при этом он уменьшает влияние “П” параметра, потому его надо тоже увеличивать пропорционально… мои любимые ПИД-ы для акро 7…9-0.03-40

tda2030

nsk-racer, на каком-то из форумов читал, что регули вообще желательно калибровать, подключив вход к приемнику напрямую. Я именно так и делаю.
но можно еще и через посредника в виде multiwii. Про такое тоже читал, но не пробовал

VitaliyRU
mahowik:

мляяя… вот лень хотябы заснуть в гугл транслейт почитайте ветку… ни разу он не классик… я тут уже ни раз приводил ссылки на легкое-доступное чтиво про ПИД регули…

Видел я эту ссылку. Родная библиотека PID от arduino такая же как и мултивии, к слову говоря, там D вычитается.

mahowik:

ну не путайте народ не разобравшись… к вибрациям чувствителен “И” параметр… т.к. это интегрирование… суммирование по другому…

Вообще-то наоборот 😃.
Вибрация суть гармоническое колебания и сумма за n-ное время даст 0. Но вибрация это плохо и на практике дрейф будет, т.к. интегрирование дискретное и ошибка накопиться.
А D это производная от скорости, там “случайные” значения угловой скорости очень не желательны. Т.к. вот воходные данные для D это угол наклона касательной к той синусоиде от гармонических колебаний. Т.е. в произвольный момент времяни D этот может иметь практически случайные значения.

mahowik:

з.ы. “Д” параметром в мультиви можно регулировать скорость системы в целом… хотите плавности и мягкости, подымайте его до 40-50

С моими пропами с ХС он этого не переживет. Если Д сделать больше 20 - его трясти начинает.

mahowik:

но при этом он уменьшает влияние “П” параметра, потому его надо тоже увеличивать пропорционально…

С этим согласен(полностью разобрался уже позже), с дугой стороны обратного я и не утверждал.

nsk-racer
tda2030:

nsk-racer, на каком-то из форумов читал, что регули вообще желательно калибровать, подключив вход к приемнику напрямую. Я именно так и делаю.
но можно еще и через посредника в виде multiwii. Про такое тоже читал, но не пробовал

я пробовал калибровать споиощью приёмника, калибруется и работает, но подключаю потом их к ардуине и всё привет, пищание

aleksas
nsk-racer:

я пробовал калибровать споиощью приёмника, калибруется и работает, но подключаю потом их к ардуине и всё привет, пищание

Из моей практики: У меня аппаратура 2,4Гц. Откалибровал 4 регулятора через приемник, подрубаю к ардуине все регуляторы пищат. Долго ломали головы с другом, несколько раз калибровал. Результат 0. Потом взяли аппаратуру 40мГц. Подрубил к приемнику, откалибровал, все заработало. В чем дело так и не понял.

woddy

я бы грешил на помехи по питанию. как питание включено? если ардуина “большая” то можно на неё питание прям с батареи (2s или 3s) подать, на круглый разъем. а приёмник попробовать запитать от ардуины.
надеюсь провода питания с драйверов не соединены между собой?

nsk-racer
woddy:

я бы грешил на помехи по питанию. как питание включено? если ардуина “большая” то можно на неё питание прям с батареи (2s или 3s) подать, на круглый разъем. а приёмник попробовать запитать от ардуины.
надеюсь провода питания с драйверов не соединены между собой?

я пробовал подавать питание прям с батареи на круглый разъём, приёмник запитан от ардуины. Пробовал разные схемы подключение, пробовал питать ардуину от регулей и приёмник тоже, всё бестолку. Как понять провода питания регулей не соеденены между собой? Ну они все подлючаются к колодке из которой выходят провода на АКБ. По такой же схеме другие регули работают отлично, только эти бесятся. И ещё раз повторюсь на KK контроллере они работаю нормально и от пульта тоже, проблема только на ардуине. Другой аппы проверить нету, но думаю дело не в ней, ведь от этой же аппы регули другие нормально калибруются и потом работают с ардуиной

woddy

я про сигнальные(тонкие) провода от регулей спрашивал. вы знаете что +5в между собой соединять нельзя?

кстати как вариант может батареи не хватает…

nsk-racer
woddy:

я про сигнальные(тонкие) провода от регулей спрашивал. вы знаете что +5в между собой соединять нельзя?

кстати как вариант может батареи не хватает…

Конечно, каждый отдельно подключён на свой вывод в ардуине. Но ведь на ардуино в итоге они объеденяются, разве нет? Там же VCC и GND общие вроде как. Батарея 3s заряжена на всю, от блока питания точно так же всё

woddy

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

nsk-racer
woddy:

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

Зачем это нужно?? У меня другие 4 регуля работают и так отлично, да и эти на куке по этой же схеме работают. Ради интереса завтра попробую такой вариант 😃

woddy
nsk-racer:

Зачем это нужно??

напряжения на +5в немного разные (± погрешность). и при таком включении регуль с самым высоким напряжением будет вынужден питать все остальные. это в лучшем случае. в худшем это нештатные режимы работы 5в стабилизаторов в которых не гарантировано ничего (включая перегрев и выход из строя). зависит от схемы конкретного стабилизатора примененного в регуляторе.

VitaliyRU
aleksas:

Из моей практики: У меня аппаратура 2,4Гц. Откалибровал 4 регулятора через приемник, подрубаю к ардуине все регуляторы пищат. Долго ломали головы с другом, несколько раз калибровал.

А приемник случайно не китайский 6ти канальный спектрум?
У меня сигнал с таким примником вообще не видела. Поменял на другой тоже 2.4 и все заработало.
Хотя регули и сервы с ним работали.

kedrikov
VitaliyRU:


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

А что такое “Motor Arm on TRI” и “Trim ACC” и при каких условиях выполнятся??

devv
kedrikov:

что такое “Motor Arm on TRI”

Ответ был уже в теме

kedrikov:

“Trim ACC”

Я так понимаю триммирование акселя.