Práctica 03:
Sensor de distancia

Componentes

  • Sensor de distancia ultrasónico (HC-SR04)
  • Resistencia 330Ω
  • Resistencia 470Ω
  • LED (Diodo emisor de luz)
  • Resistencia 220Ω

Sensor de distancia ultrasónico

Detecta el eco de ultrasonidos al rebotar en objetos cercanos

Utiliza la velocidad del sonido (343 m/s) para calcular la distancia al objeto

Código Python

Medida de distancia


#!/usr/bin/env python3

from gpiozero import DistanceSensor

ultrasonic = DistanceSensor(echo=17, trigger=4)

while True:
    print(ultrasonic.distance)
	

Código Python

Detección de umbral (0.3m por defecto)


#!/usr/bin/env python3

from gpiozero import DistanceSensor

ultrasonic = DistanceSensor(echo=17, trigger=4)

while True:
    ultrasonic.wait_for_in_range()
    print("In range")
    ultrasonic.wait_for_out_of_range()
    print("Out of range")
	

Modificación de la distancia umbral por defecto (0.3m)

gpiozero / distance-sensor-hc-sr04

Opción 1 (constructor)


ultrasonic = DistanceSensor(echo=17, trigger=4, threshold_distance=0.5)
	

Opción 2 (método)


ultrasonic.threshold_distance = 0.5
	

Cambiando la distancia máxima por defecto (1 m)

Opción 1 (constructor)


ultrasonic = DistanceSensor(echo=17, trigger=4, max_distance=2)
	

Opción 2 (método)


ultrasonic.max_distance = 2
	

Esquema con LED

Código Python


#!/usr/bin/env python3

from gpiozero import DistanceSensor, LED

ultrasonic = DistanceSensor(echo=17, trigger=4)
led = LED(20)

while True:
    ultrasonic.wait_for_in_range()
    led.on()
    ultrasonic.wait_for_out_of_range()
    led.off()
	

Bonus

Las funciones wait_for son bloqueantes.

Hacer lo mismo con funciones when


#!/usr/bin/env python3

from gpiozero import DistanceSensor, LED

ultrasonic = DistanceSensor(echo=17, trigger=4)
led = LED(20)

def hola():
    led.on()

def adios():
    led.off()

ultrasonic.when_in_range = hola
ultrasonic.when_out_of_range = adios