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

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

Medir distâncias com precisão em projetos embarcados é um requisito comum para tarefas de robótica e automação. Ao combinar a potência compacta de um microcontrolador com um transdutor ultrassônico confiável, você pode construir sistemas de medição sem contato facilmente. Este guia explica como interligar um sensor ultrassônico HC-SR04 a um Raspberry Pi Pico usando MicroPython.

Para acompanhar este tutorial adequadamente, certifique-se de que seu ambiente e seus componentes estão prontos. Você pode baixar o firmware mais recente na página de downloads do MicroPython e gerenciar sua placa usando a documentação do mpremote para implantação eficiente via linha de comando.

Materiais necessários

  • Raspberry Pi Pico

  • HC-SR04 (versão de 3V–5.5V, também conhecido como HC-SR04P)

Conectando o sensor

Conexões corretas são essenciais para proteger seus componentes e garantir a transmissão adequada de sinal. O sensor HC-SR04 envia ondas sonoras e aguarda o eco para calcular a distância. Preste muita atenção à fonte de alimentação e aos níveis lógicos. Observe que sensores HC-SR04 padrão de 5V exigem um divisor de tensão no pino de eco para evitar danos ao Pico, mas o uso do modelo HC-SR04P compatível com 3V permite uma conexão direta segura.

Raspberry Pi Pico

HC-SR04

3.3V

VCC

GND

GND

GP17

TRIGGER

GP16

ECHO

Diagrama Fritzing mostrando o HC-SR04 conectado em um Raspberry Pi Pico em uma protoboard. Circuito montado na vida real com Raspberry Pi Pico e HC-SR04.

Implementação em MicroPython

Assim que a disposição do seu hardware corresponder à tabela de conexões e aos diagramas, crie um arquivo chamado main.py no seu computador. Este script dispara um pulso ultrassônico e ouve o comprimento do pulso de eco usando a função nativa time_pulse_us. A duração retornada em microssegundos é então convertida em centímetros.

import time
from machine import Pin, time_pulse_us

trigger = Pin(17, Pin.OUT)
echo = Pin(16, 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)

Para executar o script diretamente no seu dispositivo sem salvá-lo permanentemente como o script de inicialização, você pode executar o seguinte comando no seu terminal:

mpremote run main.py

Tutoriais relacionados

Se você quiser explorar microcontroladores alternativos ou paradigmas de programação com o mesmo sensor, confira estes guias relacionados:

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

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

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

Aprenda a conectar o sensor ultrassônico HC-SR04 a um Raspberry Pi Pico usando o framework Arduino e o PlatformIO.

Sensor ultrassônico HC-SR04 no STM32 com MicroPython

Sensor ultrassônico HC-SR04 no STM32 com MicroPython

Sensor ultrassônico HC-SR04 no STM32 com MicroPython

Aprenda a conectar e programar um sensor ultrassônico HC-SR04 com uma placa STM32 BlackPill usando MicroPython e o módulo machine.

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.