OSD на ATmega1281

Иван
msv:

Буферить надо аж три линии, проще наверное какую-нибудь 74LVC125AD влепить придется…

это 3 полевичка и 6 резисторов, по разводке всё оч компактно, так же делал на микрухе PCA9306D тож ничего так НО! кроме самой ее пришлось ещё доп резисторы впаять… выигрыш итоговый я не заметил:) с полевичками - зашёл в магаз купил самые простые смд и всех делов.
а смикрой в чём плюсы?

msv
Иван:

а смикрой в чём плюсы?

Дык собственно вместо 3 полевиков и 6-ти резисторов один корпус SOT108… Даже в нашем весьма не дешевом киоске 8р. Вот только развести в одном слое пока не получается…

ubd

Вот только развести в одном слое пока не получается…

Чувствую, просится новая версия платы на заводе…

ubd

Блин я свой АП, на новые платы перенёс уже, а тут бародатчики прикручиваются, там переделок много. Сопли не хочется делать…

Иван
msv:

Дык собственно вместо 3 полевиков и 6-ти резисторов один корпус SOT108… Даже в нашем весьма не дешевом киоске 8р.

это аргумент:))
Сергей, поправьте если не прав - можно ведь перенести от pd0, pd1 на pe6, pe7 ноги и тогда шина TWI освободится, по коду вроде не сильно чего измениться?

msv

Да, наверное так можно… Только настроить порты и прерывания.

korall

Собрал пока только IMU, но уже на этом этапе появились проблемы,IMU не проходит калибровку и квадрат в Test_imu сам бесконечно крутится,при вращении платы руками квадрат ведет себя вполне адекватно , повторяет углы наклона. Перепробовал все выложенные в теме варианты прошивок и везде похожая картина (за исключением тех ,что под другой кварц заточены). Пробовал покрутить параметр Accel gravity на глаз разницы не видно, при изменении Gyro gain меняется скорость само-вращения квадрата , при сильном увеличении параметра Accuracy до 0.1, калибровка проходит но дрейф остается как и был (тоесть квадрат также продолжает сам медленно вращатся). Изменение остальных параметров не дают видимых изменений.
Как я понимаю IMU у меня не совсем работает,или я просто не могу его правильно настроить и собирать осд к нему мне пока безполезно.
Подскажите в чем может быть проблема, может у меня сами датчики бракованные ? как это можно проверить ?

Выглядит это вот так:

П.С.
А так хотелось на новогодние каникулы облетать этот чудесный автопилот,а тут такой облом, новые сенсоры уже не успеют дойти:(.

Иван

какой у вас комплект? можно фото того что у вас? лично у меня с иму проблем не было кроме тех которое я сам внёс и сам же поправил:)

Вахтанг
msv:

Буферить надо аж три линии, проще наверное какую-нибудь 74LVC125AD влепить придется…

Этот не подойдет. Это всего -то шинный буфер с третьим состоянием, уровни не меняет. У микросхемы одно питание.

Иван:

так же делал на микрухе PCA9306D

А вот этот нормально, имею опить его эксплуатации.

ubd

Подскажите в чем может быть проблема, может у меня сами датчики бракованные ? как это можно проверить ?

А плату датчиков, ту купили? Дайте ссылку какую плату купили.
Я покупал вот эту:
www.ebay.com/itm/…/180893188799
Сделал 3 экземпляра, все работают. Правда все три пришлось настраивать. Но вот так вот ни один не плыл.

Вот такая инструкция по настройке есть? :

Accel Gravity- коэффициент для акселя. Для подстройки надо смотреть на первую цифру Debug. Эта цифра показывает отклонения от 1G по показанию акселя. 100 в этом поле, соответствует намерянному и насчитанному 1g. Отклонение ±0.5g покажет 0. Те. подбирая Accel gravity нужно добиться максимального значений при разных ориентациях платы без ускорений. Очень хорошо если получится 95-98.

Gyro gain -коэффициент для гиро. Тут делаем такую проверку: плавно но быстро поворачивает имушку на 90 град скажем по крену. Смотрим как ведет себя 3d-моделька в Test_IMU. Возможно два варианта - модель недоповорачиват до положенного угла и видим медленное “доползание” за счет коррекции по акселю. В этом случае следует увеличить этот коэффициент. Во втором случае все наоборот: “переповорачивает”- уменьшаем.
В общем для нормальной работы системы стабилизации это все ловля блох…, и не так уж принципиально… Но если есть желание и время, можно поиграться…

KP_RollPitch Определяют скорость коррекции матрица акселем.
Быстрая скорость есть шанс, что горизонт начнут кривить длительные линейные ускорения.
Маленькая скорость - слишком долго выправляются накопленные ошибки.

KI_RollPitch Используется только на этапе калибровки IMU после каждого включения
для устранения дрейфа от гироскопов по крену/тангажу .

msv

Могу предположить, у вас на плате сенсоров попутаны оси акселя и гироскопа… Сравните с расположением микросхем на плате на которую дал ссылку выше Сергей.
В принципе лечится программно, но как это сделать мне удаленно- надо хорошо подумать…

Вахтанг:

Этот не подойдет.

Z-состояние конечно не нужно, но то что они:
“5-volt tolerant inputs/outputs, for interfacing with 5-volt logic”
“Direct interface with TTL levels”
мне показалось достаточно, что бы использовать в качестве преобразователя уровней в сторону 5->3.3В. Ну а обратно можно и напрямую включить…
PS Эх… у того же продовца, у которого чисто микруху заказал, оказывается уже есть все готовое. Надо было неспешить, поискать и не маяться с печаткой и выбором ПУ… 😦

Иван
msv:

В принципе лечится программно, но как это сделать мне удаленно- надо хорошо подумать…

со мной же прокатило:)) могу посодействоваль в лечении бага - но для начала нужна фотка проблемного комплекта

korall
Иван:

какой у вас комплект? можно фото того что у вас? лично у меня с иму проблем не было кроме тех которое я сам внёс и сам же поправил

ubd:

А плату датчиков, ту купили? Дайте ссылку какую плату купили.

Фото того что у меня
брал сдесь dx.com/…/gy-85-6dof-9dof-imu-sensor-module-for-ard…

ubd:

Вот такая инструкция по настройке есть? :

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

msv:

Могу предположить, у вас на плате сенсоров попутаны оси акселя и гироскопа… Сравните с расположением микросхем на плате на которую дал ссылку выше Сергей. В принципе лечится программно, но как это сделать мне удаленно- надо хорошо подумать…

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

Назрел еще такой вопросик, в проге imu_test при нажатии кнопки Trend появляется окно с тремя типа графиками, у меня они пустые, что это? так и должно быть?

ubd

Тренд работает когда пройдёт инициализация ИМУ. У вас инициализация не проходит.

Может проц поменять? Раз с той и с этой платой датчиков крутится моделька. А проц то один.
Такое ощущение что наводиться что то на АЦП…

Я сделал три экземпляра иму, и все работали одинаково, ни у одной не крутилась моделька. Она крутится только по азимуту, т.е. по компасу, но медленно. КАК бы компас всё ровно не используется, на это можно забить.

msv

Да, на вид платка правильная…
Попробуйте такой test_imu.
Добавил чекбокс “Accel test”. При включении “Debug mode” и этой галочки расчет ориентации будет только на основе акселя. Те. модель должна показывать ориентацию по крену и тангажу без всяких уплываний.

korall
ubd:

Может проц поменять? Раз с той и с этой платой датчиков крутится моделька. А проц то один. Такое ощущение что наводиться что то на АЦП…

старая версия была сделана на макетке соответственно там и проц(еще из старых партий без буквы А) и кварц и сама плата были другими, питается все это у меня от USB порта ноутбука, но пробовал и от акумулятора через КРЕНку,по тыкал осцилографам в места питания сенсоров и проца,возбуждений и генераций вроде не обнаружил.

msv:

Попробуйте такой test_imu.

Вот как то так:

Попробовал дла проверки прицепить эти сенсоры к MultiWii, так там все с ними работает.

Ничего не понимаю ,чертовщина какая то:wacko:

msv

Явно с осями какая-то путаница… Сергей а прошивку сами компилировали или готовую заливали?
Попробуйте эту.
Если ничего не измениться, добавлю вывод данных акселя, будем разбираться…

korall

Те что на видео залиты готовые. Сам пробовал компилировать старую версию ,все работало одинаково.

msv:

Попробуйте эту. Если ничего не измениться, добавлю вывод данных акселя, будем разбираться…

нет никаких изменений.

msv

Ок. Продолжаем разговор…
Грузите это: test_imu.
Добавил вывод акселя по осям.
В горизонте должны быть цифры: 0, 0, 100.
Нос- широкая сторона платы с разъемами, если смотрим с хвоста на нос правый крен: 0,100,0
Кабрирование 90град: 100, 0, 0.

korall

Верх платы сенсоры вверху?

В горизонте : -126, -20, 630
Правый крен:-126, -136, 530
Левый крен: -130, 91, 530
Кабрирование: -240, -22, 530
Пикирование: -10, -20, 520
в горизонте кверх ногами: -126, -25, 420
Это вот с этой прошивкой

msv:

Попробуйте эту.

msv

Да, сенсоры вверху.
Готов сдаться…
Вверх ногами в горизонте?

korall

отредактировал предыдущий пост добавил показания вверх ногами.
По тесту вроде как оси правильно расположены, только показания смещены от нуля сильно по X и Z.
Может можно в настройки добавить параметр смещения (типа ручной коректеровки нуля) ?

А вот сдаватся не надо, на Вас вся надежда

Вот в доках на ADXL 345 что то про смещение:

это не оно случаем?

Получше рассмотрел свои цифры ,оказалось что ось Y в инверсии еще в добавок.

korall

Добавил в код
if(err) return err;
err=TWI_SendByte(ADXL345_ADDRESS<<1, 0x1e, 0x4f); //Х_offset
if(err) return err;
err=TWI_SendByte(ADXL345_ADDRESS<<1, 0x1f, 0x10); //Y_offset
if(err) return err;
err=TWI_SendByte(ADXL345_ADDRESS<<1, 0x20, 0x80); //Z_offset

по Z не хватает расхода чтобы дотянуть до нуля 😦
и незнаю как инвертировать ось Y

теперь в тесте стало так :
В горизонте : 0, 0, 430
Правый крен:0, -100, 320
Левый крен: 0, 110, 320
Кабрирование: -110, 0, 320
Пикирование:110, 0, 320
в горизонте кверх ногами: 0, 0, 220

Иван

на тесте с мультиком - компас адекватно реагирует?. есть ли варианты в ближайшем доступе другой платки с этими же датчиками? просто, насколько я помню, когда я свою иму паял у меня гир повёрнут по часовой стрелке на 90 гр. и вроде адекват был… может непропай на плате? по ножкам прерываний например?