Подключение 5 акселерометров и 4 лазерных дальномеров + анализ результатов. Ардуино потянет?

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

Добрый день. 

Есть проект. Платформа, которая стоит на 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 см.)

Справится ли одна ардуино с таким объёмом данных или стоит искать другую платформу для проекта? 

И ещё вопрос - имеет ли смысл делать таким образом или есть более изящные варианты подключения данных датчиков?

sadman41
Offline
Зарегистрирован: 19.10.2016

Меня вот что интересует... Если Вы не можете посчитать - справится ли какая-то сферическая ардуина в вакууме с объемом вычислений, которые известны только Вам, то как программную-то часть будете реализовать? А она у вас будет гораздо сложнее, чем оценка быстродействия общения с датчиками. Ну, ответят вам "Да, справится" - что дальше?

Что-то всё больше и больше таких странных задач по автоматизации всплывает. Всем какая-то оценка вероятности реализации проекта продолжительностью в месяц нужна за пять сек. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

не справится, а вот одной меги хватит, залить прошивку коптера на 4 двигательную схему, держать горизонт будет, контроллер можно взять готовый - APM-2.8 называется, гира 6000 и барометр в составе контроллера уже есть

sadman41
Offline
Зарегистрирован: 19.10.2016

ua6em пишет:

не справится, а вот одной меги хватит, залить прошивку коптера на 4 двигательную схему, держать горизонт будет, контроллер можно взять готовый - APM-2.8 называется

А такая https://store.arduino.cc/usa/arduino-yun-rev-2 ?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

ua6em пишет:

не справится, а вот одной меги хватит, залить прошивку коптера на 4 двигательную схему, держать горизонт будет, контроллер можно взять готовый - APM-2.8 называется

А такая https://store.arduino.cc/usa/arduino-yun-rev-2 ?


В руках не держал не знаю, да и зачем, задача тривиальная, всё уже давно написано до нас, ПО свободное, чтобы платформа не "УНИТАЗИЛА" придётся конечно подобрать ПИДы, хотя ПО сможет сделать это и в автомате само, включив соответствующий режим

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

Добрый день. 

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

То же самое касается простых проектов на ардуино. Там диодик подсветить, температурку измерить. 

Увы, но у меня задача сильно сложнее. Я не работал с ардуино раньше и пока не знаю его возможностей. Но сейчас, пока не закуплена материальная база, есть возможность взять другие решения. Тот же Распберри например. Просто обидно было бы убить миллионы времени, прописать всё, как надо и выяснить, что железо не тянет. 

Я понимаю, что возможно будет тянуть 3 ардуино. Одна обрабатывает гироскопы. Одна лазеры. Одна сводит воедино и управляет реле. Но вот усложнение элементной базы повышает риск отказа. 

С другой стороны вопрос именно в обработке гироскопов так как там всё сложно. Очень чуткие датчики и ещё и надо сводить вместе показания акселерометра и гироскопа. И всё это, чтобы выяснить только изменение в плоскости X, другие две Y Z нам просто не нужны :-(

По поводу Ардуино Мега - в принципе смотрел из ардуинок в её сторону.
 

sadman41
Offline
Зарегистрирован: 19.10.2016

Это к ответу на вопрос - "А справится ли Ардуина". Ардуин - десяток разновидностей. Какая-то справится, какая-то нет. А может там еще такие требования всплывут, что специализированный контроллер будет нужен.

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

В проекте фишка не только и не столько в горизонте, сколько ещё и в контроле подъема над землёй. Чтобы система алярмила, когда высота будет критически маленькой или наоборот - критически большой. И, увы, это значения 5 и 45 см.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Itan_Vazlak пишет:

 Но вот усложнение элементной базы повышает риск отказа. 


 

Один единственный контроллер где всё ALL-IN-ONE какое тут усложнение, ПО называется Mission Planer, доступно в исходных кодах

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Itan_Vazlak пишет:

В проекте фишка не только и не столько в горизонте, сколько ещё и в контроле подъема над землёй. Чтобы система алярмила, когда высота будет критически маленькой или наоборот - критически большой. И, увы, это значения 5 и 45 см.


Тогда +GPS и сенсор как у Mavic PRO, да и насчет ненужности других осей Вы сильно погорячились, гироскоп калибруется в трёх осях и никак по другому

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

посмотрел эту железяку. Много умеет, но не для нашего проекта :-(

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Itan_Vazlak пишет:

посмотрел эту железяку. Много умеет, но не для нашего проекта :-(

Пошутили? Даже беглое знакомство с возможностями ПО для этого контроллера займёт недели две )))

ПО свободное, можно добавить свои датчики, поищите, на ютубе всё есть, там и пример как и где скачать проект, как добавить свой датчик, пощупайте, посмотрите как калибруются датчики в том числе MPU6000, как настраивются ПИДы ну и т.д.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Itan_Vazlak пишет:

Ардуино потянет?

А Вы потянете?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Евгений Петрович! С утра улыбнули )))
А на гидравлике самое сложное - пропорциональное управление, сталкивался
максимально только с шестипозиционным регулятором

sadman41
Offline
Зарегистрирован: 19.10.2016

Картинка всё же с преувеличением. Нет сравнения с количеством программистов MIT Instrumental Lab, их зарплат и пр.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:

Картинка всё же с преувеличением. Нет сравнения с количеством программистов MIT Instrumental Lab, их зарплат и пр.

Вы хотели сказать с преуменьшением? )))

sadman41
Offline
Зарегистрирован: 19.10.2016

С преувеличением тупости пользователя Меги ))

Думаю, что если этот человек лет 10 попрактикуется в условиях MIT даже за среднюю з/п, то легко сможет аквариум даже на АМеге168 запустить.

А так, за два дня с нуля аквариум засветить... Тоже определенная сообразительность нужна.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Есть такое! ТС даже не понимает, что все гиры  будут выдавать, условно, одинаковый результат )))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

Есть такое! ТС даже не понимает, что все гиры  будут выдавать, условно, одинаковый результат )))

"Гиры" - это гироскопы?

Так, вроде, они в проекте и не планировались.

Если судить по названию темы. 

А если судить по первому посту, то ТС, вероятно, ошибся, назвав гироскопом прибор, совмещающий акселерометр с гироскопом при том, что использоваться в приборе будет только акселерометр. По крайней мере, "гироскоп" фигурирует в контексте измерения углов, а для этой цели служит именно акселерометр.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

ua6em пишет:

Есть такое! ТС даже не понимает, что все гиры  будут выдавать, условно, одинаковый результат )))

"Гиры" - это гироскопы?

Так, вроде, они в проекте и не планировались.

Если судить по названию темы. 

А если судить по первому посту, то ТС, вероятно, ошибся, назвав гироскопом прибор, совмещающий акселерометр с гироскопом при том, что использоваться в приборе будет только акселерометр. По крайней мере, "гироскоп" фигурирует в контексте измерения углов, а для этой цели служит именно акселерометр.

MPU6000 в народе называют просто гирой

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sadman41 пишет:

Картинка всё же с преувеличением. Нет сравнения с количеством программистов MIT Instrumental Lab, их зарплат и пр.

Ну, тут можно много тонкостей вспоминать (например, как осуществлялось руководство программой), но главное, для чего делался пост - надесь, что ТС получил ответ на свой вопрос.

sadman41
Offline
Зарегистрирован: 19.10.2016

ЕвгенийП пишет:

Ну, тут можно много тонкостей вспоминать (например, как осуществлялось руководство программой), но главное, для чего делался пост - надесь, что ТС получил ответ на свой вопрос.

Тут я с Вами согласен. Посему и задал вопрос в первом посте. Ардуино и Алиэкспресс создает ложное представление, что инструмент абсолютно любой сложности можно легко собрать из готовых платок за доллар и натыканных в  проводков. Ну там еще что-то накопипастить в код из интернета или на форуме выпросить. Делов-то - на три дня: закупка, создание, тестирование.

Чечако
Offline
Зарегистрирован: 15.06.2018

Кстати, касательно производительности разных ардуин - а есть где в сети сравнения именно чистой производительности тех же avr, а не просто перечисление характеристик?

Просто столкнулся с тем, что скетч, который на nano с 328p занимал грубо говоря 99% вычислительных ресурсов, на mega2560 уложился в 80% без какой-то оптимизации с моей стороны. Оптимизацией я его ужал до 67%, но вопросы замера производительности стали интересны.

Грубо прикидывал так - по контрольным точкам в сегментах кода стал суммировать время выполнение в микросекундах, и раз в секунду по отдельному счетчику смотреть, сколько за эту фактическую секунду времени занимало выполнение кода. Погрешность есть, но общая картина вполне адекватной получилась, imho.

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

я посмотрел как эта радость настраивается и что к ней подключается штатно. Возможно не разобрался в проекте :-)   Буду смотреть более подробно.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Itan_Vazlak пишет:

я посмотрел как эта радость настраивается и что к ней подключается штатно. Возможно не разобрался в проекте :-)   Буду смотреть более подробно.


)))
 

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

2ua6em

я посмотрел как эта радость настраивается и что к ней подключается штатно. Возможно не разобрался в проекте :-)   Буду смотреть более подробно.

по поводу того, что я не понимаю, что гиры будут выдавать условно одинаковый результат - тут вопрос. Если их просто подключить, то да. А если их отъюстировать, задать точное нулевое положение и потом сравнивать расхождения с этим нулевым положением? Ведь они будут отличными от центрального гира, который стоит плашмя на платформе и для тех, что на опорах так как они стоят ребром и к тому же под углом в одной из плоскостей. Ведь тот же квадрокоптер, когда его кладут на бок - одним своим гиром догадывается, что он на боку. Так почему 5 гиров, каждый из которых в своём положении, будут показывать одно и то же?

2ЕвгенийП

Я потяну. Вероятнее всего мой код будет гораздо более громоздкий и (соответственно) более тормознутый, чем у тех дядек. Но то, что я запланировал - я смогу вывезти. Есть несколько узких мест, но путь виден и места эти тоже видны.  А сравнение с этим прибором вообще вне темы так как вы приводите информацию только об одном центральном блоке. Я вот искренне не уверен, что с такими параметрами всё было завязано только на него одного. Скорее всего было множество таких блоков, каждый из которых выполнял свою точечную функцию и просто передавал итоговые данные дальше. Так же, скорее всего они ещё и дублировались неоднократно. Как следствие - на центральный процессор приходят уже готовые сведения, которые нуждаются лишь в мелкой обработке. 

Я могу собрать подобную схему на примитивных контролерах. Просто за каждый гироскоп (с акселерометром :-) ) отвечала бы отдельная плата, которая бы фильтровала данные и передавала бы уже конкретные значения угла. За вычисление высоты платформы бы отвечала отдельная плата. За сравнение первой системы и лазерных измерений - третья плата. Ну и так далее.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Этот контроллер устанавливается на многие аппараты, в том числе квадракоптеры и при этом реализовано много полётных режимов, как-то режим стабилизации, режим удержания высоты и т.д. Стоит недорого. В качестве первого прототипа почему бы и нет.
Тем более все программы доступны в исходниках.
ПО в режиме стабилизации увеличивает или уменьшает обороты двигателей и вот здесь самое сложное перейти на управление гидравлическими клапанами...так как выдается сигнал ШИМ мне видится некий детектор порогового значения ШИМ включающий реле управления...
 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ua6em пишет:

MPU6000 в народе называют просто гирой

Видать, я очень далек от народа...

Ну да ладно. Так почему акселерометры, имеющиеся в этих гирах (или гирях?), при разных углах опор к вертикали будут показывать одно и то же?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

ua6em пишет:

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

 

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

Углы разные так как вся система с 5 датчиками выглядит следующим образом (написал об этом кратко в первом посте, тут более подробно).

Датчик 1 - базовый датчик. Лежит на платформе плашмя. Отвечает за контроль положения платформы
Датчик 2 - ребром прикреплён к наклонному рычагу 1. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Датчик 3 - ребром прикреплён к наклонному рычагу 2. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Датчик 4 - ребром прикреплён к наклонному рычагу 3. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)
Датчик 5 - ребром прикреплён к наклонному рычагу 4. Если рычаг полностью прижат к платформе - имеет поворот на 90 градусов по одной из осей, относительно Датчик 1 (как квадрокоптер, когда у него пропеллеры сбоку, а не сверху)

Как следствие - при работе гидравлики угол наклона каждой ноги меняется, с ним меняются и показатели одной из осей гироскопа, приделанного к рычагу. Зная угол Датчика 2 и угол Датчика один - можно получить угол между ними. Соответственно, по теореме Пифагора можно вычислить расстояние от опоры до платфомы.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Itan_Vazlak пишет:

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

по моему вы перемудрили с этими датчиками, одного гироскопа на платформе более чем достаточно...
по такой схеме можно такой "унитазинг" (осциляторные колебания) получить, что вывести регулировками ПИД
не получится...на квадрокоптерах через это давно прошли, почитайте темы...
MPU6000 устанавливается и калибруется строго по осям

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Itan_Vazlak пишет:
А сравнение с этим прибором вообще вне темы

Ещё как в теме.

Itan_Vazlak пишет:
Я вот искренне не уверен, что с такими параметрами всё было завязано только на него одного. Скорее всего было множество таких блоков

Ну, вера - вопрос интимный, а технически ... вся техническая документация, вплоть до прнципиальных и монтажных схем, доступна. Таких прибора было два - один в командном модуле, а другой - в лунном. Компьютеры были одинаковыми, но прошивки отличались (командному модулю неза-каким-фигом садиться на Луну и взлетать с неё, а лунный модуль не собирался входить в атмосферу).

Itan_Vazlak пишет:
Так же, скорее всего они ещё и дублировались неоднократно.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

По моему Вы стали заложником идеи, поясню:
Гироскопы можно каскадировать, при этом на платах имеем единственный вывод сигнала A0 для выборки адреса, то-есть каскадировать
можно не более 2-х устройств. Скорость обмена с одним устройством - 60 показаний в секунду, значит каскадирование приведет к увеличению погрешности. Далее, вами предлаголось снимать значения с акселерометров, а именно акселерометр хорошо работает в области больших ускорей, гироскоп - малых, за этим их в одной плате и объединили, скомпенсировать взимные недостатки. Сдедующее, устройства крайне чувствительный к металлам находящимся поблизости и немаловажное, калиброваться должно каждое устройство, для этого законченный конструктив проворачивается в 3-х плоскостях, как планируете это делать в вашем решении?

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

С одним гироскопом никак :-(  Или я не предсатвляю, как с одним гироскопом выставить одинаковое расстояние до земли всех 4 опор на наклонной поверхности. В этом случае платформа не будет горизонтальной, она должна повторять налон поверхности, на которой стоит. 

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

настройка гироскопа возможна до установки на устройство. А дальше подстройка по эталонным параметрам. Допустим можно замерить углы, которые обозначают 1 см. подъёма платформы, 5 см и 10 см.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Гироскоп выставляет уровень горизонта, да посмотрите Вы ролики, к примеру настройку BetaFlight, ...контроллер квадракоптера в режиме стабилизации подает на регуляторы на 4 опоры (винты) такое напряжение, чтобы всегда был уровень горизонта, а режиме LOITER еще и удерживает заданную высоту (по барометру)
В коптере DJI  для более точного удержания высоты задействуется оптический дальномер

Itan_Vazlak
Offline
Зарегистрирован: 29.11.2018

Так в том то и дело, что мне не нужен уровень горизонта как таковой. Когда техника идёт по наклонной поверхности, с углом в 15 градусов, на ней на самой должен быть угол в 15 градусов. Чтобы все 4 опоры были на одном расстоянии от земли. 

Если мы выводим горизонт, то 2 опоры будут иметь другое расстояние от земли, чем другие 2. Те, что ближе к склону, будут (допустим) на расстоянии 5 см. от платформы, а те, что дальше от склона будут уже иметь расстояние в 30 см. А мне надо, чтобы вне зависимости от склонов - расстояние до пор было (допустим) 15 см. 

Один гироскоп с этим не справится. иначе бы я и использовал один гир и не парился бы вообще за доп. контроль и прочее.

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

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Itan_Vazlak пишет:

Так в том то и дело, что мне не нужен уровень горизонта как таковой. Когда техника идёт по наклонной поверхности, с углом в 15 градусов, на ней на самой должен быть угол в 15 градусов. Чтобы все 4 опоры были на одном расстоянии от земли. 

Если мы выводим горизонт, то 2 опоры будут иметь другое расстояние от земли, чем другие 2. Те, что ближе к склону, будут (допустим) на расстоянии 5 см. от платформы, а те, что дальше от склона будут уже иметь расстояние в 30 см. А мне надо, чтобы вне зависимости от склонов - расстояние до пор было (допустим) 15 см. 

Один гироскоп с этим не справится. иначе бы я и использовал один гир и не парился бы вообще за доп. контроль и прочее.

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


этот режим есть, называется ACRO )))
а вообще сложно понять, что вам нужно не видя изделие

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Тогда вам нужно один гироскоп катить по поверхности,
а второй установить на платформе.
Регулировкой опор добиться одинаковых показаний двух гироскопов.
Или 4 лазерника ( ультразвука) , но это уж слишком просто .
Но грязи бояться будут.