Подключение 5 акселерометров и 4 лазерных дальномеров + анализ результатов. Ардуино потянет?
- Войдите на сайт для отправки комментариев
Добрый день.
Есть проект. Платформа, которая стоит на 4 независимых опорах. Надо сделать контроллер высоты + упрвление гидроприводами для её оринетации. Контроллер высоты с функцией самотестирования. Так как механические угломеры там не подойдут (пыль, грязь, вода, перепады температур). Остановились на таком варианте
1. система измерения 1: используются 5 гироскопов MPU6050. Один закреплён неподвижно на платформе и по одрному на каждой опоре. Расстояние между землёй и платформой вычитывается по углу наклона и длине наклонной опоры (теорема пифагора, все дела).
Для повышения точности измерения используется Комплиментарный фильтр на каждый датчик (программный, внутри ардуино).
2. система измерения 2: лазерные дальномеры SENS-DIST-CH1-3100 установленные вертикально в влагопылезащищённых шахтах. Эти выдают прямые показания.
Так как гироскопы одинаковые и лазерные дальномеры тоже, хотим использовать эту плату: TCA9548A
https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-brea...
Система должна довольно регулярно (от 5 раз в секунду и более) получать новые значения расстояния и сравнивать их между собой. При мелкой погрешности - не реагировать. В зависимости от положения замыкать или размыкать реле (используется плата на 8 реле - по 2 реле на опору).
Так же должнен быть механизм юстировки (путём установки платформы в нулевую точку и потом на высоту 10 см) и возможность записать и запомнить несколько рабочих положений (5 см. 10 см. 15 см.)
Справится ли одна ардуино с таким объёмом данных или стоит искать другую платформу для проекта?
И ещё вопрос - имеет ли смысл делать таким образом или есть более изящные варианты подключения данных датчиков?
Меня вот что интересует... Если Вы не можете посчитать - справится ли какая-то сферическая ардуина в вакууме с объемом вычислений, которые известны только Вам, то как программную-то часть будете реализовать? А она у вас будет гораздо сложнее, чем оценка быстродействия общения с датчиками. Ну, ответят вам "Да, справится" - что дальше?
Что-то всё больше и больше таких странных задач по автоматизации всплывает. Всем какая-то оценка вероятности реализации проекта продолжительностью в месяц нужна за пять сек.
не справится, а вот одной меги хватит, залить прошивку коптера на 4 двигательную схему, держать горизонт будет, контроллер можно взять готовый - APM-2.8 называется, гира 6000 и барометр в составе контроллера уже есть
не справится, а вот одной меги хватит, залить прошивку коптера на 4 двигательную схему, держать горизонт будет, контроллер можно взять готовый - APM-2.8 называется
А такая https://store.arduino.cc/usa/arduino-yun-rev-2 ?
не справится, а вот одной меги хватит, залить прошивку коптера на 4 двигательную схему, держать горизонт будет, контроллер можно взять готовый - APM-2.8 называется
А такая https://store.arduino.cc/usa/arduino-yun-rev-2 ?
В руках не держал не знаю, да и зачем, задача тривиальная, всё уже давно написано до нас, ПО свободное, чтобы платформа не "УНИТАЗИЛА" придётся конечно подобрать ПИДы, хотя ПО сможет сделать это и в автомате само, включив соответствующий режим
Добрый день.
Так получилось, что я пользуюсь довольно мощными компьютерами и особо не заморачиваюсь в обычной жизни за то, будет ли у меня комп тормозить или не будет. Не будет и точка.
То же самое касается простых проектов на ардуино. Там диодик подсветить, температурку измерить.
Увы, но у меня задача сильно сложнее. Я не работал с ардуино раньше и пока не знаю его возможностей. Но сейчас, пока не закуплена материальная база, есть возможность взять другие решения. Тот же Распберри например. Просто обидно было бы убить миллионы времени, прописать всё, как надо и выяснить, что железо не тянет.
Я понимаю, что возможно будет тянуть 3 ардуино. Одна обрабатывает гироскопы. Одна лазеры. Одна сводит воедино и управляет реле. Но вот усложнение элементной базы повышает риск отказа.
С другой стороны вопрос именно в обработке гироскопов так как там всё сложно. Очень чуткие датчики и ещё и надо сводить вместе показания акселерометра и гироскопа. И всё это, чтобы выяснить только изменение в плоскости X, другие две Y Z нам просто не нужны :-(
По поводу Ардуино Мега - в принципе смотрел из ардуинок в её сторону.
Это к ответу на вопрос - "А справится ли Ардуина". Ардуин - десяток разновидностей. Какая-то справится, какая-то нет. А может там еще такие требования всплывут, что специализированный контроллер будет нужен.
В проекте фишка не только и не столько в горизонте, сколько ещё и в контроле подъема над землёй. Чтобы система алярмила, когда высота будет критически маленькой или наоборот - критически большой. И, увы, это значения 5 и 45 см.
Но вот усложнение элементной базы повышает риск отказа.
Один единственный контроллер где всё ALL-IN-ONE какое тут усложнение, ПО называется Mission Planer, доступно в исходных кодах
В проекте фишка не только и не столько в горизонте, сколько ещё и в контроле подъема над землёй. Чтобы система алярмила, когда высота будет критически маленькой или наоборот - критически большой. И, увы, это значения 5 и 45 см.
Тогда +GPS и сенсор как у Mavic PRO, да и насчет ненужности других осей Вы сильно погорячились, гироскоп калибруется в трёх осях и никак по другому
посмотрел эту железяку. Много умеет, но не для нашего проекта :-(
посмотрел эту железяку. Много умеет, но не для нашего проекта :-(
Пошутили? Даже беглое знакомство с возможностями ПО для этого контроллера займёт недели две )))
ПО свободное, можно добавить свои датчики, поищите, на ютубе всё есть, там и пример как и где скачать проект, как добавить свой датчик, пощупайте, посмотрите как калибруются датчики в том числе MPU6000, как настраивются ПИДы ну и т.д.
Ардуино потянет?
А Вы потянете?
Евгений Петрович! С утра улыбнули )))
А на гидравлике самое сложное - пропорциональное управление, сталкивался
максимально только с шестипозиционным регулятором
Картинка всё же с преувеличением. Нет сравнения с количеством программистов MIT Instrumental Lab, их зарплат и пр.
Картинка всё же с преувеличением. Нет сравнения с количеством программистов MIT Instrumental Lab, их зарплат и пр.
Вы хотели сказать с преуменьшением? )))
С преувеличением тупости пользователя Меги ))
Думаю, что если этот человек лет 10 попрактикуется в условиях MIT даже за среднюю з/п, то легко сможет аквариум даже на АМеге168 запустить.
А так, за два дня с нуля аквариум засветить... Тоже определенная сообразительность нужна.
Есть такое! ТС даже не понимает, что все гиры будут выдавать, условно, одинаковый результат )))
Есть такое! ТС даже не понимает, что все гиры будут выдавать, условно, одинаковый результат )))
Так, вроде, они в проекте и не планировались.
Если судить по названию темы.
А если судить по первому посту, то ТС, вероятно, ошибся, назвав гироскопом прибор, совмещающий акселерометр с гироскопом при том, что использоваться в приборе будет только акселерометр. По крайней мере, "гироскоп" фигурирует в контексте измерения углов, а для этой цели служит именно акселерометр.
Есть такое! ТС даже не понимает, что все гиры будут выдавать, условно, одинаковый результат )))
Так, вроде, они в проекте и не планировались.
Если судить по названию темы.
А если судить по первому посту, то ТС, вероятно, ошибся, назвав гироскопом прибор, совмещающий акселерометр с гироскопом при том, что использоваться в приборе будет только акселерометр. По крайней мере, "гироскоп" фигурирует в контексте измерения углов, а для этой цели служит именно акселерометр.
MPU6000 в народе называют просто гирой
Картинка всё же с преувеличением. Нет сравнения с количеством программистов MIT Instrumental Lab, их зарплат и пр.
Ну, тут можно много тонкостей вспоминать (например, как осуществлялось руководство программой), но главное, для чего делался пост - надесь, что ТС получил ответ на свой вопрос.
Ну, тут можно много тонкостей вспоминать (например, как осуществлялось руководство программой), но главное, для чего делался пост - надесь, что ТС получил ответ на свой вопрос.
Тут я с Вами согласен. Посему и задал вопрос в первом посте. Ардуино и Алиэкспресс создает ложное представление, что инструмент абсолютно любой сложности можно легко собрать из готовых платок за доллар и натыканных в проводков. Ну там еще что-то накопипастить в код из интернета или на форуме выпросить. Делов-то - на три дня: закупка, создание, тестирование.
Кстати, касательно производительности разных ардуин - а есть где в сети сравнения именно чистой производительности тех же avr, а не просто перечисление характеристик?
Просто столкнулся с тем, что скетч, который на nano с 328p занимал грубо говоря 99% вычислительных ресурсов, на mega2560 уложился в 80% без какой-то оптимизации с моей стороны. Оптимизацией я его ужал до 67%, но вопросы замера производительности стали интересны.
Грубо прикидывал так - по контрольным точкам в сегментах кода стал суммировать время выполнение в микросекундах, и раз в секунду по отдельному счетчику смотреть, сколько за эту фактическую секунду времени занимало выполнение кода. Погрешность есть, но общая картина вполне адекватной получилась, imho.
я посмотрел как эта радость настраивается и что к ней подключается штатно. Возможно не разобрался в проекте :-) Буду смотреть более подробно.
я посмотрел как эта радость настраивается и что к ней подключается штатно. Возможно не разобрался в проекте :-) Буду смотреть более подробно.
)))
2ua6em
я посмотрел как эта радость настраивается и что к ней подключается штатно. Возможно не разобрался в проекте :-) Буду смотреть более подробно.
по поводу того, что я не понимаю, что гиры будут выдавать условно одинаковый результат - тут вопрос. Если их просто подключить, то да. А если их отъюстировать, задать точное нулевое положение и потом сравнивать расхождения с этим нулевым положением? Ведь они будут отличными от центрального гира, который стоит плашмя на платформе и для тех, что на опорах так как они стоят ребром и к тому же под углом в одной из плоскостей. Ведь тот же квадрокоптер, когда его кладут на бок - одним своим гиром догадывается, что он на боку. Так почему 5 гиров, каждый из которых в своём положении, будут показывать одно и то же?
2ЕвгенийП
Я могу собрать подобную схему на примитивных контролерах. Просто за каждый гироскоп (с акселерометром :-) ) отвечала бы отдельная плата, которая бы фильтровала данные и передавала бы уже конкретные значения угла. За вычисление высоты платформы бы отвечала отдельная плата. За сравнение первой системы и лазерных измерений - третья плата. Ну и так далее.
И вот именно многомодульной схемы бы хотелось избежать. Сразу хотелось взять аппарат, который сможет сам обсчитывать всё это.
Этот контроллер устанавливается на многие аппараты, в том числе квадракоптеры и при этом реализовано много полётных режимов, как-то режим стабилизации, режим удержания высоты и т.д. Стоит недорого. В качестве первого прототипа почему бы и нет.
Тем более все программы доступны в исходниках.
ПО в режиме стабилизации увеличивает или уменьшает обороты двигателей и вот здесь самое сложное перейти на управление гидравлическими клапанами...так как выдается сигнал ШИМ мне видится некий детектор порогового значения ШИМ включающий реле управления...
MPU6000 в народе называют просто гирой
Ну да ладно. Так почему акселерометры, имеющиеся в этих гирах (или гирях?), при разных углах опор к вертикали будут показывать одно и то же?
MPU6000 в народе называют просто гирой
Ну да ладно. Так почему акселерометры, имеющиеся в этих гирах (или гирях?), при разных углах опор к вертикали будут показывать одно и то же?
Не понял, откуда углы то разные? На наклонной плоскости углы наклона в любом месте плоскости равны.
ЗЫ
Mamba F405 For Flight Controller
Item name: F405 Betaflight Flight Controller
Input power: 10-28V (3-6S)
BEC: 5V/1.5A
MCU: STM32F405
Gyro: MPU6000
Flash: 16MB
OSD: AT7456
Mounting hole: 30.5*30.5mm
Weight: 6g
Углы разные так как вся система с 5 датчиками выглядит следующим образом (написал об этом кратко в первом посте, тут более подробно).
Датчик 1 - базовый датчик. Лежит на платформе плашмя. Отвечает за контроль положения платформы
Датчик 2 - ребром прикреплён к наклонному рычагу 1. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Датчик 3 - ребром прикреплён к наклонному рычагу 2. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Датчик 4 - ребром прикреплён к наклонному рычагу 3. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Датчик 5 - ребром прикреплён к наклонному рычагу 4. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Как следствие - при работе гидравлики угол наклона каждой ноги меняется, с ним меняются и показатели одной из осей гироскопа, приделанного к рычагу. Зная угол Датчика 2 и угол Датчика один - можно получить угол между ними. Соответственно, по теореме Пифагора можно вычислить расстояние от опоры до платфомы.
Это даст возможность выравнивать положение относительно грунта не только на горизонтальных поверхностях, но и на любых склонах.
Это даст возможность выравнивать положение относительно грунта не только на горизонтальных поверхностях, но и на любых склонах.
по моему вы перемудрили с этими датчиками, одного гироскопа на платформе более чем достаточно...
по такой схеме можно такой "унитазинг" (осциляторные колебания) получить, что вывести регулировками ПИД
не получится...на квадрокоптерах через это давно прошли, почитайте темы...
MPU6000 устанавливается и калибруется строго по осям
Ещё как в теме.
Ну, вера - вопрос интимный, а технически ... вся техническая документация, вплоть до прнципиальных и монтажных схем, доступна. Таких прибора было два - один в командном модуле, а другой - в лунном. Компьютеры были одинаковыми, но прошивки отличались (командному модулю неза-каким-фигом садиться на Луну и взлетать с неё, а лунный модуль не собирался входить в атмосферу).
Нет, на каждом из модулей был только один компьютер. Он и так был серьёзной нагрузкой на бортовую сеть электропитания.
По моему Вы стали заложником идеи, поясню:
Гироскопы можно каскадировать, при этом на платах имеем единственный вывод сигнала A0 для выборки адреса, то-есть каскадировать
можно не более 2-х устройств. Скорость обмена с одним устройством - 60 показаний в секунду, значит каскадирование приведет к увеличению погрешности. Далее, вами предлаголось снимать значения с акселерометров, а именно акселерометр хорошо работает в области больших ускорей, гироскоп - малых, за этим их в одной плате и объединили, скомпенсировать взимные недостатки. Сдедующее, устройства крайне чувствительный к металлам находящимся поблизости и немаловажное, калиброваться должно каждое устройство, для этого законченный конструктив проворачивается в 3-х плоскостях, как планируете это делать в вашем решении?
С одним гироскопом никак :-( Или я не предсатвляю, как с одним гироскопом выставить одинаковое расстояние до земли всех 4 опор на наклонной поверхности. В этом случае платформа не будет горизонтальной, она должна повторять налон поверхности, на которой стоит.
Про акселерометр и гироскоп в курсе по этому и буду применять Комплиментарный фильтр, который позволяет нивелировать одни значения относительно других.
настройка гироскопа возможна до установки на устройство. А дальше подстройка по эталонным параметрам. Допустим можно замерить углы, которые обозначают 1 см. подъёма платформы, 5 см и 10 см.
Гироскоп выставляет уровень горизонта, да посмотрите Вы ролики, к примеру настройку BetaFlight, ...контроллер квадракоптера в режиме стабилизации подает на регуляторы на 4 опоры (винты) такое напряжение, чтобы всегда был уровень горизонта, а режиме LOITER еще и удерживает заданную высоту (по барометру)
В коптере DJI для более точного удержания высоты задействуется оптический дальномер
Так в том то и дело, что мне не нужен уровень горизонта как таковой. Когда техника идёт по наклонной поверхности, с углом в 15 градусов, на ней на самой должен быть угол в 15 градусов. Чтобы все 4 опоры были на одном расстоянии от земли.
Если мы выводим горизонт, то 2 опоры будут иметь другое расстояние от земли, чем другие 2. Те, что ближе к склону, будут (допустим) на расстоянии 5 см. от платформы, а те, что дальше от склона будут уже иметь расстояние в 30 см. А мне надо, чтобы вне зависимости от склонов - расстояние до пор было (допустим) 15 см.
Один гироскоп с этим не справится. иначе бы я и использовал один гир и не парился бы вообще за доп. контроль и прочее.
Соответственно, мне на уровень горизонта, как таковой, наплевать. Мне нужно именно понимание уровня, в котором находится платформа и того, в котором находятся опоры, чтобы высчитать угол отклонения опор от платформы.
Так в том то и дело, что мне не нужен уровень горизонта как таковой. Когда техника идёт по наклонной поверхности, с углом в 15 градусов, на ней на самой должен быть угол в 15 градусов. Чтобы все 4 опоры были на одном расстоянии от земли.
Если мы выводим горизонт, то 2 опоры будут иметь другое расстояние от земли, чем другие 2. Те, что ближе к склону, будут (допустим) на расстоянии 5 см. от платформы, а те, что дальше от склона будут уже иметь расстояние в 30 см. А мне надо, чтобы вне зависимости от склонов - расстояние до пор было (допустим) 15 см.
Один гироскоп с этим не справится. иначе бы я и использовал один гир и не парился бы вообще за доп. контроль и прочее.
Соответственно, мне на уровень горизонта, как таковой, наплевать. Мне нужно именно понимание уровня, в котором находится платформа и того, в котором находятся опоры, чтобы высчитать угол отклонения опор от платформы.
этот режим есть, называется ACRO )))
а вообще сложно понять, что вам нужно не видя изделие
Тогда вам нужно один гироскоп катить по поверхности,
а второй установить на платформе.
Регулировкой опор добиться одинаковых показаний двух гироскопов.
Или 4 лазерника ( ультразвука) , но это уж слишком просто .
Но грязи бояться будут.