Grove - Sensor de Colisão

Grove - Sensor de Colisão pode detectar se ocorre qualquer movimento de colisão ou vibração. Ele irá gerar um sinal de pulso em nível baixo quando uma vibração for detectada. Para tornar o sinal de saída mais confiável e limpo, adicionamos um circuito externo necessário para reduzir o impacto do ruído. Portanto, agitações normais não causarão nenhuma saída. O sensor tem alta sensibilidade. Você pode usá‑lo em seu projeto, como despertar e desligamento automáticos para gerenciamento de bateria.
Sua tensão de operação é 5V, o que o torna compatível com o sistema padrão de 5V do Arduino/Seeeduino.
Especificações
- Tensão: 3,3/5V
Para mais detalhes sobre os módulos Grove, consulte o Grove System
Plataformas Compatíveis
| Arduino | Raspberry Pi |
|---|---|
|
|
As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade teórica ou de software do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software/código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários precisam escrever sua própria biblioteca de software.
Primeiros Passos
Brincar com Arduino
Com base no fato de que o sinal de saída mudará quando ocorrer uma colisão, projetamos este demo: cada vez que o sensor detecta colisão, o LED acenderá. Aqui o LED é usado como um dispositivo controlado, e você pode se basear neste demo para controlar seu dispositivo, como uma luz de bicicleta.
O procedimento é o seguinte:
1.Conecte o sensor de colisão à porta Digital 2 do Grove - Basic Shield usando um cabo Grove e conecte um LED ao pino 13.
2.Conecte o Grove - Basic Shield ao Arduino.
3.Conecte o Arduino/Seeeduino ao PC usando um cabo USB.
4.Copie e cole o código abaixo em um novo sketch do Arduino. E faça o upload para o seu 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.Agora você pode verificar o estado do LED. O LED deve acender toda vez que você tamborilar os dedos na mesa.
Você pode ajustar a sensibilidade do sensor alterando a função delay(50) no código.
if(!digitalRead(COLLISION_SENSOR))
{
return true;//the collision sensor triggers
}
return false;
Brincar com Codecraft
Hardware
Passo 1. Conecte um Grove - Sensor de Colisão à porta D2 de um Base Shield.
Passo 2. Conecte o Base Shield ao seu Seeeduino/Arduino.
Passo 3. Conecte o Seeeduino/Arduino ao seu PC por meio de um cabo USB.
Software
Passo 1. Abra o Codecraft, adicione o suporte ao Arduino e arraste um procedimento principal para a área de trabalho.
Se esta é a primeira vez que você usa o Codecraft, consulte também o Guia para usar Arduino com Codecraft.
Passo 2. Arraste os blocos como na figura abaixo ou abra o arquivo cdc, que pode ser baixado no final desta página.

Envie o programa para o seu Arduino/Seeeduino.
Quando o upload do código terminar, o LED no pino 13 do Arduino acenderá quando o Sensor de Colisão detectar colisão.
Brincar com Raspberry Pi (com Grove Base Hat para Raspberry Pi)
Hardware
- Passo 1. Coisas usadas neste projeto:
| Raspberry pi | Grove Base Hat para RasPi | Grove - Sensor de Colisão |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira agora |
- Passo 2. Conecte o Grove Base Hat ao Raspberry.
- Passo 3. Conecte o Grove - Sensor de Colisão à porta D5 do Base Hat.
- Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

No passo 3, você pode conectar o Grove - Sensor de Colisão a qualquer porta GPIO, mas certifique‑se de alterar o comando com o número de porta correspondente.
Software
- Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
- Passo 2. Baixe o arquivo‑fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Passo 3. Execute os comandos abaixo para rodar o código.
cd grove.py/grove
python grove_collision_sensor.py 5
A seguir está o código grove_collision_sensor.py.
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()
Se tudo correr bem, você poderá ver o seguinte resultado
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 $
Você pode sair deste programa simplesmente pressionando ++ctrl+c++.
Brincar com Raspberry Pi (com GrovePi_Plus)
1.Você deve ter um raspberry pi e um grovepi ou grovepi+.
2.Você deve ter concluído a configuração do ambiente de desenvolvimento, caso contrário siga as instruções aqui.
3.Conexão
- Conecte o sensor ao soquete D2 do grovepi usando um cabo grove.
4.Navegue até o diretório de demonstrações:
cd yourpath/GrovePi/Software/Python/
- Para ver o 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.Execute a demonstração.
sudo python grove_collision_sensor.py
Visualizador de Esquemático Online
Recursos
- [Zip] Grove - Collision Sensor Arquivo Eagle
- [PDF] MVS0608.02 folha de dados
- [Codecraft] Arquivo CDC
Suporte Técnico & Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



