Знают ли акселерометры, когда они движутся прямо вверх или вниз?


8

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

Достигнет ли это положение акселерометра на вершине объекта или он сможет отслеживать переход между движением вверх и вниз?

Если нет, то какой тип датчика (-ов) позволит это сделать?

---------------- РЕДАКТИРОВАТЬ: -------------------------

В идеале мне нужен датчик, который я могу установить на верхнюю часть окна, описанного ниже, и рассчитывать, сколько раз он идет вверх и вниз. У этого есть многократные направляющие, которые предотвращают это от скручивания. Я планирую использовать Arduino в качестве микроконтроллера, который выполняет математику, просто нужен датчик, способный воспринимать движение вверх / вниз. Все предложения приветствуются. Спасибо.

   +    +
   +    +
   +    +
------------
|   box    | 
| moves up |
| and down |
------------
   +    +
   +    +

3
Акселерометр будет измерять, когда есть изменения в скорости объекта. Если бы объект двигался с постоянной скоростью, акселерометр показал бы нулевую мощность. Чем быстрее изменение скорости, тем больше будет показание акселерометра в течение этого времени.
Майкл Карас

Таким образом, на основании моего комментария выше, акселерометр может быть использован для измерения, когда объект начинает двигаться из положения покоя или когда он меняет направление. Само устройство является просто сенсором и не имеет никакого «знания». Вы должны подключить какую-либо другую схему или микроконтроллер, который будет отмечать выходы акселерометра и считать изменения, чтобы «знать», когда объект меняет положение.
Майкл Карас

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

1
Просто из любопытства, что заставляет коробку двигаться вверх и вниз? (Я имею в виду, почему вы не можете обнаружить движение косвенно, глядя на органы управления?)
copper.hat

1
@MichaelKaras - Извините, но ваша характеристика акселерометра неверна. Акселерометр, удерживаемый в гравитационном поле весом 1 г, будет (если чувствительная ось расположена вертикально) сообщать, что он ускоряется по вертикали со скоростью ~ 9,8 м / с ^ 2. По сути, это первый постулат об общей теории относительности.
WhatRoughBeast

Ответы:


8

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

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

Вы можете обойтись простым пороговым детектором с некоторым гистерезисом - считайте один, когда ускорение превышает + x, затем установите порог на -x, пока он не пересекает -x, затем установите порог на + x.

Если ускорение более плавное или существует фоновая вибрация, которую вы не хотите считать (даже если это движение вверх и вниз), тогда сигнал может быть потерян в шуме.
Затем вам нужно будет реализовать простой цифровой фильтр на Arduino, который по сути «ищет» движение с определенной скоростью. Это может быть просто, просто сложив последние 100 образцов ускорения (при 100 Гц) и поместив среднее значение через пороговый детектор, или вы можете разработать более сложный фильтр.

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

Найдите в своем магазине приложений приложение для мониторинга акселерометра, которое записывает датчик в файл, и проведите несколько экспериментов. Если он создает файл CSV, вы можете открыть его в Excel и построить графики и т. Д.

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

Вот пример того, что я сделал с сенсором телефона.

Удачи! Опубликуйте свои результаты здесь (ответьте на свой вопрос), если это сработает для вас.


7

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

Если вы знаете, что объект начинается в покое, и вы измеряете его ускорение, вы можете определить его скорость, интегрируя ускорение во времени. Если он замедлится, вы увидите отрицательное ускорение, и интеграл станет нулевым, когда остановится. Затем, когда он начнет двигаться снова, вы увидите изменение в ускорении, и вы можете начать интегрировать все заново. Однако это сильно зависит от точности измерений и расчетов. Если один из них немного отключится, ошибка будет постепенно увеличиваться до тех пор, пока вы больше не будете знать, что на самом деле происходит.


1
Не только точность - фактический ИДУ должен всегда знать свою ориентацию вращения, чтобы применять измерения ускорения.
Крис Страттон,

@ChrisStratton - я этого не говорил, но я предполагал прямолинейное движение. Ваш комментарий по-прежнему верен в этой нереально ограниченной ситуации?
Пит Беккер

Просто при 9,8 м / с наблюдается ускорение.
Лорен Печтел

1
@LorenPechtel: Это все равно необходимо, но не решает проблему интеграции. Представьте, что коробка поднимается, замедляется почти до полной остановки и снова ускоряется. Теперь представьте себе вторую коробку, которая немного замедляется, поэтому она на мгновение падает, прежде чем снова подниматься. Разница может быть минимальной, но счетчик вверх / вниз должен отличаться. Если ваша интеграция немного отключена, вы не заметите разницу.
MSalters

1
Разве акселерометр не измерил бы ноль для объекта в свободном падении? Это действительно больше измерения силы G, не так ли?
Осьминог

5

Во-первых, важно понять, как акселерометр ведет себя в гравитационном поле, которое мы наблюдаем на Земле. Акселерометр не измеряет ускорение в том смысле, что он не измеряет только изменение скорости. Он измеряет изменение скорости плюс гравитацию - это означает, что вам нужно измерить гравитацию, если вы планируете делать то, что наметили.

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

схематический

смоделировать эту схему - схема, созданная с использованием CircuitLab

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

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

Если вы действительно хотите использовать акселерометр, ваш лучший подход к такой проблеме - это записать выходной сигнал акселерометра каким-либо образом (я предпочитаю выводить его через SPI и записывать его с помощью логического анализатора USB) и записывать именно то, что вы делаете (или даже видео, если вы действительно заинтересованы). Затем вы можете поиграть с автономными алгоритмами, не беспокоясь о том, что ваш Arduino действительно делает то, что вы думаете.

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


2
Это не просто причуда акселерометра - объект, который находится в однородном гравитационном поле, неотличим от объекта, равномерно ускоряемого. В некотором смысле акселерометр прав, когда говорит, что объект, сидящий на земле, ускоряется; мы просто не думаем, что это потому, что мы ускоряемся с той же скоростью.
сегодня,

Да, я это понимаю. Акселерометр настолько прав, насколько это возможно - но довольно нелогично, что неподвижный вертикальный акселерометр в гравитационном поле измеряет ускорение вверх .
Дейв Брантон

Я думаю, что это лучшее объяснение: представьте себе человека в масштабе в лифте. Шкала отображает силу, которую она применяет к человеку (делится на g). Во-первых, он отображает реальный вес, но когда лифт начинает двигаться вверх, он отображает больший вес. И даже мужчина чувствует себя тяжелее. Также акселерометр просто измеряет силу, которую он прикладывает к небольшой массе.
sweber

4

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


3

Осторожно, изменение ускорения не означает, что коробка развернулась. Коробка запускается - вы видите ускорение вверх. Сейчас он движется с постоянной скоростью - вы не видите ускорения. Он замедляется до половины скорости - вы видите ускорение вниз. Это продолжается на половине скорости - вы не видите ускорения. Он ускоряется назад - вы видите ускорение вверх. Он останавливается, вы видите ускорение вниз.

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

Вы исследовали использование лазерного дальномера, чтобы измерить, где находится коробка?


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

2

Акселерометры измеряют ускорения. Если движение выполняется с ускорением, оно будет обнаружено, учитывая, что акселерометр достаточно чувствителен к этой оси. Направление ускорения будет указываться знаком считанных значений. Обратите внимание, что при измерении ускорений по вертикальной оси измерение будет смещено на постоянную ускорения гравитации g.


1
«Если движение выполняется с ускорением» Объект изначально находится в покое. Он не мог войти в состояние движения без ускорения.
Дэвид Ричерби

Да, но вопрос в том, на каких этапах должно быть обнаружено движение.
Евгений Ш.

2

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

Акселерометр сложный, более дорогой, чем любой из вышеперечисленных, и по причине, красноречиво объясненной Питом Беккером (а теперь и Дейвом Брантоном), вряд ли будет работать.


Возможно, стоит отметить, что ситуация, описанная @TheDudeAbides, несколько напоминает шагомер.
user3334690

@ user3334690 Я подозреваю, что ограниченная степень точности, которую имеют шагомеры, частично обусловлена ​​предсказуемым характером человеческого шага. Если бы мы могли организовать прикрепление магнитов к каждой поверхности пола, я подозреваю, что мы могли бы сделать их более точными с помощью переключателей с эффектом
Холла

1

Здесь много интересной информации, но я не видел, чтобы кто-нибудь предлагал линейный потенциометр ...

Просто подайте напряжение и посчитайте, сколько раз GPIO читает HI. Самый дешевый линейный горшок? Регулятор громкости от старого радио, регулировка триммера от игрушечных контроллеров R / C и т. Д.


Вы подразумеваете механические связи между объектом, горшком и стационарным основанием? Разве это не введет новые силы и сопротивления.
Осьминог

1

Если его следующие рельсы, как насчет использования ультразвукового дальномера? Arduino может сделать математику для определения ускорения, и его реализация будет намного проще, чем прикрепление проводов к чему-то движущемуся. Это, безусловно, будет работать лучше, если трасса прямая. Вот один. https://www.sparkfun.com/products/639


Добро пожаловать в electronics.stackechange! Я надеюсь, вы будете чувствовать себя здесь как дома!
WalyKu

0

Я бы рекомендовал использовать две тонкие металлические пластины для формирования конденсатора. Одна пластина будет помещена сверху коробки, а другая зафиксирована на некоторой высоте от коробки. Когда коробка движется вверх и вниз, емкость (C) будет меняться из-за изменения расстояния между пластинами (d) (C = kA / d). Это изменение может быть «преобразовано» с помощью соответствующих средств в изменение напряжения, частоты и т. Д., А затем в форму, подходящую для интерфейса Arduino (может потребоваться усиление).


Так не пойдет. 1: Хотя у нас нет измерений, поиграйте немного с числами, и вы увидите, что динамический диапазон велик, а емкость может быть очень маленькой. 2 .: Если установка выполнена из металла, каждая из ваших пластин образует конденсатор с настройкой. Т.е. у вас есть две заглушки последовательно с различной длиной кабеля между ними. Емкость будет более или менее постоянной. Существуют емкостные датчики, но их принцип отличается, и они могут измерять различия не более 1 см.
sweber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.