Skip to main content

Grove - Sensor de Colisión

pir

Grove - Sensor de Colisión puede detectar si ocurre algún movimiento de colisión o vibración. Emitirá una señal de pulso bajo cuando se detecte vibración. Para hacer que la señal de salida sea más confiable y limpia, agregamos un circuito exterior necesario para reducir el impacto del ruido. Por lo tanto, las sacudidas normales no causarán ninguna salida. El sensor tiene una alta sensibilidad. Puedes usarlo para aplicar a tu proyecto, como activación automática y apagado para gestión de batería.

Su voltaje de funcionamiento es de 5V lo que lo hace compatible con el sistema estándar de Arduino/Seeeduino de 5V.

pir

Especificaciones

  • Voltaje: 3.3/5V
tip

Más detalles sobre los módulos Grove consulte Sistema Grove

Plataformas Soportadas

ArduinoRaspberry Pi

pir

pir

caution

Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.

Primeros Pasos

Jugar Con Arduino

Basado en que la señal de salida cambiará cuando ocurra una colisión, diseñamos esta demostración: cada vez que el sensor detecta una colisión, el LED se encenderá. Aquí el LED es como un dispositivo gestionado, y puedes referirte a la demostración para controlar tu dispositivo, como una luz de bicicleta.

El procedimiento es el siguiente:

1.Conecta el sensor de colisión al puerto Digital 2 del Grove - Basic Shield usando un cable Grove y conecta un LED al Pin 13.

2.Conecta el Grove - Basic Shield al Arduino.

3.Conecta Arduino/Seeeduino a la PC usando un cable USB.

4.Copia y pega el código de abajo en un nuevo sketch de Arduino. Y súbelo a tu Arduino.

// Test Grove - Collision Sensor
#define LED 13 //the onboard LED of Arduino or Seeeduino
#define COLLISION_SENSOR 2//collision sensor is connected with D2 of Arduino

void setup()
{
pins_init();
}

void loop()
{
if(isTriggered())
{
turnOnLED();
delay(2000);
}
else turnOffLED();
}

void pins_init()
{
pinMode(LED,OUTPUT);
turnOffLED();
pinMode(COLLISION_SENSOR,INPUT);
}

boolean isTriggered()
{
if(!digitalRead(COLLISION_SENSOR))
{
delay(50);
if(!digitalRead(COLLISION_SENSOR))
return true;//the collision sensor triggers
}
return false;
}

void turnOnLED()
{
digitalWrite(LED,HIGH);//the LED is on
}

void turnOffLED()
{
digitalWrite(LED,LOW);//the LED is off
}

5.Ahora puedes verificar el estado del LED. El LED debería encenderse cada vez que tamborilees con los dedos sobre la mesa.

Puedes ajustar la sensibilidad del sensor cambiando la función delay(50) en el código.

if(!digitalRead(COLLISION_SENSOR))
{
return true;//the collision sensor triggers
}
return false;

Jugar con Codecraft

Hardware

Paso 1. Conecta un Grove - Collision Sensor al puerto D2 de un Base Shield.

Paso 2. Conecta el Base Shield a tu Seeeduino/Arduino.

Paso 3. Conecta el Seeeduino/Arduino a tu PC mediante un cable USB.

Software

Paso 1. Abre Codecraft, añade soporte para Arduino, y arrastra un procedimiento principal al área de trabajo.

note

Si esta es tu primera vez usando Codecraft, consulta también Guía para usar Codecraft con Arduino.

Paso 2. Arrastra bloques como en la imagen de abajo o abre el archivo cdc que se puede descargar al final de esta página.

pir

Sube el programa a tu Arduino/Seeeduino.

success

Cuando el código termine de subirse, el LED en el pin 13 del Arduino se encenderá cuando el Collision Sensor detecte una colisión.

Jugar con Raspberry Pi (Con Grove Base Hat para Raspberry Pi)

Hardware

  • Paso 1. Elementos utilizados en este proyecto:
Raspberry piGrove Base Hat para RasPiGrove - Collision Sensor

pir

pir

pir

Consigue UNO AhoraConsigue UNO AhoraConsigue UNO Ahora
  • Paso 2. Conecta el Grove Base Hat al Raspberry.
  • Paso 3. Conecta el Grove - Collision Sensor al puerto D5 del Base Hat.
  • Paso 4. Conecta el Raspberry Pi a la PC a través del cable USB.

pir

note

Para el paso 3 puedes conectar el Grove - Collision Sensor a cualquier Puerto GPIO pero asegúrate de cambiar el comando con el número de puerto correspondiente.

Software

  • Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
  • Paso 2. Descarga el archivo fuente clonando la librería grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Paso 3. Ejecuta los siguientes comandos para ejecutar el código.
cd grove.py/grove
python grove_collision_sensor.py 5

Following is the grove_collision_sensor.py code.


import time
from grove.gpio import GPIO


class GroveCollisionSensor(GPIO):
def __init__(self, pin):
super(GroveCollisionSensor, self).__init__(pin, GPIO.IN)
self._last_time = time.time()

self._on_collision = None
self._on_NoCollision = None
self.collisionState = False

@property
def on_collision(self):
return self._on_collision

@on_collision.setter
def on_collision(self, callback):
if not callable(callback):
return

if self.on_event is None:
self.on_event = self._handle_event

self._on_collision = callback

@property
def on_NoCollision(self):
return self._on_NoCollision

@on_NoCollision.setter
def on_NoCollision(self, callback):
if not callable(callback):
return

if self.on_event is None:
self.on_event = self._handle_event

self._on_NoCollision = callback

def _handle_event(self, pin, value):
t = time.time()
dt, self._last_time = t - self._last_time, t

if not value:
if callable(self._on_collision):
self._on_collision(dt)
else:
if callable(self._on_NoCollision):
self._on_NoCollision(dt)

Grove = GroveCollisionSensor


def main():
import sys

if len(sys.argv) < 2:
print('Usage: {} pin'.format(sys.argv[0]))
sys.exit(1)

button = GroveCollisionSensor(int(sys.argv[1]))

def on_collision(t):
print('Collision')
def on_NoCollision(t):
print("No Collision")

button.on_collision = on_collision
# button.on_NoCollision = on_NoCollision

while True:
time.sleep(1)


if __name__ == '__main__':
main()


success

If everything goes well, you will be able to see the following result


pi@raspberrypi:~/grove.py/grove $ python grove_collision_sensor.py 5
Collision
Collision
Collision
Collision
Collision
Collision
Collision
^CTraceback (most recent call last):
File "grove_collision_sensor.py", line 112, in <module>
main()
File "grove_collision_sensor.py", line 108, in main
time.sleep(1)
KeyboardInterrupt
pi@raspberrypi:~/grove.py/grove $

Puedes salir de este programa simplemente presionando ++ctrl+c++.

Jugar con Raspberry Pi (con GrovePi_Plus)

1.Deberías tener una raspberry pi y un grovepi o grovepi+.

2.Deberías haber completado la configuración del entorno de desarrollo, de lo contrario sigue aquí.

3.Conexión

  • Conecta el sensor al socket D2 del grovepi usando un cable grove.

4.Navega al directorio de las demos:

cd yourpath/GrovePi/Software/Python/
  • Para ver el código
nano grove_collision_sensor.py   # "Ctrl+x" to exit #
import time
import grovepi

# Connect the Grove Collision Sensor to digital port D2
# SIG,NC,VCC,GND
collision_sensor = 2

grovepi.pinMode(collision_sensor,"INPUT")

while True:
try:
print grovepi.digitalRead(collision_sensor)
time.sleep(.5)

except IOError:
print "Error"

5.Ejecuta la demostración.

sudo python grove_collision_sensor.py

Visor Esquemático en Línea

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...