Os acelerômetros sabem quando estão se movendo para cima ou para baixo?

8

Preciso de um sensor que só possa ser colocado em cima de um objeto, para contar o número de vezes que o objeto se move para cima e para baixo.

A colocação de um acelerômetro em cima do objeto conseguiria isso ou ele pode rastrear a transição entre subir e descer?

Caso contrário, que tipo de sensor faria isso?

---------------- EDIT: -------------------------

Idealmente, eu gostaria de um sensor que eu possa colocar em cima da caixa descrita abaixo e contar os tempos em que ele sobe e desce. Possui vários trilhos de guia que impedem que ele torça. Eu planejo usar um arduino como um microcontrolador que faz as contas, só preciso de um sensor capaz de detectar o movimento para cima / para baixo. Todas as sugestões são bem-vindas. obrigado.

   +    +
   +    +
   +    +
------------
|   box    | 
| moves up |
| and down |
------------
   +    +
   +    +
TheDudeAbides
fonte
3
Um acelerômetro mede quando há alterações na velocidade de um objeto. Se um objeto estivesse se movendo a uma taxa constante, o acelerômetro mostraria saída zero. Quanto mais rápida a mudança de velocidade, maior a medição que o acelerômetro mostrará durante esse tempo.
Michael Karas
Portanto, com base no meu comentário acima, um acelerômetro pode ser usado para medir quando um objeto começa a se mover de uma posição de repouso ou quando muda de direção. O dispositivo em si é apenas um sensor e não possui nenhum "conhecimento". Você precisa conectar outro circuito ou microcontrolador que anote as saídas do acelerômetro e conte as alterações para "saber" quando o objeto estiver mudando de posição.
Michael Karas
3
Eu acho que sugerir uma maneira melhor exigiria saber mais sobre o aplicativo. Há um número incontável de maneiras de medir movimento e posição - a que funciona melhor depende inteiramente do que está se movendo, como está se movendo, onde está (e o que está à sua volta), que fontes de energia estão disponíveis ou convenientes, como precisa da solução, quanta barulho ela deve rejeitar, qual a confiabilidade que precisa ser etc. Se você puder fornecer mais detalhes sobre o aplicativo, provavelmente obterá melhores respostas.
J ...
1
Por curiosidade, o que faz a caixa subir e descer? (Quero dizer, por que você não pode detectar o movimento indiretamente, olhando para os controles?)
copper.hat
1
@ MichaelKaras - Desculpe, mas sua caracterização de um acelerômetro está errada. Um acelerômetro mantido estacionário em um campo gravitacional de 1 g relatará (se o eixo sensível for vertical) informar que está acelerando verticalmente a ~ 9,8 m / s ^ 2. De fato, este é o primeiro postulado da Relatividade Geral.
WhatRoughBeast

Respostas:

8

Eu acho que um acelerômetro e arduino é uma ótima maneira de contar o número de vezes que a caixa se move para cima e para baixo. É uma maneira compacta, confiável e sem contato de detectar movimento.

Poderia funcionar para movimentos tão suaves quanto a subida e descida do peito, ao respirar, deitar e certamente algo mais rápido que isso.

Você pode se safar com um simples detector de limiar com alguma histerese - conte um quando a aceleração exceder + x, defina o limiar para -x, até cruzar -x e defina o limiar para + x.

Se a aceleração for mais suave ou houver vibração de fundo que você não deseja contar (mesmo que na verdade seja movimento para cima e para baixo), o sinal poderá ser perdido no ruído.
Então você terá que implementar um simples filtro digital no arduino, que, na verdade, "procura" o movimento a uma taxa específica. Isso pode ser simples, basta adicionar as últimas 100 amostras de aceleração (a 100 Hz) e colocar a média no detector de limite, ou você pode criar um filtro mais elaborado.

Se você planeja usar um acelerômetro, experimente primeiro com o seu smartphone.

Procure na sua loja de aplicativos um aplicativo de monitor de acelerômetro, algo que registre o sensor em um arquivo e faça algumas experiências. Se criar um arquivo CSV, você poderá abri-lo no Excel e plotar gráficos etc.

O acelerômetro do telefone é bastante básico e barulhento, mas é um bom substituto para qualquer outro acelerômetro abaixo de US $ 100 e pode lhe dar uma idéia aproximada do que um de US $ 1000 poderia fazer.

Aqui está um exemplo do que eu fiz com o sensor do telefone.

Boa sorte! Poste seus resultados aqui (responda sua própria pergunta), se funcionar para você.

tomnexus
fonte
7

Em geral, não. Imagine jogar uma bola para cima (e ignore a resistência do vento): uma vez que ela se move, a única força nela é a gravidade, que produz uma aceleração constante . Não há como saber apenas da aceleração, quando a bola atingiu sua altura mais alta e recuou - a aceleração é a mesma durante todo o seu percurso até atingir o chão.

Se você souber que o objeto está começando em repouso e medir sua aceleração, poderá descobrir sua velocidade integrando a aceleração ao longo do tempo. Se desacelerar, você verá uma aceleração negativa e a integral será zero quando parar. Então, quando ele começar a se mover novamente, você verá uma mudança na aceleração e poderá começar a integrar tudo de novo. No entanto, isso depende fortemente da precisão das medições e dos cálculos. Se um deles estiver desativado um pouco, o erro aumentará gradualmente até que você não saiba mais o que realmente está acontecendo.

Pete Becker
fonte
1
Não apenas precisão - uma IMU real precisa conhecer sua orientação rotacional o tempo todo para aplicar as medições de aceleração.
Chris Stratton
@ ChrisStratton - eu não disse isso, mas estava assumindo um movimento em linha reta. O seu comentário ainda está correto nessa situação irrealisticamente restrita?
Pete Becker
Simplesmente a 9,8 m / s para a aceleração observada.
Loren Pechtel
1
@ LorenPechtel: Isso é necessário de qualquer maneira, mas não corrige o problema de integração. Imagine uma caixa subindo, desacelerando até quase parar e acelerando novamente. Agora imagine uma segunda caixa que diminui um pouco mais e diminui momentaneamente antes de subir novamente. A diferença pode ser mínima, mas o contador para cima / para baixo deve ser diferente. Se sua integração estiver um pouco desativada, você não notará a diferença.
MSalters
1
Um acelerômetro não mede zero para um objeto em queda livre? É realmente mais uma medida de força G, não é?
Octopus
5

Primeiro, é importante entender como um acelerômetro se comporta em um campo gravitacional, como experimentamos aqui na Terra. Um acelerômetro não mede a aceleração, no sentido de que não mede apenas a mudança de velocidade. Ele mede a mudança na velocidade mais a gravidade - o que significa que você precisa realizar a medição da gravidade se planeja tentar o que descreve.

Além disso, a gravidade será medida como uma aceleração ascendente - o que é um pouco contra-intuitivo, mas faz sentido se você imaginar um acelerômetro sendo construído como algo assim:

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Eu abusei do editor esquemático para mostrar um rolamento de esferas suspenso em um tubo por duas molas perfeitamente amortecidas. Imagine que o acelerômetro faz sua medição dizendo a que distância da posição de repouso o rolamento de esferas está atualmente. Agora imagine girar esse dispositivo no final e poderá ver como o rolamento de esferas afunda sob a gravidade e como isso é indistinguível da aceleração. Eu acho que a relatividade tem algo a dizer sobre esse tópico, mas de qualquer maneira.

Portanto - se você tem um acelerômetro vertical e remove o efeito da gravidade, e os movimentos do seu dispositivo são suficientemente maiores que o nível de ruído do acelerômetro e, além disso, os movimentos são suficientemente suaves para não confundir o seu algoritmo - seja possível. Há uma resposta acima que menciona queda livre, o que seria um problema, mas suponho pela sua descrição que seu dispositivo não ficará em queda livre por um período de tempo. Este é um palpite embora.

Se você realmente deseja usar um acelerômetro, sua melhor abordagem para um problema como esse é gravar a saída do acelerômetro de alguma forma (eu prefiro produzi-la pelo SPI e gravá-la usando um analisador lógico USB) e anote exatamente o que você faz (ou até vídeo, se você estiver realmente interessado). Então você pode brincar com os algoritmos offline, sem a sobrecarga de se perguntar constantemente se o seu Arduino está realmente fazendo o que você pensa que é.

Como outros já mencionaram, outros tipos de sensor podem ser mais apropriados. Precisamos de mais detalhes sobre exatamente por que você está tentando comentar, eu acho.

Dave Branton
fonte
2
Não se trata apenas de uma peculiaridade do acelerômetro - um objeto sentado em um campo gravitacional uniforme é indistinguível de um acelerador uniforme. Em certo sentido, o acelerômetro está certo quando diz que um objeto sentado no chão está acelerando; nós simplesmente não pensamos que é porque estamos acelerando na mesma velocidade.
cpast
Sim - eu percebo isso. O acelerômetro é o mais correto possível - mas é bastante contra-intuitivo que um acelerômetro vertical imóvel em um campo gravitacional mede uma aceleração ascendente .
Dave Branton
Eu acho que essa é uma explicação melhor: imagine um homem em uma balança de elevador. A balança mostra a força que aplica ao homem (dividido por g). Primeiro, ele exibe o peso real, mas quando o elevador começa a se mover para cima, ele exibe um peso maior. E até o homem se sente mais pesado. Além disso, um acelerômetro mede apenas a força que aplica a uma pequena massa.
sweber
4

Se o objeto se mover para cima e para baixo em guias fixas, acho que a maneira mais fácil de contar seus movimentos seria usar uma chave limitadora que seria fechada quando o objeto estiver em repouso e aberta quando afastada da posição de repouso.

Peter Bennett
fonte
3

Cuidado, uma reversão da aceleração não significa que a caixa virou. A caixa inicia - você vê aceleração para cima. Agora está subindo a um ritmo constante - você não vê aceleração. Reduz para metade da velocidade - você vê aceleração descendente. Ele continua a meia velocidade - você não vê aceleração. Acelera - você vê aceleração para cima. Para, você vê aceleração descendente.

Você viu cima, baixo, cima, baixo, mas a caixa realmente só subiu. Você precisará integrar-se com o tempo e ter precisão suficiente no acelerômetro para descobrir de que maneira realmente está indo - observe-o quanto a erros cumulativos, isso pode dificultar muito o problema!

Você investigou usando um telêmetro a laser para medir onde está a caixa?

Loren Pechtel
fonte
Na verdade, você precisa integrar duas vezes ao longo do tempo - uma para obter velocidade e outra para obter distância - o que será repleto de erros cumulativos.
abligh
2

Acelerômetros estão medindo acelerações. Se o movimento for realizado com aceleração, ele será detectado, pois o acelerômetro é sensível o suficiente nesse eixo. A direção da aceleração será indicada pelo sinal dos valores lidos. Observe que, ao medir acelerações no eixo vertical, a medição será influenciada pela constante de aceleração da gravitação g.

Eugene Sh.
fonte
1
"Se o movimento for realizado com aceleração" O objeto está inicialmente em repouso. Não poderia entrar em um estado de movimento sem acelerar.
David Richerby
Sim, mas a questão é em que estágios o movimento deve ser detectado.
Eugene Sh.
2

Se não desejar contato físico (como o fornecido por um interruptor de limite ou microinterruptor típico), você poderá montar um ímã e usar um interruptor de palheta ou um efeito de hall. Ou monte algo que se destaque levemente e seja opaco e passe por um detector óptico (do tipo com um pequeno slot).

Um acelerômetro é complicado, mais caro do que qualquer um dos itens acima e, pelo motivo eloquentemente explicado por Pete Becker (e agora também por Dave Branton), provavelmente não funcionará.

abligh
fonte
Talvez valha a pena notar que a situação descrita pelo @TheDudeAbides lembra um pedômetro.
user3334690
@ user3334690 Suspeito que o grau limitado de precisão dos pedômetros seja parcialmente atribuído à natureza previsível da etapa humana. Se pudéssemos organizar para anexar ímãs para cada superfície do piso, eu suspeito que poderia torná-los mais precisos com efeito Hall muda :-)
abligh
1

Muitas informações excelentes aqui, mas eu não vi ninguém sugerir um potenciômetro linear ...

Simples, aplique tensão e conte quantas vezes o GPIO lê um HI. Pote linear mais barato? Controle deslizante de volume de um rádio antigo, ajuste de ajuste dos controladores de brinquedos R / C, etc.

user1183325
fonte
Você está implicando conexões mecânicas entre objeto, panela e base estacionária? Isso não introduziria novas forças e resistências.
Octopus
1

Se os trilhos a seguir, que tal usar um telêmetro ultrassônico? O arduino pode fazer as contas para determinar a aceleração, e será uma implementação muito mais simples do que conectar cabos a algo que se move. Isso certamente funcionará melhor se a pista for reta. Aqui está um. https://www.sparkfun.com/products/639

Dean Turner
fonte
Bem-vindo ao electronics.stackechange! Espero que você se sinta em casa aqui!
WalyKu
0

Eu recomendaria o uso de duas placas de metal finas para formar um capacitor. Uma placa seria colocada em cima da caixa e a outra fixada a alguma altura da caixa. À medida que a caixa se move para cima e para baixo, a capacitância (C) varia devido à mudança na separação (d) das placas (C = kA / d). Essa alteração pode ser "convertida" por meios apropriados para uma mudança de tensão, frequência etc. e depois para um formato apropriado para a interface do arduino (pode ser necessária amplificação).

Guill
fonte
Isso não vai funcionar. 1: Embora não tenhamos dimensões, brinque um pouco com números e você verá que a faixa dinâmica é grande, enquanto a capacitância pode ser muito pequena. 2 .: Se a configuração é feita de metal, cada uma de suas placas forma um capacitor com a configuração. Ou seja, você tem duas tampas em série com comprimento de cabo variável entre elas. A capacitância será mais ou menos constante. Existem sensores capacitivos, mas seu princípio é diferente e eles podem medir diferenças de não muito mais que 1 cm.
sweber