5.3 Detección de Obstáculos

Este módulo se instala comúnmente en coches y robots para determinar la existencia de obstáculos adelante. También se utiliza ampliamente en dispositivos portátiles, grifos de agua y otros.

Componentes Necesarios

En este proyecto, necesitamos los siguientes componentes.

Es definitivamente conveniente comprar un kit completo, aquí tienes el enlace:

Nombre

ELEMENTOS EN ESTE KIT

ENLACE

Kit de Inicio ESP32

320+

ESP32 Starter Kit

También puedes comprarlos por separado en los enlaces a continuación.

INTRODUCCIÓN DE COMPONENTES

ENLACE DE COMPRA

ESP32 WROOM 32E

BUY

Extensión de Cámara ESP32

-

Cables Puente

BUY

Módulo de Evitación de Obstáculos

BUY

Pines Disponibles

  • Pines Disponibles

    Aquí tienes una lista de los pines disponibles en la placa ESP32 para este proyecto.

    Pines Disponibles

    IO13, IO14, IO27, IO26, IO25, IO33, I35, I34, I39, I36, IO4, IO18, IO19, IO21, IO22, IO23

  • Pines de Arranque (Entrada)

    Los pines de arranque son un conjunto especial de pines que se utilizan para determinar modos de arranque específicos durante el inicio del dispositivo (es decir, reseteo por encendido).

    Pines de Arranque

    IO5, IO0, IO2, IO12, IO15

    Generalmente, no se recomienda usarlos como pines de entrada. Si deseas utilizar estos pines, considera el impacto potencial en el proceso de arranque. Para más detalles, por favor refiérete a la sección Pines de Estrapeo.

Esquemático

../../_images/circuit_5.3_avoid.png

Cuando el módulo de evitación de obstáculos no detecta ningún obstáculo, IO14 devuelve un nivel alto. Sin embargo, cuando detecta un obstáculo, devuelve un nivel bajo. Puedes ajustar el potenciómetro azul para modificar la distancia de detección de este módulo.

Cableado

../../_images/5.3_avoid_bb.png

Código

Nota

  • Abre el archivo 5.3_avoid.py ubicado en la ruta esp32-starter-kit-main\micropython\codes, o copia y pega el código en Thonny. Luego, haz clic en «Ejecutar Script Actual» o presiona F5 para ejecutarlo.

  • Asegúrate de seleccionar el intérprete «MicroPython (ESP32).COMxx» en la esquina inferior derecha.

import machine
import time

ir_avoid = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_UP) # pin del módulo de evitación

while True:

    # Imprime los valores del módulo de evitación de obstáculos
    print(ir_avoid.value())
    time.sleep(0.1)

Mientras el programa esté en ejecución, si el módulo IR de evitación de obstáculos detecta un obstáculo frente a él, el valor «0» se mostrará en el Monitor Serial, de lo contrario, se mostrará el valor «1».