Detectar las condiciones físicas de un robot siempre es útil en aplicaciones robóticas. Especialmente si el robot es un rover y está diseñado para explorar diferentes terrenos. En estas aplicaciones, hay casos en los que es necesario detectar el estado del robot. Puede implicar detectar una colisión o caída, cambiar la orientación del cuerpo del robot, detectar la dirección de navegación o detectar el estado del robot en relación con el terreno circundante, etc. importantes cambios de estado. Si un robot está diseñado para explorar al aire libre, es importante saber si ha chocado de lado o ha caído de costado. Esto se puede utilizar para tomar acciones intuitivas en respuesta a tales eventos.
La detección de caídas o colisiones por parte del cuerpo del robot puede ser especialmente crucial en el diseño de robots de batalla. Los robots de batalla están diseñados para vencer a otros robots en una batalla robótica. Al detectar impacto o colisión en partes específicas del cuerpo robótico, se puede diseñar un robot de batalla para realizar acciones autónomas de rescate, estabilización o actuar contra la carga.
En este proyecto, diseñamos un circuito de detección de colisiones/caídas utilizando Arduino y un sensor de detonación. El sensor de detonación puede resultar útil para detectar impactos como una colisión o una caída. Un sensor de detonación es sensible a las vibraciones y puede proporcionar una advertencia temprana antes de una desestabilización total o daño si se instala correctamente en el conjunto mecánico de un rover. Probemos un circuito de detección de detonación con un popular sensor de detonación KY-031.
Componentes necesarios
- Arduino UNO x1
- Sensor de detonación KY-031 x1
- LEDx1
- Resistencia 330Ω x1
- Cables de conexión/cables de puente
- tablero de prueba
- Fuente de alimentación para Arduino
Conexiones de circuito
En este proyecto, Arduino interactúa con un sensor de detonación para detectar cualquier impacto, como una colisión o una caída. El sensor de detonación utilizado en el circuito es KY-031. El sensor tiene tres terminales: Señal, VCC y GND. El terminal de señal está indicado por la etiqueta 'S', el del medio es VCC y GND está indicado por la etiqueta '-' en el sensor.
Para la interfaz, el sensor de detonación KY-031 con Arduino conecta el pin S a cualquier GPIO del Arduino, el pin 7 en este caso, y conecta los pines VCC y GND a la salida de 5 V y uno de los pines GND del Arduino, respectivamente. Para una indicación del impacto, se conecta un LED al pin 6 del Arduino UNO. El LED tiene una interfaz que suministra corriente desde el pin Arduino. Una resistencia limitadora de corriente está conectada en serie al LED para su protección.
Diagrama de circuito
Bosquejo de Arduino
Como funciona
Un sensor de detonación es un sensor de vibración que detecta vibraciones o golpes cuando se golpea o se golpea. Uno de los sensores de detonación más populares es el KY-031. Este sensor de detonación sencillo y económico se puede conectar fácilmente a cualquier microcontrolador o computadora de placa única. Dispone de una salida digital que, cuando se enciende el sensor, se mantiene en nivel ALTO por defecto. Siempre que hay un choque o impacto, la salida digital del sensor está actualmente BAJA.
El sensor de detonación KY-031 en realidad tiene un resorte vibratorio conductor. Este resorte actúa como un interruptor dentro del sensor y permanece en circuito abierto por defecto. Cuando hay un choque o impacto, el resorte vibra por un momento y toca un contacto, formando una conexión cerrada. De forma predeterminada, la salida del sensor se eleva a nivel ALTO mediante una resistencia de 10 K. Cuando el resorte vibratorio toca el contacto, la salida se mueve hacia ABAJO. A continuación se muestra una representación simplificada del sensor de detonación.
El sensor de detonación no es un dispositivo muy sensible. Sólo puede detectar vibraciones o golpes fuertes. Por tanto, puede resultar útil a la hora de detectar colisiones o caídas. También se puede utilizar como sensor de golpe en la puerta.
En el circuito, la salida del sensor de detonación está conectada al pin 7 del Arduino. Dado que el sensor está alto de forma predeterminada y solo genera un nivel BAJO en caso de choque o vibración, el Arduino está programado para agrupar un nivel BAJO lógico en el pin respectivo. Siempre que hay una señal BAJA en el pin 7 del Arduino, convierte el pin 6 en ALTO, encendiendo un LED. Esto proporciona una indicación visual del impacto detectado en el sensor.
En una aplicación robótica, el sensor de detonación se puede sujetar al cuerpo del robot para que se le transfiera cualquier impacto o vibración del cuerpo. En una aplicación robótica, en lugar de encender un LED, se puede iniciar una contraacción, como activar algunos actuadores para estabilizar el cuerpo del robot o contraatacar (como en el caso de los robots de batalla).
Código
El boceto es muy sencillo. Comienza declarando los pines conectados al sensor de detonación y al LED. Variables: 'knockDetect', 'impactAlarm' y 'lastKnockTime' se declaran para detectar la lógica de la señal de golpe/golpe, el estado del impacto de la señal y registrar el tiempo transcurrido desde el último impacto en milisegundos, respectivamente.
En la función de configuración, la velocidad en baudios para mensajes en serie se establece en 9600 usando el método de inicio en serie, el pin LED se configura como salida mientras que el pin Knock se configura como entrada.
En el bucle (funciones 0, el Arduino agrupa una señal lógica BAJA en el pin de detonación. Si hay un nivel lógico bajo, se pasa un mensaje que indica la detección de detonación al puerto serie, el LED se enciende al pasar una lógica ALTA en el pin 6, y el indicador impactAlarm está configurado en Verdadero. Si no se detecta ninguna señal BAJA en una iteración del bucle desde 500 milisegundos desde el último impacto, se pasa un mensaje que indica que no hay impacto al puerto serie, el LED se apaga pasando una lógica BAJA en el pin 6, y el indicador impactAlarm está establecido en False.
Resultado
La siguiente demostración muestra cómo funciona el circuito cuando el sensor de detonación cae sobre una superficie.