MultiWii

Владимир#
appolinari:

Вылетает программа при компиляции.

Что у вас там не то творится.
Вот в такую hobbyking.com/…/__27109__MultiWii_Lite_V1_0_Flight… только что попробовал залить. Без проблем! Смотрите что за ошибки, может в чем другом дело.

Alex1888:

видимо, особенность прошивки.

Что могу посоветовать. Разберите всё, оставьте голую платку и компьютер и проверяйте. Крутится должно, НО только после арма.

appolinari
Владимир#:

Что у вас там не то творится.

Вия заливаю версии 2.3 … Может тут что то не так?

2 Alex1888, возможно у вас что то напутано в файлах прошивки.
Скачайте мультивий заново, удалите старый, разархивируйте новый.
Очистите EEPROM, залейте мультивия по новой.

intel-1
appolinari:

2 Alex1888, возможно у вас что то напутано в файлах прошивки. Скачайте мультивий заново, удалите старый, разархивируйте новый. Очистите EEPROM, залейте мультивия по новой.

Еще могу посоветовать лить прошивку не через консоль Arduino, а напрямую .hex заливать через программатор например USBasp, он все почистит и нормально прошивку зальет.

Владимир#
appolinari:

Вия заливаю версии 2.3 … Может тут что то не так?

Попробовал 2.3, тоже без проблем.

appolinari:

Очистите EEPROM, залейте мультивия по новой.

Да,да,да это обязательно!

serenya

Датчики можно проверить i2c сканером playground.arduino.cc/Main/I2cScanner. Только придется полазить по даташитом на датчики установленные у Вас для выяснения их адресов.

intel-1
bond62:

да неправильно реагируют . для начала установите коптер на ровную горизонтальную площадку. откройте MultiWiiConf. ( для этой прошивки) включите примерно 10 секунд его не трогайте Потом калибровка ACC потом калибровка компаса ( крутить на 360 градусов) можно перед началом калибровок нажать сброс (все делается из MultiWiiConf ) Перед заливкой eeprom чистили? коптер мордой на север . приподняли коптер и смотрим( в MultiWiiConf) на компас при вращении по яву как он реагирует. повернули на 90 градусов и компас должен показать поворот на 90 градусов если убегает то скорее всего оси X и Y не совпадают.( надо несколько раз попробовать от калибровать) при наклоне вперед ( по питчу) как реагирует горизонт (при наклоне вперед полоска горизонта уходит ввверх) и компас ( не должен убегать) . если все адекватно то тогда арминг газ на половину выставить что бы нагляднее было видно. и наклоны в конфиге при наклоне вперед переднии движки убыстряются ( импульс увеличивается) смотрим в конфиг и слушаем звук от движков. все это удобнее проделывать через блютуз. если в конфиге правильно реагируют а ускоряются не те движки то ошибки в разводке платы.

Собственно поигрался я со своим коптером. Выяснил следующее:

  1. Коптер правильно реагирет на стики, правильно запускает обороты двигателей.
    https://youtu.be/aTiAJbWXbJg
  2. В GUI тоже правильно реагирует на наклоны, горизонт плавает в нужные стороны.
  3. Подключение двигателей тоже правильное, на слух они правильно реагируют на стики.
    и 4-ое двигатели никак не реагируют на гироскоп.
    https://youtu.be/uX9cBG0fpxA
    Компас и гироскоп откалибровал. Не помогло.
Владимир#
serenya:

Датчики можно проверить i2c сканером

Так это вроде как раз и находит адреса устройств а не проверяет сами устройства. Или я не понял, тогда можно подробнее.

intel-1:

4-ое двигатели никак не реагируют на гироскоп

У вас на видео сильная трясучка. Сделайте тоже самое только с четкой фиксацией по наклонам.
P.S. Все равно не понимаю зачем вам раскоментировнные дефайны. Плата да, самодельная. Но датчики стоят в одной плоскости по одной оси. Плата наверняка лежит а не стоит.

Alex1888
serenya:

Датчики можно проверить i2c сканером playground.arduino.cc/Main/I2cScanner. Только придется полазить по даташитом на датчики установленные у Вас для выяснения их адресов.

Тож прошу объяснить. И куда эти адреса потом вводить?
Я так залил этот сканнер на Crius - получил “i2c devices not found”.

serenya
Владимир#:

Так это вроде как раз и находит адреса устройств а не проверяет сами устройства

Именно, надо ведь хотя бы понимать видит ли плата датчики или нарушен где-то контакт.

Alex1888:

Тож прошу объяснить. И куда эти адреса потом вводить? Я так залил этот сканнер на Crius - получил “i2c devices not found”

Их вводить никуда не надо, просто сравнить с даташитом что-бы убедиться что полетник правильно видит правильные датчики. То что он их не видит - печаль, надо искать почему.

intel-1
Владимир#:

У вас на видео сильная трясучка. Сделайте тоже самое только с четкой фиксацией по наклонам. P.S. Все равно не понимаю зачем вам раскоментировнные дефайны. Плата да, самодельная. Но датчики стоят в одной плоскости по одной оси. Плата наверняка лежит а не стоит.

К сожалению у меня нечем его зафиксировать по осям.
Да, датчики то на одной оси, но они не правильно расположены. Например наклоняешь коптер вперед, а в GUI горизонт уходит вправо. Поэтому мне и пришлось изменять оси вращения.
Мне не понятно почему двигатели не реагируют на гироскоп? Ведь в GUI все датчики нормально отрабатывают.

Владимир#
Alex1888:

получил “i2c devices not found”.

Да это плохо! Должен писать найден на таком то порту, найден на таком то порту. Поскольку терять уже нечего рекомендую всё же разобрать и работать с голой платой, возможно влияние внешних устройств. Кстати, вот на вашем скрине почему газ на 40%?

intel-1:

Мне не понятно почему двигатели не реагируют на гироскоп? Ведь в GUI все датчики нормально отрабатывают.

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

intel-1:

но они не правильно расположены

Ну а просто плату на 90 градусов повернуть?

intel-1

Ну вот что то начинает получаться. Я отключил компас и оставил только одну строчку:
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -Y; accADC[PITCH] = -X; accADC[YAW] = Z;}
Остальные закомментировал. Коптер начал взлетать:) перестал переворачиваться, но при этом он постоянно вращается параллельно полу и его сносит в одну сторону. Это из-за отключенного компаса?

Владимир#:

но они не правильно расположены

У меня датчики расположены в разные стороны, поэтому поворот платы не исправит проблему.

Владимир#
intel-1:

Это из-за отключенного компаса?

Нет, просто летать компас нафиг не нужен.
И если у вас направление осей не совпадает поидее нужно X|Y местами менять не +/-

intel-1
Владимир#:

Нет, просто летать компас нафиг не нужен.

А из-за чего вращение? Нужно калибровать акселерометр? Я думал что за положение коптера в пространстве отвечает компас.

Alex1888
Владимир#:

Да это плохо! Должен писать найден на таком то порту, найден на таком то порту. Поскольку терять уже нечего рекомендую всё же разобрать и работать с голой платой, возможно влияние внешних устройств. Кстати, вот на вашем скрине почему газ на 40%?

40% - наверное, просто стик был поднят в это время…

Короче, все отсоединил, подключил голую плату к компу, и… все приборы работают, i2c ошибок нет! Чудеса? 😃

А также:

I2C device found at address 0x1E !
I2C device found at address 0x68 !
I2C device found at address 0x77 !

А я уже боялся, что спалил что-то походу:)😃

intel-1
Alex1888:

Короче, все отсоединил, подключил голую плату к компу, и… все приборы работают, i2c ошибок нет! Чудеса?

Встречал я такие “чудеса”. Собираешь системный блок компьютера, все засунул в корпус, подключил, запускаешь и ничего не работает. Все вытаскиваешь и собираешь просто на столе и все работает:) Короче просто микротрещина в плате. При установке в корпус происходит деформация платы и контакт пропадает. Поэтому я и говорил что нужно прозванивать дорожки. С такой платой не хорошо летать.

Владимир#
intel-1:

Я думал что за положение коптера в пространстве отвечает компас.

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

Alex1888:

Короче, все отсоединил, подключил голую плату к компу, и… все приборы работают, i2c ошибок нет! Чудеса?

А я вам на это уже не раз намекал.

Alex1888
intel-1:

С такой платой не хорошо летать.

Может, BEC регуля неправильное напряжение какое-то подает?

Владимир#:

А я вам на это уже не раз намекал.

Ну ок, только пока непонятно, куда копать дальше 😃.

Владимир#
intel-1:

Встречал я такие “чудеса”. Собираешь системный блок компьютера, все засунул в корпус, подключил, запускаешь и ничего не работает. Все вытаскиваешь и собираешь просто на столе и все работает Короче просто микротрещина в плате. При установке в корпус происходит деформация платы и контакт пропадает. Поэтому я и говорил что нужно прозванивать дорожки. С такой платой не хорошо летать.

Тут не факт. Такие “чудеса” тож часто ловил в частности на сборке компов. Но частенько они из разряда западло. Когда хочешь сделать всё красиво и аккуратно отвлекаешься от технической стороны. А иногда это просто наказание “свыше” за то что все собрал окончательно, не проверив перед “упаковкой”.

Alex1888:

Ну ок, только пока непонятно, куда копать дальше .

Думаю нужно подключать поэлементно и проверять на каждом этапе. Может есть какие косяки, типа развязки по питанию.

intel-1
Alex1888:

Может, BEC регуля неправильное напряжение какое-то подает?

Он может его просаживать. Нужно мерить.

Alex1888:

Ну ок, только пока непонятно, куда копать дальше .

А что тут не понятно? Если на столе все работает, то ставьте на коптер и начинайте постепенно подключать всех потребителей и смотреть, анализировать. Сначала просто контроллер пустой подключить ипосмотреть, потом двигатели, потом приемник.

Владимир#:

Тут не факт. Такие “чудеса” тож часто ловил в частности на сборке компов. Но частенько они из разряда западло. Когда хочешь сделать всё красиво и аккуратно отвлекаешься от технической стороны. А иногда это просто наказание “свыше” за то что все собрал окончательно, не проверив перед “упаковкой”.

Да, и начинаются танцы с бубном. Фаза луны не так совпала:)

Alex1888
Владимир#:

Думаю нужно подключать поэлементно и проверять на каждом этапе. Может есть какие косяки, типа развязки по питанию.

Сейчас BEC померил, вроде дает как надо, ок. 5V. К сожалению, точнее не могу китайским ширпотребом замерить.
А не подскажете, одновременно подключать питание от регуля и к компу по USB можно? Извините за дурацкий вопрос.