¿Qué sensor debo usar para determinar si mi proyecto se está moviendo?

9

No me importa cuánto se esté moviendo, a qué velocidad o en qué dirección, solo quiero que mi proyecto basado en Arduino sepa si se está moviendo o no (para poder apagar los LED de drenaje de alta corriente cuando mi bicicleta está parado para ahorrar mi batería.)

¿Quiero un acelerómetro, un giroscopio o algún otro tipo de sensor?

    
pregunta Robert Atkins

9 respuestas

10

Si es para usar en una bicicleta, entonces usaría un circuito de detección de baja potencia en los radios de la rueda. Hay varias variantes de esto y lo importante es la capacidad de pulsar el LED para ahorrar energía, por lo tanto, si un radio pasa 10 veces por segundo (lo que indica una velocidad mínima), entonces necesitará encender el LED durante al menos 0.1 Segundos y "buscar" una interrupción del haz - esto indica movimiento. Solo una idea.

También puede considerar un interruptor de silla de montar, de modo que si alguien no está sentado en la silla y no se detecta ningún movimiento, el LED se apaga completamente.

    
respondido por el Andy aka
7

Un acelerómetro sería adecuado en la mayoría de los casos. Técnicamente, la aceleración será 0 a una velocidad constante, pero en la práctica, a menos que su proyecto esté montado en algún tipo de riel de vibración excepcionalmente baja, verá aceleraciones fluctuantes durante el movimiento. Debería ser bastante simple usar una media móvil en cada eje y considerar el dispositivo como "en movimiento" cuando la variación está por encima de un cierto umbral. Habrá un poco de aceleración aleatoria detectada cuando el dispositivo está parado, pero el umbral debe tratar eso.

Puede obtener tableros con acelerómetros I2C montados en ellos de muchos proveedores electrónicos aficionados. El procedimiento para hablar con ellos variará ligeramente dependiendo del chip, pero en general es bastante fácil hablar con dispositivos I2C desde un arduino.

    
respondido por el LeoR
7

Mientras especifique "ver si se está moviendo" como su objetivo. Podría recomendar una medida diferente para verificar si la bicicleta está en movimiento. La cantidad de captura de acelerómetros de ruido es sorprendente: podría ser que su situación sea tal que haya una clara delimitación entre "en uso y en movimiento" y "no en usuario y aún en movimiento (ligeramente)". Aunque no esperaría que ese fuera el caso.

Vale la pena considerar que si la bicicleta está colocada / estacionada en una estructura que se mueve con frecuencia (otras personas están conectadas o desprendidas de sus bicicletas, trenes o vehículos cerca, adentro cerca de una bomba HVAC loca, adentro en pisos de madera / inflables cuando alguien pasea por ...) entonces sus luces se encenderán cuando la bicicleta se mueva. Esto no es realmente lo que quieres. Quiere que se enciendan las luces cuando un ciclista (usted) está moviendo la bicicleta. Con ese fin, un sensor de proximidad (que está bloqueado solo cuando estás en la bicicleta) o incluso algo como un sensor de velocidad / interruptor de lengüeta funcionaría. Aquí hay un tutorial para un velocímetro de bicicleta Arduino usando un interruptor de lámina: enlace El bono de esto es usted obtenga una lectura rápida y sería bastante trivial agregar un disparador para las luces (con un apagado diferido por períodos en los que la bicicleta no se está moviendo para las luces / tráfico y similares).

    
respondido por el Nahkki
5

Los acelerómetros, como han sugerido otros, son bastante fáciles de usar, especialmente en un Arduino con todas las bibliotecas y paneles de distribución disponibles. Otra cosa que vale la pena mirar es un Sensor de vibración piezoeléctrico como este disponible de Sparkfun por $ 2.95 en este momento:

Solo tenga cuidado de observar qué tan alto puede ser el voltaje de salida, sugieren usar un divisor de resistencia para reducir el voltaje y usar un pin ADC. Si bien no estoy muy interesado en el uso de las pinzas internas de diodo en un AVR, si usó un resistor de límite de corriente de la serie 1K dada la baja corriente para comenzar, no veo que tenga demasiados problemas para conectarse a un dispositivo digital. ingrese si eso le da suficiente sensibilidad y el ligero aumento en Vcc no causará otros problemas hasta que las pinzas tengan efecto.

De todos modos, podría ser otro sensor que sería interesante echar un vistazo. Si bien es probable que no importe mucho para un Arduino que tiene una corriente de reposo relativamente alta en el regulador y su proyecto en particular, pueden estar ordenados para muchos proyectos. Obtienen una potencia cero y se pueden usar para despertar a un microcontrolador desde el modo de suspensión profunda, suponiendo que obtenga la vibración suficiente para activar un nivel lógico alto.

    
respondido por el PeterJ
4

Una especie de cámara de alta velocidad y óptica de baja resolución que toma muchas fotos (a cientos o miles de cuadros por segundo ) de la superficie en la que se está moviendo , y los compara en tiempo real con un procesador integrado diseñado para medir el movimiento. Preferiblemente todo en un chip, con una interfaz MCU conveniente.

En otras palabras, un sensor de mouse óptico.

Lamentablemente, parece que las piezas de Avago ya no están en stock, pero podría hackear un mouse óptico, que también le dará la óptica y el LED de iluminación (es posible que tenga que modificar la óptica para obtener una distancia). Muchos de los sensores parecen ser de Pixart en Taiwán, y las hojas de datos están disponibles (a menudo no es cierto).

    
respondido por el Spehro Pefhany
2

Muchas de estas respuestas están demasiado complicadas y es probable que den como resultado falsos positivos y / o falsos negativos. Los acelerómetros se apagarán si se mueve la bicicleta, y no dispararán si se está moviendo a una velocidad constante. Tomar imágenes ópticas del terreno es costoso en el proceso y no es increíblemente confiable si el sensor no es tan bueno. La medición de la vibración se disparará si alguien golpea su bicicleta o se sacude de alguna manera.
Hay una pregunta muy simple que debes hacer para encontrar la respuesta correcta: ¿Qué es diferente entre un ciclista y otra cosa que lo mueve? La respuesta es igualmente simple: las ruedas giran.
Entonces, su solución es usar algo que mida la rueda en el eje de rotación, algo como la idea del ratón de Spehro, tal vez.
Esto asegurará que su sistema se active si y solo si un usuario está causando que se mueva.

    
respondido por el Chance
2

O podría sentir cuando un ciclista está en la bicicleta, como:

  • recorrido de la suspensión (por ejemplo, opto-interruptor en la horquilla delantera)
  • presión de los neumáticos (complicado dado el tamaño de un neumático de bicicleta)
  • marco flexible (mejor para marcos de acero que aluminio o carbono)
  • sensores de presión en los puntos de contacto (empuñaduras, sillines, pedales; lógicos O juntos)
  • interruptor de soporte de soporte
respondido por el hoosierEE
2

Si no te importa qué tipo de movimiento ocurre, entonces un interruptor de bola rodante es la solución más fácil de implementar. Requiere solo una entrada digital y un filtro de paso bajo.

Un ejemplo es el Signalquest SQ-SEN-200. Hay otras variantes más pequeñas y más grandes de la misma tecnología (SMD y agujero pasante).

    
respondido por el Lior Bilia
0

Para simplemente detectar que el objeto se está moviendo, sugiero un interruptor fotoeléctrico con un péndulo de algún tipo. Toma uno como este y construye una "cosa mecánica" que se mueve en su área de detección. enlace

Probablemente podrías salvar todas las partes necesarias de un mouse de computadora con el botón de la rueda o el detector de movimiento de la bola.

    
respondido por el Dejvid_no1

Lea otras preguntas en las etiquetas