Cómo usar un sensor de distancia con tu Raspberry Pi (sensor ultrasónico HC-SR04) Aún no hay puntuaciones.

Usar un sensor Ultrasónico con nuestra Raspberry Pi

Para muchos proyectos (al aire libre) una medición de distancia es necesaria o ventajosa. Estos pequeños módulos están disponibles a partir de 1-2 euros y pueden medir la distancia hasta 4-5 metros por ultrasonido y son sorprendentemente precisos. Este tutorial te quiere mostrar cómo conectarlos a una Raspberry Pi y su control.

Hardware

Cableado

Hay cuatro pins o clavijas en el módulo de ultrasonido que están conectadas a la Raspberry Pi:

  • VCC al Pin 2 (VCC)
  • GND a Pin 6 (GND)
  • TRIG al Pin 12 (GPIO18)
  • conectar la resistencia 330Ω a ECHO. En su extremo se conecta al Pin 18 (GPIO24) y a través de una resistencia 470Ω se conecta también al Pin 6 (GND).

Hacemos esto porque los pines GPIO sólo toleran un máximo de 3.3V. La conexión a GND debe tener una señal obvia en GPIO24. Si no se envía ningún pulso, la señal es 0 (a través de la conexión con GND), de lo contrario es 1. Si no hubiera conexión con GND, la entrada sería indefinida si no se envía ninguna señal (aleatoriamente 0 ó 1), lo que resulta ambiguo.

Aquí está la estructura en forma de diagrama de circuito:

conexión de un sensor de ultrasonidos a una Raspberry Pi

Script para control

En primer lugar, se debe instalar la librería Python GPIO

Para utilizar el módulo, creamos un nuevo script
sudo nano ultrasonic_distance.py

con el siguiente contenido:

#Libraries
import RPi.GPIO as GPIO
import time

#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

#set GPIO Pins
GPIO_TRIGGER = 18
GPIO_ECHO = 24

#set GPIO direction (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)

def distance():
# set Trigger to HIGH
GPIO.output(GPIO_TRIGGER, True)

# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)

StartTime = time.time()
StopTime = time.time()

# save StartTime
while GPIO.input(GPIO_ECHO) == 0:
StartTime = time.time()

# save time of arrival
while GPIO.input(GPIO_ECHO) == 1:
StopTime = time.time()

# time difference between start and arrival
TimeElapsed = StopTime - StartTime
# multiply with the sonic speed (34300 cm/s)
# and divide by 2, because there and back
distance = (TimeElapsed * 34300) / 2

return distance

if __name__ == '__main__':
try:
while True:
dist = distance()
print ("Measured Distance = %.1f cm" % dist)
time.sleep(1)

# Reset by pressing CTRL + C
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()

Después de eso, lo ponemos en funcionamiento mediante:
sudo python ultrasonic_distance.py

Así que cada segundo, la distancia será medida hasta que el script sea cancelado presionando CTRL + C.
Eso es todo. Se puede utilizar en muchos campos, pero quien quiera medir distancias más grandes tendrá que recurrir a dispositivos de medición láser, que, sin embargo, son mucho más caros.

Califique esto

También te puede interesar

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Pin It on Pinterest

Shares