Многоканальный виброизмерительный прибор
- Войдите на сайт для отправки комментариев
Вс, 29/04/2018 - 19:33
Приветствую, уважаемые администраторы и участники форума. Прошу совета, всем откликнувшимся буду крайне признателен.
Хочу собрать многоканальный виброизмерительный прибор на Ардуино с передачей данных на компьютер для последующей обработки (в идеале 8 датчиков по 3-м каналам).
Нужно измерить вибрацию, передающуюся на объект от колеблющейся опоры через виброизолятор в диапазоне 0,5 - 1000 Гц (в идеале, но можно и до 500 срезать). Имеется поверенный специализированный прибор для таких измерений, но он одноканальный - можно подключить только один акселерометр. Это не позволяет узнать угловые колебания тела, АЧХ, ФЧХ, передаточную ф-ию и пр. характеристики виброзолятора, следовательно оценить его эффективность. Нужно минимум два датчика, меряющих одновременно. Однако этот прибор позволит оценить точность измерений собранной системы на Ардуино. В общем как это сделать мне ясно, кое-что на Ардуино делать умею, программу смогу написать с помощью библиотек. Однако хотелось бы получить данные более-менее точные... насколько возможно. Поэтому прошу советов знающих людей:
1) Как увеличить колличество аналоговых входов на Ардуино Мега, и вобще позволит ли она подключить 8 аналоговых акселерометров? Сможет ли "переварить" одновременное измерение по 8ми каналам и передать на порт? Может есть более подходящий контроллер?
2) Какой датчик лучше выбрать? Вот на этих остановился: http://robotclass.ru/tutorials/arduino-accelerometer-mpu6050/ , http://roboparts.ru/products/mma7361m , http://arduino-diy.com/arduino-akselerometry-ADXL337-ADXL377 : прошу совета, какой все-таки точнее и надежнее будет?
3) Планируется датчики крепить магнитами. Не скажется ли это (магнитное поле) на точности измерений?
4) Как передать сигнал от датчика к контроллеру без помех через провод на расстояние около 2м? Какие провода выбрать? Наверно что-то типа бронепровода нужно?
Понимаю, что точность "как на заводе" мне не получить, однако пару лишних миллионов нет, а хочется узнать общую картину "по-науке" (а поверенный прибор позволит оценить точность всей системы). Если кому-то будет интересно, могу выкладывать результаты и теоретические и практические. По-моему сильный проект получится, мне бы только получить ответы на эти вопросы. Кто чем сможет... Заранее благодарю.
Если не ошибаюсь в меге один АЦП от которого можно получить 15 тыс выборок в секунду с гарантированной точностью 8 разрядов. (Сам АЦП выдает данные с большим числом разрядов.) Этот АЦП подклучается к выбранному аналоговому входу. Собственно все, что возможно по частоте выборок, это 15 000 в секунду, деленное на число используемых входов При восьмибитной точности выборок. Можно повышать точность выборок за счет усреднения, но при этом очень сильно потерять в их частоте.
Измерения возможны только последовательно - одно измерение с одного входа в один момент.
Спасибо за ответы!!! Значит каждый 3х компонентный датчик вешаю на свою Ардуину Мини, а ее соединяю с компьютером. Но при этом их колличество ограничено числом портов ноутбука. А если через хаб подключить будут работать?
Спасибо за ответы!!! Значит каждый 3х компонентный датчик вешаю на свою Ардуину Мини, а ее соединяю с компьютером. Но при этом их колличество ограничено числом портов ноутбука. А если через хаб подключить будут работать?
Но ведь есть еще и внешние АЦП, данные из которых можно закинуть во внешнюю память (массив). А потом контроллером передавать в комп.
Alexey_A, У меги ваще 1 АЦП, и встроенный мультиплексор на 16 к4аналов. Максимально достижимая скорость с мультиплексированием - 79 килозамеров в секунду (тактовая АЦП 1Мгц) с точностью согласно даташита - 10бит на замер +- 1LSB. Для 1 канала можно получать замеры со скоростями до 592 ksps при меньшей точности от 6-7бит. 300ksps/8bit -- вполне достижимо.
andriano, не постите ерунду про 114мксек на замер. Такой цифры в даташит нет. Я о Вас лучшего мнения, чем Вы пытаетесь показать тут .. ;)
Автору:
Во первых, надо понять какой характер измерений Вам требуется: непрерывный, разовый или партиями? Если непрерывный, то вода выливается из бочки по самой нижней дыре. Вам надо весь тракт укладывать в заданную скорость, как измерений, так и обработки/передачи. Если пачками, то надо смотреть интервалы и пачки: можно ли сначала провести быстро замеры и сложить их в ОЗУ, хватит ли ОЗУ .. можно ли за время замеров обработать/передать буфер ОЗУ наружу, пока иной(иные) заполняются новыми замерами .. и т.д.
Я к тому, что "сколько потянет Мега" - непонятно. Сначала надо решить задачки по проще: сколько непрерывных замеров надо, как много их будет в пачке, можно ли передавать пачку наружу совместно с проведением замеров и тд. В общем, сначала вопросы архитектуры устройства в целом, а уже потом подбор исполнителя..
Точно. Тогда вопрос "при чем тут Мега, если все можно сделать внешними средствами и без неё?" - становится актуальным. :)
Измерение должно быть непрерывное, 10 секунд примерно. А если убрать компьютер, собирать и записывать данные с каждого датчика на свою флешку, а потом уже эти данные обрабатывать на компьютере? Избавляемся от проводов, облегчаем программу. Но вот какой нюанс, нужно измерения всеми датчиками проводить одновременно... а может модуль часов установить на каждый датчик? В итоге получается произвольное число независимых приборов, состоящих из контроллера, датчика, памяти, часов, батарейки. Как считаете?
Проблема выбора между "по одному каналу на дешевый чип + диспетчер" и "один дорогой чип с множеством каналов" всегда преследует разработчика и однозначно решается только при тщательном проектировании или эксперименте.
Alexey_A, У меги ваще 1 АЦП, и встроенный мультиплексор на 16 к4аналов. Максимально достижимая скорость с мультиплексированием - 79 килозамеров в секунду (тактовая АЦП 1Мгц) с точностью согласно даташита - 10бит на замер +- 1LSB. Для 1 канала можно получать замеры со скоростями до 592 ksps при меньшей точности от 6-7бит. 300ksps/8bit -- вполне достижимо.
Обсалютно не спорю, с тем, что вы утверждаете. Но мой пост Вы прочли не внимательно.
Читал по диагонали, может пропустил. По теме - смотрится многоканальный USB осциллограф. Если устройство штучное, проще использовать готовое максимально походящее устройство... ИМХО. что-то типа такого, только за них почитать нужно, чтоб писали нужную длину. (первый попавшийся, для примера)
Вообще, конечно, 8х3 - 21 канал это не слабо (параллельная работа). Возможно, 8 устройств с синхронизацией запуска будет проще, но точно не дешевле. Для записи 10сек х 1000 х 3 - 30к памяти на устройство при 8bit. Примерная архитектура такая, сигнал "начало" на все устройства, контроллер запускает конвертацию 3 АЦП, после параллельно выгружает в 3 микросхемы памяти и так по кругу. т.е. сам мк ничего не хранит. По окончании в комп выгружаются данные каждого канала поочереди с каждого устройства отдельно. В крайнем случае, собирается мультиплексор USB. - это просто идея, ее считать нужно. Может и одной меги хватит. 21 внешняя АЦП и 21 память. Главное продумать алгоритм параллельной прямой записи данных из АЦП в память и последовательной выгрузки из каждой микросхемы.
Да, действительно осциллограф многоканальный - то что нужно. Можно даже прицепить датчики получше. Интересно, как насчет поверки такого самопала... врятли, конечно, но письмо в ростест уже написал. Интересно, что ответят. Конечно, не так весело как на Ардуино, но как нибудь в другой раз поиграюсь) Спасибо большое всем за советы, много нового узнал, многое еще не переварил)
Да, действительно осциллограф многоканальный - то что нужно. Можно даже прицепить датчики получше.
в дагонку, параллельно смотрите анализатор спектра - может сгодится, а может и нет...