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

9

No me importa cuánto se está moviendo, qué tan rápido 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á parada guardar mi batería)

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

Robert Atkins
fuente
3
¿A qué se adjunta el proyecto? El movimiento lineal muy constante / estable puede ser más difícil de detectar, pero para automóviles / bicicletas, etc., normalmente puede detectar cambios en el ruido y la vibración con bastante facilidad.
PeterJ
¿De qué tipo es tu dispositivo? ¿Es terrestre, ferroviario, acuático, aéreo u otro? Además, ¿cómo define el término 'movimiento'? P.ej. dispositivo cuando se transporta en transporte considerado en movimiento o no?
Vovanium
Editar para indicar proyecto montado en bicicleta. No está sobre rieles ;-).
Robert Atkins
@LeoR Estaba pensando que un acelerómetro probablemente sería la opción, pero luego encontré esta respuesta: electronics.stackexchange.com/questions/105826/… (sensor de vibración de resorte en tubo). ¿Lo estoy pensando demasiado? ¿Puedo agregar un par de pasivos a esto para que informe "alto" a un pin Arduino durante 30-60 segundos después de la última vez que el interruptor hizo contacto?
Robert Atkins
2
Agregue una anulación: ¡es posible que no desee que sus luces se apaguen en el semáforo!
Brian Drummond

Respuestas:

10

Si es para usar en una bicicleta, entonces usaría un circuito de detección de opto de baja potencia en los radios de la rueda. Hay varias variantes de esto y es importante la capacidad de pulsar el LED para conservar energía, por lo tanto, si un radio pasa a 10 veces por segundo (lo que indica una velocidad mínima), deberá 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 para que si alguien no está sentado en la silla de montar y no se detecta movimiento, el LED se apaga por completo.

Andy alias
fuente
55
Tradicionalmente, un velocímetro de bicicleta usa un interruptor de láminas y un imán conectado a uno de los radios. Una rueda de bicicleta (en contacto con el suelo y bajo el poder humano) no puede girar más rápido que los 20 Hz, o eso puede hacer un interruptor de láminas barato. No hay energía cuando no está en uso, una carga de resistencia desplegable cuando está encendida. Tuve una conexión inalámbrica durante años con un par de celdas de monedas.
Phil
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 carril de vibración excepcionalmente bajo, verá aceleraciones fluctuantes durante el movimiento. Debería ser bastante simple usar un promedio móvil en cada eje y considerar el dispositivo como "en movimiento" cuando la variación está por encima de cierto umbral. Se detectará un poco de aceleración aleatoria cuando el dispositivo esté estacionario, pero el umbral debería ocuparse de eso.

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

LeoR
fuente
Tenga cuidado con solo usar la aceleración solo, cuando viaje a una velocidad constante también verá aceleración 0.
helloworld922
77
No creo haber visto un vehículo en movimiento que realmente se mueva a una velocidad constante. Cada vez que he jugado con acelerómetros, puedes distinguir claramente entre "movimiento" y "estacionario" porque mientras te mueves, al menos un eje fluctuaría con vibraciones aleatorias y sacudidas.
LeoR
Debe usar la variación del promedio de ejecución. Esto le permitirá, por ejemplo, colocar la bicicleta de costado y no hacer que se dispare constantemente debido a la aceleración debida a la gravedad.
Samuel
Simplemente monte el acelerómetro en el manillar. Probablemente esté cerca del LED de todos modos, y el manillar nunca es estable mientras se conduce.
MSalters
7

Mientras especificas 'ver si se está moviendo' como tu 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 habrá una clara delimitación entre 'en uso y en movimiento' y 'no en el usuario y aún en movimiento (ligeramente)'. Sin embargo, no esperaría que ese fuera el caso.

Vale la pena considerar que si la bicicleta está conectada / estacionada en una estructura que se mueve con frecuencia (otras personas adjuntaron o desconectaron sus bicicletas, trenes o vehículos cerca, adentro cerca de una bomba loca de HVAC, adentro en pisos de madera / hinchables cuando alguien pasa. ..) entonces sus luces se encenderán cuando la bicicleta se mueva. Esto no es realmente lo que quieres. Desea que las luces se enciendan cuando un ciclista (usted) está moviendo la bicicleta. Para ese fin, un sensor de proximidad (que se bloquea solo cuando está en la bicicleta) o incluso algo así como un sensor de velocidad / interruptor de láminas funcionaría. Aquí hay un tutorial para un velocímetro de bicicleta Arduino que usa un interruptor de láminas: http://www.instructables.com/id/Arduino-Bike-Speedometer/la ventaja de esto es que obtienes una lectura de velocidad y sería bastante trivial agregar un gatillo para las luces (con un apagado retrasado para los períodos en que la bicicleta no está moviéndose para luces / tráfico y similares.)

Nahkki
fuente
5

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

ingrese la descripción de la imagen aquí

Solo tenga cuidado de observar cuán alta puede ser la salida de voltaje, sugieren usar un divisor de resistencia para reducir el voltaje y usar un pin ADC. Si bien no estoy tan interesado personalmente en usar las pinzas de diodo internas en un AVR si usas una resistencia de límite de corriente de la serie 1K dada la baja corriente para comenzar, no puedo ver que tengas demasiados problemas para conectarte a un dispositivo digital ingrese si eso proporciona suficiente sensibilidad y el ligero aumento en Vcc no causará otros problemas hasta que las abrazaderas surtan efecto.

De todos modos, podría ser otro sensor que sería interesante observar. Si bien probablemente no importará mucho para un Arduino que tiene una corriente de reposo relativamente alta en el regulador y su proyecto en particular, puede ser útil para muchos proyectos. Consumen cero energía y se pueden usar para despertar un microcontrolador del sueño profundo, suponiendo que reciba suficiente vibración para activar un nivel lógico alto.

PeterJ
fuente
¡+1 por la posibilidad de que esto despierte al micro!
Seidleroni
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 sobre la que se mueve, y las compara en tiempo real con un procesador incorporado especialmente diseñado para medir el movimiento Preferiblemente todo en un chip, con una conveniente interfaz MCU.

En otras palabras, un sensor óptico del mouse. ingrese la descripción de la imagen aquí

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

Spehro Pefhany
fuente
2

Muchas de estas respuestas son demasiado complicadas y probablemente darán lugar a falsos positivos y / o falsos negativos. Los acelerómetros se apagarán si se mueve la bicicleta, y no se dispararán si se mueve a un ritmo constante. Tomar imágenes ópticas del terreno es costoso para 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. Esto asegurará que su sistema se dispare si y solo si un ciclista está causando que se mueva.
Hay una pregunta muy simple que debes hacer para encontrar la respuesta correcta: ¿Qué es diferente entre un ciclista que monta la bicicleta y algo más que la mueve? La respuesta es igualmente simple: las ruedas giran.
Entonces, su solución, entonces, es usar algo que mida la rueda en el eje de rotación, algo como la idea del mouse de Spehro, tal vez.

Oportunidad
fuente
Me gustaría ir un paso más allá y preguntar "¿cómo puedo saber si una persona está usando la bicicleta?"
hoosierEE
2

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

  • recorrido de la suspensión (p. ej., opto-interruptor en la horquilla delantera)
  • presión de los neumáticos (complicado dado el tamaño de un neumático de bicicleta)
  • flexión del marco (mejor para marcos de acero que aluminio o carbono)
  • sensores de presión en los puntos de contacto (empuñaduras, sillín, pedales; lógicos O juntos)
  • Interruptor de pie de apoyo
hoosierEE
fuente
2

Si no le 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. Existen otras variantes cada vez más pequeñas de la misma tecnología (SMD y orificio pasante).

Lior Bilia
fuente
¿Un interruptor de bola rodante necesita una noción de "arriba"? Como en, tomé mi proyecto y lo puse al revés en relación con la orientación anterior, ¿se movió una vez o se mueve continuamente de acuerdo con el interruptor?
Robert Atkins
Existen pocas variaciones de dicho interruptor, que pueden activarse al inclinarse, vibrar o agitarse. Las bolas dentro del componente finalmente llegan a una posición de descanso, por lo que depende del programador decidir qué hacer con los datos generados.
Lior Bilia
0

Para detectar que el objeto se está moviendo, sugiero un fotointerruptor con un péndulo de algún tipo. Tome uno como este y construya una "cosa mecánica" que se mueva en su área de detección. http://se.farnell.com/sharp/gp1s53vj000f/photointerrupter-compact/dp/9708065

Probablemente podría recuperar todas las partes necesarias de un mouse de computadora con un botón de rueda o un detector de movimiento de bola.

Dejvid_no1
fuente
2
Eso es un acelerómetro mecánico. Un acelerómetro MEMS es menos costoso
Scott Seidman
Wow, los circuitos MEMS son realmente baratos hoy en día.
Dejvid_no1
Absolutamente. Un acelerómetro MEMS 3-D con salidas digitales cuesta alrededor de $ 1.50 en estos días en cantidades modestas (como 10)
Scott Seidman
2
Hace 15 años, pagaba alrededor de $ 1,500 por acelerómetros con capacidades que $ 1.50 me darán hoy
Scott Seidman
1
@ScottSeidman Eso es cierto, ¡pero los acelerómetros de equilibrio de fuerza de hoy siguen siendo un orden de magnitud mejor que los mejores MEMS para DC a ~ 100Hz! Lamentablemente son dos órdenes de magnitud más caros.
Phil