Sensor ultrasónico MicroPython HC-SR04 – ESP32 y Thonny IDE

Sensor Ultrasonico Micropython Hc Sr04 Esp32 Y Thonny Ide



MicroPython se usa ampliamente con microcontroladores y sistemas integrados. Podemos escribir código y bibliotecas dentro de MicroPython IDE e interconectar múltiples sensores. Este artículo lo guiará en la medición de la distancia usando el ESP32 con sensor HC-SR04.

ESP32 con sensor ultrasónico HC-SR04 usando MicroPython

La interfaz ESP32 con ultrasonido solo requiere que se conecten dos cables. Usando sensores ultrasónicos, podemos medir la distancia del objeto y podemos desencadenar respuestas basadas en este sistema, como los sistemas para evitar colisiones de vehículos.









Usando MicroPython, que es un lenguaje diseñado para ESP32 y otros microcontroladores, podemos conectar múltiples sensores como el HC-SR04 . Se escribirá un código MicroPython que calcula el tiempo que tarda la onda SONAR en llegar del sensor al objeto y volver al objeto. Luego, usando la fórmula de distancia, podemos calcular la distancia del objeto.



Estos son algunos aspectos destacados del sensor HC-SR04:





Características Valor
Tensión de funcionamiento 5V CC
Corriente de funcionamiento 15mA
Frecuencia de operación 40KHz
Mi Rango 2cm/ 1 pulgada
Rango máximo 400 cm/ 13 pies
Precisión 3mm
Ángulo de medición <15 grados

Configuración de pines HC-SR04 HC-SR04 contiene lo siguiente cuatro patas:

  • VCC: Conectar al pin ESP32 Vin
  • Tierra: Conectar a tierra
  • Trigonometría: Pin para recibir la señal de control de la placa ESP32
  • Eco: Enviar señal de vuelta. La placa del microcontrolador recibe esta señal para calcular la distancia usando el tiempo



Cómo funciona el ultrasonido

Después de conectar el sensor HC-SR04 con ESP32, una señal en el Trigonometría el pin será generado por el tablero. Una vez que se recibe la señal en el pin de disparo del sensor HC-SR04, se generará una onda ultrasónica que sale del sensor y golpea el cuerpo del objeto u obstáculo. Después de golpearlo, rebotará en la superficie del objeto.

  Imagen que contiene texto Descripción generada automáticamente

Una vez que la onda reflejada llegue al extremo receptor del sensor, se generará un pulso de señal en el pin de eco. ESP32 recibe la señal del pin de eco y calcula la distancia entre el objeto y el sensor usando Distancia-Fórmula.

  Texto Descripción generado automáticamente

La distancia total calculada debe dividirse por dos dentro del código ESP32, ya que la distancia que obtenemos originalmente es igual a la distancia total del sensor al objeto y de regreso al extremo receptor del sensor. Entonces, la distancia real es la señal que equivale a la mitad de esa distancia.

Esquemático

El siguiente es el esquema para conectar ESP32 con sensor ultrasónico:

  Imagen que contiene texto, electrónica Descripción generada automáticamente

Conecte el disparador y el pin de eco del sensor con GPIO 5 y GPIO 18 de ESP32 respectivamente. También conecte ESP32 GND y pin Vin con pines de sensor.

Sensor ultrasónico HC-SR04 Pin ESP32
Trigonometría GPIO5
Eco GPIO18
TIERRA TIERRA
CCV VENIR

Hardware

Se requieren los siguientes componentes para programar el sensor ultrasónico:

  • ESP32
  • HC-SR04
  • Tablero de circuitos
  • Cables de puente

  Imagen que contiene texto Descripción generada automáticamente

Cómo configurar Ultrasonic HC-SR04 con ESP32 usando MicroPython

Antes de que podamos programar ESP32 con un sensor ultrasónico, necesitamos instalar una biblioteca en él. Conecte la placa ESP32 a la PC. Siga los pasos para completar la configuración de ESP32 con sensor ultrasónico en Thonny IDE usando MicroPython.

Paso 1: Ahora abra el IDE de Thonny. Crear un nuevo archivo en la ventana del editor Ir a : Archivo>Nuevo o presione Ctrl + N .

Una vez que se abra el nuevo archivo, pegue el siguiente código en la ventana del editor de Thonny IDE.

importar máquina , tiempo
de máquina importar Alfiler

clase HCSR04:

    # echo_timeout_us se basa en el límite de rango del chip (400 cm)
    definitivamente __caliente__ ( uno mismo , gatillo_pin , echo_pin , echo_timeout_us = 500 * 2 * 30 ) :

        uno mismo . echo_timeout_us = echo_timeout_us
        # Pin de activación de inicio (fuera)
        uno mismo . generar = Alfiler ( gatillo_pin , modo = Alfiler. AFUERA , jalar = Ninguna )
        uno mismo . generar . valor ( 0 )

        # Pin de eco de inicio (entrada)
        uno mismo . eco = Alfiler ( echo_pin , modo = Alfiler. EN , jalar = Ninguna )

    definitivamente _enviar_pulso_y_esperar ( uno mismo ) :

        uno mismo . generar . valor ( 0 ) # Estabilizar el sensor
        tiempo . dormir_nosotros ( 5 )
        uno mismo . generar . valor ( 1 )
        # Envía un pulso de 10us.
        tiempo . dormir_nosotros ( 10 )
        uno mismo . generar . valor ( 0 )
        probar :
pulso_tiempo = máquina. time_pulse_us ( uno mismo . eco , 1 , uno mismo . echo_timeout_us )
            devolver pulso_tiempo
        excepto OSError como ex:
            si ex. argumentos [ 0 ] == 110 : # 110 = FIN DE TIEMPO
                elevar OSError ( 'Fuera de rango' )
            elevar ex

    definitivamente distancia_mm ( uno mismo ) :

pulso_tiempo = uno mismo ._enviar_pulso_y_esperar ( )

milímetro = pulso_tiempo * 100 // 582
        devolver milímetro

    definitivamente distancia_cm ( uno mismo ) :

pulso_tiempo = uno mismo ._enviar_pulso_y_esperar ( )

cms = ( pulso_tiempo / 2 ) / 29.1
        devolver cms

Paso 2: Después de escribir el biblioteca código dentro de la ventana del editor ahora tenemos que guardarlo dentro del dispositivo MicroPython.

  Texto, aplicación Descripción generada automáticamente

Paso 3: Ir : Archivo>Guardar o presione Control + S .

  Interfaz gráfica de usuario, aplicación, Teams Descripción generada automáticamente

Paso 4: Una ventana nueva aparecerá. Asegúrese de que ESP32 esté conectado con la PC. Seleccione el dispositivo MicroPython para guardar el archivo de biblioteca.

  Interfaz gráfica de usuario, aplicación Descripción generada automáticamente

Paso 5: Guarde el archivo de la biblioteca ultrasónica con nombre hcsr04.py y haga clic OK .

  Interfaz gráfica de usuario, aplicación Descripción generada automáticamente

Ahora la biblioteca de sensores ultrasónicos hcsr04 se agregó con éxito a la placa ESP32. Ahora podemos llamar a funciones de biblioteca dentro del código para medir la distancia de diferentes objetos.

Código para sensor ultrasónico usando MicroPython

Para el código del sensor ultrasónico, cree un nuevo archivo ( Ctrl + N ). En la ventana del editor, ingrese el código que se proporciona a continuación y guárdelo dentro del main.py o boot.py expediente. Este código imprimirá la distancia de cualquier objeto que se encuentre frente a HC-SR04.

  Interfaz gráfica de usuario, texto, aplicación Descripción generada automáticamente

El código comenzó llamando a bibliotecas importantes como HCSR04 y tiempo biblioteca junto con dormir dar retrasos.

A continuación, creamos un nuevo objeto con un nombre sensor . Este objeto está tomando tres argumentos diferentes: disparador, eco y tiempo de espera. Aquí el tiempo de espera se define como el tiempo máximo después de que el sensor sale del rango.

sensor = HCSR04 ( gatillo_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )

Para medir y guardar distancia un nuevo objeto llamado distancia es creado. Este objeto salvará la distancia en cm.

distancia = sensor. distancia_cm ( )

Escriba el siguiente código para obtener datos en mm.

distancia = sensor. distancia_mm ( )

A continuación, imprimimos el resultado en el shell IDE de MicroPython.

impresión ( 'Distancia:' , distancia , 'cm' )

Al final se da un retraso de 1 seg.

dormir ( 1 )

El código completo se da a continuación:

de hcsr04 importar HCSR04
de tiempo importar dormir
#ESP32
sensor = HCSR04 ( gatillo_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
#ESP8266
#sensor = HCSR04(trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
tiempo Verdadero :
distancia = sensor. distancia_cm ( )
    impresión ( 'Distancia:' , distancia , 'cm' )
dormir ( 1 )

Después de escribir y guardar el código dentro del dispositivo MicroPython, ahora ejecuto el sensor ultrasónico main.py código de archivo Haga clic en el botón de reproducción o pulse F5 .

  Interfaz gráfica de usuario, texto, aplicación, chat o mensaje de texto Descripción generada automáticamente

Salida del sensor ultrasónico cuando el objeto está cerca

Ahora coloque un objeto cerca del sensor ultrasónico y verifique la distancia medida en la ventana del monitor serial de Arduino IDE.

  Imagen que contiene texto Descripción generada automáticamente

La distancia del objeto se muestra en la terminal de shell. Ahora el objeto se coloca a 5 cm del sensor ultrasónico.

Salida del sensor ultrasónico cuando el objeto está lejos

Ahora, para verificar nuestro resultado, colocaremos objetos lejos del sensor y verificaremos el funcionamiento del sensor ultrasónico. Coloque objetos como se muestra en la imagen a continuación:

  Imagen que contiene texto Descripción generada automáticamente

La ventana de salida nos dará una nueva distancia y, como podemos ver, ese objeto está lejos del sensor, por lo que la distancia medida es de aprox. 15 cm del sensor ultrasónico.

  Interfaz gráfica de usuario, aplicación, descripción de palabra generada automáticamente

Conclusión

Medir la distancia tiene una gran aplicación cuando se trata de robótica y otros proyectos, existen diferentes formas de medir la distancia. HC-SR04 con ESP32 puede medir la distancia de diferentes objetos. Aquí, este artículo cubrirá todos los pasos que uno necesita para integrar y comenzar a medir la distancia con ESP32.