Sensor ultrassônico HC-SR04 no STM32 com MicroPython

Tutoriais Sistemas Embarcados
Sensor ultrassônico HC-SR04 no STM32 com MicroPython

Medir distâncias com precisão em projetos de sistemas embarcados é simples ao combinar o eficiente firmware MicroPython com componentes de hardware confiáveis. Este guia demonstra como fazer a interface de um sensor ultrassônico de distância HC-SR04 com uma placa microcontroladora STM32 usando MicroPython. Antes de gravar o seu dispositivo, obtenha o binário de firmware correto na página oficial de downloads do MicroPython e consulte a documentação do mpremote para entender como gerenciar arquivos e executar scripts diretamente da sua máquina host durante o desenvolvimento.

Componentes Necessários

Para acompanhar esta montagem, certifique-se de ter os seguintes componentes de hardware prontos na sua bancada:

  • Placa de desenvolvimento STM32 BlackPill para a lógica principal do microcontrolador.

  • Sensor ultrassônico HC-SR04 para medição de distância.

Fiação e Conexões

Uma fiação adequada garante uma comunicação precisa entre o sensor e o microcontrolador. Conecte os pinos do STM32 BlackPill ao sensor HC-SR04 de acordo com a tabela de conexões fornecida abaixo.

STM32 BlackPill

HC-SR04

3.3V

Vcc

GND

Gnd

B9

Trig

B8

Echo

Os diagramas a seguir ajudam a visualizar como o circuito deve ficar. Primeiro, consulte o layout esquemático para verificar o alinhamento dos pinos.

Diagrama Fritzing mostrando o stm32 blackpill conectado ao hc-sr04 em uma protoboard.

Em seguida, verifique o layout físico para garantir que as conexões da sua protoboard correspondam ao projeto do circuito antes de ligar tudo.

Circuito montado na vida real com stm32 blackpill e hc-sr04.

Implementação em MicroPython

Crie um arquivo chamado main.py no seu computador e preencha-o com o script abaixo. Este código configura o pino de disparo para enviar um breve pulso ultrassônico e usa a função integrada time_pulse_us() para medir o tempo de viagem do sinal de retorno do eco, convertendo-o em uma distância em centímetros.

import time
from machine import Pin, time_pulse_us

trigger = Pin('B9', Pin.OUT)
echo = Pin('B8', Pin.IN)

while True:
    trigger.value(0)
    time.sleep_us(2)
    trigger.value(1)
    time.sleep_us(10)
    trigger.value(0)

    duration = time_pulse_us(echo, 1, 30000)

    if duration > 0:
        print(f"Distance: {(duration * 0.0343) / 2.0:.2f} cm")
    else:
        print("Reading error")

    time.sleep(1)

Com o seu código salvo, você pode executar o script instantaneamente na placa de desenvolvimento conectada executando o seguinte comando no seu terminal:

mpremote run main.py

Tutoriais Relacionados

Se você quiser explorar configurações de hardware e plataformas alternativas para projetos de medição de distância, confira estes guias relacionados:

Sensor ultrassônico HC-SR04 no STM32 com Arduino:

Sensor ultrassônico HC-SR04 no STM32 com Arduino

Sensor ultrassônico HC-SR04 no STM32 com Arduino

Aprenda a conectar um sensor de distância ultrassônico HC-SR04 a uma STM32 BlackPill usando o framework Arduino e o PlatformIO.

Sensor ultrassônico HC-SR04 no RPi Pico com MicroPython:

Sensor ultrassônico HC-SR04 no RPi Pico com MicroPython

Sensor ultrassônico HC-SR04 no RPi Pico com MicroPython

Aprenda a conectar e programar um sensor ultrassônico de distância HC-SR04 com Raspberry Pi Pico usando MicroPython e funções de pulso temporizado.

Sensor ultrassônico HC-SR04 no ESP32 com MicroPython:

Sensor ultrassônico HC-SR04 no ESP32 com MicroPython

Sensor ultrassônico HC-SR04 no ESP32 com MicroPython

Aprenda a conectar e programar um sensor ultrassônico HC-SR04 com um microcontrolador ESP32 usando MicroPython e scripts de medição de distância.