ArduCopter Mega: порт на обычную Arduino (тестим)
пуллапы тут непричем , та плате стоит pca9306 и резюки припаяны …
AP_ADC_test.pde компилится без ошибок , но ничего не отдает в компорт …
AP_IMU.pde из Examples сбрасывается и выдает Doing IMU startup…
после чего в след строке опять пишет Doing IMU startup накладывающиеся друг на друга …
видимо потому что стоит мега 2560 (1280 чипов уменя нет) …
смотрел multiwii 1,8 … там какраз добавилась поддержка FFIMU … на моей меге чота тоже незапустился …
придется садиться собирать нану 328 под multiwii … благо 328р имеются …
ЗЫ: таки запустил wii … все датчики работают отлично на 400 кгц … а вот с пиратом пока облом …
Не получается подключиться к платке используя APC220 если установлен CLI режим
Беспроводку действительно нельзя использовать в CLI. Этот режим напрямую меняет типа “жизненно важные” параметры системы, и доверять простой текстовый режим ненадежной беспроводке - значит, подвергаться.
Протокол MAVlink, используемый в наземной станции, имеет пакетную структуру, CRC и проч. защиту. Но он ничего общего не имеет с терминалом.
Беспроводку действительно нельзя использовать в CLI. Этот режим напрямую меняет типа “жизненно важные” параметры системы, и доверять простой текстовый режим ненадежной беспроводке - значит, подвергаться.
Протокол MAVlink, используемый в наземной станции, имеет пакетную структуру, CRC и проч. защиту. Но он ничего общего не имеет с терминалом.
Хм… А я уже кучу кода поменял и сделал чтоб работало и там и там, по ка только тестирование подключил. Жаль, но я не подумал, что могут теряться пакеты, думал модем как-то обеспечивает целостность. Пока вроде работает нормально, но после настройки уровня верну нормальную прошивку.
все датчики работают отлично на 400 кгц … а вот с пиратом пока облом …
вот и у меня последний раз так же было, пока пулапы не врубил 😉
в Examples есть ADC test, вроде как мучает только гиру с акселем (и наверное сонар?)
еще можно multiwii залить попробовать
а еще у меня датчики лучше заработали когда добавил (аксель молчал, хотя раньше работал отлично):// ********************* // I2C general functions // ********************* #define I2C_PULLUPS_DISABLE PORTC &= ~(1<<4); PORTC &= ~(1<<5); #define I2C_PULLUPS_ENABLE PORTD |= 1<<0; PORTD |= 1<<1;
и далее
void i2c_init(void) { I2C_PULLUPS_ENABLE
А зачем подтягивающие резисторы включать? На плате же есть по 4 килоома. Впрочем с 20 ком подтягивающими и 4 ка плате получится меньше 4 ком. Может фронты будут покруче, что есть полезно…
А зачем подтягивающие резисторы включать?
у меня самопальные датчики - стали лучше работать (точнее вообще стали работать)
Понятненько… Но насчет фронтов, это нужно попробовать. А вдруг лучше станет! Хотя сомнения есть. Как совмещаются аппаратные и программные пуллапы в параллели…
вот и у меня последний раз так же было, пока пулапы не врубил 😉
посмотрел осцилом вроде фронты нормальные …
со стороны датчиков (3,3в) стоят по 10к - вполне достаточно … со стороны проца (5в) 5к впринцепе тоже достаточно …
пуллапы в проце врубал … бестолку …
завтра спаяю для экспериментов ишшо одну плату без LLC (PCA9306) … похоже вней дело …
посмотрел осцилом вроде фронты нормальные …
со стороны датчиков (3,3в) стоят по 10к - вполне достаточно … со стороны проца (5в) 5к впринцепе тоже достаточно …
пуллапы в проце врубал … бестолку …
завтра спаяю для экспериментов ишшо одну плату без LLC (PCA9306) … похоже вней дело …
А у Вас Ардуина 3.3 вольтовая?
А у Вас Ардуина 3.3 вольтовая?
5в на меге 2560 … с выключенными пуллапами в проце и резисторами на 3,3в буду пробовать … надеюсЪ что не сожгу датчики …
зато точно выясню косяк в проге или в LLC … а может партия акселей кривых попаласЪ …
Я так пробовал на плате стик 9 от Спаркфана… Ничего хорошего. Может и не рассогласование уровней было виновато, но когда поставил самоделку на транзисторах для согласования уровней, все наладилось. Если бы не проблемы с компасом на той плате! Но для Мегапирата купил Аллинон, там тоже ЛЛС на транзисторах. И все путем.
Вроде в Ардуине есть возможность задать внешнее опорное напряжение на AREF ногу. И есть функция увтановки опорного напряжения. Вот только не уверен, что это релевантно для шины I2C. Вроде только для цифровых входов-выходов. Иначе кто бы стал городить согласование уровней, если можно уровень выставить опорным напряжением?
Мои настройки для стабрежима рол, питч: P=0,1 I=0,08 D=0,05
Попробовал на таких ПИДах полетать, после взлета - сразу в расколбас уходит.
Вчера купил профиль алюминиевый 10x20. Попробую сделать новую раму с удлиненными лучами выходящими за винты (ну что бы не ломать их).
И еще, я делал следующее: Держа в руках, давал газ 50% и пробовал наклонять в разные стороны коптер, так вот что то я не замечаю, что бы он сопротивлялся моим издевательствам. Реакция у него есть какая то, но то ли не в ту сторону, то ли слишком вялая.
С другой стороны, если стиками начать дергать, то явно чувствуется что он пытается повернуть в нужную сторону.
Вроде в Ардуине есть возможность задать внешнее опорное напряжение на AREF ногу
Это опорное напряжение для аналоговых входов (ADC).
Подскажите, как подключаются моторы, на пошивке 2.0.38? Я заметил в планере появились дополнительные колонки (или как их там) выходов на моторы. В частности, меня заинтересовали колонки 7 и 8. Когда делаю арм моторам, и пытаюсь рулить креном и тангажом, в первых четырех колонках значения меняются только у двух моторов. А должны вроде как по-парно у всех четырех. А по-парно получается если использовать 3, 4, 7, 8 колонки. Отсюда, собственно вопрос: где на ардуине эти выходы? Написал сумбурновато, но вроде смысл передал 😃
Вот решил и я попробовать пирата. У меня ардуина 2560 и allinone с gps. Подключил ардуину и сенсоры, пока без приемника и движков. Так вот если подключен gps, то не получается подключится через планер. Хотя в терминале gps исправно выдает координаты. В чем может быть дело?
Кажется понял почему не коннектится с гпс. Заметил это в терминале. Если подключен гпс, то показания test adc через некоторое время подвисают. Продолжает работать только test gps. Такое ощущение, что вся i2c шина зависает. Попробовал подключиться через планер сразу после нажатия на reset на ардуине. Нормально подключается, но через пару секунд показания горизонта останавливается, обновляются только данные гпс.
Кто что думает по это поводу, как можно решить эту проблему?
Кто что думает по это поводу, как можно решить эту проблему?
Возможно, проблемы с питанием или логическими уровнями.
Возможно. Но познания у меня в этой области весьма посредственны, поэтому может кто подскажет что стоит попробовать сделать в этом случае?
Странно то, что gps подключается через tx-rx, а виснут при этом датчики на i2c. Если же отключить gps, то всё работает как часы сколь угодно долго.
И ещё у кого есть allinone с gps, посмотрите как у вас припаян чип гпс. На моем две ножки спаяны вместе, хотя на фотках, которые я видел, такого нету. Может в этом дело…
две ножки спаяны вместе
на Black Vortex так же спаяны …
посмотрите как у вас припаян чип гпс
Судя по даташиту , эти контакты и должны быть соединены.
Вы не сказали, какая у вас версия платы, на 5В или 3.3В. И как вы на нее подаете питание? Какая у вас Ардуина (желательно ссылку на описание)?
Здравствуйте все.
Большое спасибо Syberian за этот замечательный проект.
На прошивке В8 ну ни как у меня не удавалось настроить нормально PIDы.
Сломал с десяток уже винтов, начал грешить на датчики(они у меня раздельные ВМА020,itg3205,BMP085,HMC5883).
Уже расстраиваться стал 😦
Сегодня скачал прошивку 2_0_38,быстренько загрузил,настроил и пошёл попробовать.
Запустил и обалдел 😃 с PIDами по умолчанию держится замечательно.
Заснять процесс полёта пока нечем.
Надо попробовать ещё сонар прицепить, вроде говорили что он здесь работает.
Так что на моей конфигурации прошивка работает отлично.
Вот моя плата.
Кажется понял почему не коннектится с гпс. Заметил это в терминале. Если подключен гпс, то показания test adc через некоторое время подвисают. Продолжает работать только test gps. Такое ощущение, что вся i2c шина зависает. Попробовал подключиться через планер сразу после нажатия на reset на ардуине. Нормально подключается, но через пару секунд показания горизонта останавливается, обновляются только данные гпс.
Кто что думает по это поводу, как можно решить эту проблему?
Вот это очень похоже на то, с чего я начинал с allinone’ом и ардуиной бодаться… Именно так и было - секунд 10-15 в планнере работало и висло, а в CLI-режиме работало сколько угодно. Похоже я не одинок!
Как побороть пока не понял. Вернее, одно время думал, что победил это глюк. Вот так: подключил питание на allinone с трехвольтового выхода ардуины, а не с пятивольтового (хотя сама плата датчиков у меня 5-вольтовой версии). И чудо - все вроде бы как заработало. Я смог настраивать, тестировать, подлетывать. В общем - было мне счастье. БЫЛО - так как при выходе на улицу (уже писал об этом выше) у меня опять завис коптер. Сегодня это повторилось в комнате. Короче - заказываю БлекВортекс. Вот зарплату получу и…
Ну а если кто-то Вам поможет реально с этим странным случаем справиться - то попрошу поделиться рецептом. Ибо у меня лично явно не хватает познаний для самостоятельного решения. И тут я уже спрашивал ребят - но ни у кого ничего подобного не было и мне помочь не смогли…
ДОБАВЛЕНО:
(кстати, я спрашивал, почему у меня при ответах на посты все мои реплики “складываются” в один длинный пост? И мне никто не ответил. То есть это у всех так же происходит?)
Сейчас опять ковырял ветку по AllInOne на rcgroups и обратил внимание на две фразы:
Один из покупателей этой платы говорит - if we have a 5v LLC we must enable i2c pullups but I’m not sure where and how to do the mod
Разработчик (он же и продавец) ему отвечает - any All in ONE boards 3.3v or 5v have resistors for i2c and you can disable pull up for 3.3 and 5v boards.
Может именно тут “собака порылась”???
Кто-то может подсказать, где и как можно в коде убрать эти пуллапы корректно? Олег, что скажешь вообще по этому поводу - могут эти пуллапы оказывать такое влияние, что коптер “виснет”?
Вы не сказали, какая у вас версия платы, на 5В или 3.3В. И как вы на нее подаете питание? Какая у вас Ардуина (желательно ссылку на описание)?
Плата на 5в. arduino 2560, брал на ebay, описание там было скопировано с официального сайта. Ардуину питаю сейчас просто от юсб, т.к. коптер ещё не собрал. А allinone подключена на +5V ардуины.
Ещё заметил, при зависании гаснет диод, который на 13 пине.
Вот это очень похоже на то, с чего я начинал с allinone’ом и ардуиной бодаться… Именно так и было - секунд 10-15 в планнере работало и висло, а в CLI-режиме работало сколько угодно. Похоже я не одинок!
Но у меня это проявляется только если подключить gps на tx-rx. Если gps отключен, то всё работает нормально.
Romb98, Во первых, попробуйте написать разработчику AllInone, он русскоговорящий, так что без проблем поймет вашу проблему. Мне же кажется, у вас проблемы с питанием, попробуйте замерить ток, который потребляет вся ваша система, вместе с GPS и без. И еще, например у меня, ноутбук не тянет 2560 + AllInOne + приемник + Bluetooth приемник. Возможно GPS потребляет немалый ток, вот и датчики зависают. Было бы идеально посмотреть на сигналы шины i2c через осциллограф.
Тут все пробуют 2.0.38. Подскажите, надо ли допиливать прошивку, что бы она соответствовала по входам и выходам, текущей версии B8 (от Олега)?
Может именно тут “собака порылась”???
AllInOne имеет на борту PullUp резисторы, так что я не думаю, что включенные PullUp на Ардуине будут мешать.
надо ли допиливать прошивку
Не надо. Надо только выбрать тип датчиков и поменять тип рамы (по умолчанию-гекса и фиму)