Sensor Ultrassônico MicroPython HC-SR04 – ESP32 e Thonny IDE

Sensor Ultrassonico Micropython Hc Sr04 Esp32 E Thonny Ide



MicroPython é amplamente utilizado com microcontroladores e sistemas embarcados. Podemos escrever código e bibliotecas dentro do MicroPython IDE e interagir com vários sensores. Este artigo irá guiá-lo na medição de distância usando o ESP32 com sensor HC-SR04.

ESP32 com sensor ultrassônico HC-SR04 usando MicroPython

A interface do ESP32 com ultrassônico requer apenas a conexão de dois fios. Usando sensores ultrassônicos, podemos medir a distância do objeto e desencadear respostas com base neste sistema, como sistemas de prevenção de colisão de veículos.









Usando o MicroPython, que é uma linguagem projetada para ESP32 e outros microcontroladores, podemos interagir com vários sensores como o HC-SR04 . O código MicroPython será escrito, calculando o tempo que a onda do SONAR leva para chegar do sensor ao objeto e voltar ao objeto. Mais tarde, usando a fórmula da distância, podemos calcular a distância do objeto.



Aqui estão alguns dos principais destaques do sensor HC-SR04:





Características Valor
Tensão operacional 5V DC
Corrente Operacional 15mA
Frequência de operação 40KHz
minha faixa 2 cm/ 1 polegada
Alcance Máximo 400 cm/13 pés
Precisão 3 mm
ângulo de medição <15 graus

Pinagem HC-SR04 HC-SR04 contém o seguinte quatro pinos:

  • Vc: Conecte ao pino ESP32 Vin
  • Terra: Conectar ao GND
  • Trig: Pino para receber o sinal de controle da placa ESP32
  • Eco: Enviar sinal de volta. A placa do microcontrolador recebe este sinal para calcular a distância usando o tempo



Como funciona o ultrassom

Após o sensor HC-SR04 ser conectado ao ESP32, um sinal no Trig pin será gerado pela placa. Assim que o sinal for recebido no pino de disparo do sensor HC-SR04, será gerada uma onda ultrassônica que sai do sensor e atinge o objeto ou o corpo do obstáculo. Depois de bater, ele voltará para a superfície do objeto.

  Uma imagem contendo texto Descrição gerada automaticamente

Assim que a onda refletida chegar de volta ao sensor, um pulso de sinal no pino de eco será gerado. O ESP32 recebe o sinal do pino de eco e calcula a distância entre o objeto e o sensor usando Distância-Fórmula.

  Texto Descrição gerado automaticamente

A distância total calculada deve ser dividida por dois dentro do código ESP32, pois a distância que obtemos originalmente é igual à distância total do sensor ao objeto e de volta à extremidade receptora do sensor. Então a distância real é o sinal que é igual a metade dessa distância.

Esquema

A seguir está o esquema para interface do ESP32 com o sensor ultrassônico:

  Uma imagem contendo texto, eletrônicos Descrição gerada automaticamente

Conecte o gatilho e o pino de eco do sensor com GPIO 5 e GPIO 18 do ESP32 respectivamente. Conecte também o pino ESP32 GND e Vin com os pinos do sensor.

Sensor Ultrassônico HC-SR04 Pino ESP32
Trig GPIO5
Eco GPIO 18
GND GND
VCC VENHA

hardware

Os seguintes componentes são necessários para programar o sensor ultrassônico:

  • ESP32
  • HC-SR04
  • Protoboard
  • Fios de jumper

  Uma imagem contendo texto Descrição gerada automaticamente

Como configurar o Ultrasonic HC-SR04 com ESP32 usando o MicroPython

Antes de podermos programar o ESP32 com um sensor ultrassônico, precisamos instalar uma biblioteca nele. Conecte a placa ESP32 ao PC. Siga as etapas para concluir a configuração do ESP32 com sensor ultrassônico no Thonny IDE usando o MicroPython.

Passo 1: Agora abra o Thonny IDE. Crie um novo arquivo na janela do editor Vá para : Arquivo>Novo ou pressione Ctrl + N .

Depois que o novo arquivo for aberto, cole o seguinte código na janela do editor Thonny IDE.

importar máquina , Tempo
a partir de máquina importar Alfinete

classe HCSR04:

# echo_timeout_us é baseado no limite de alcance do chip (400cm)
def __quente__ ( auto , gatilho_pin , echo_pin , echo_timeout_us = 500 * dois * 30 ) :

auto . echo_timeout_us = echo_timeout_us
# Init trigger pin (out)
auto . acionar = Alfinete ( gatilho_pin , modo = Alfinete. FORA , puxar = Nenhum )
auto . acionar . valor ( 0 )

# Pino de eco de inicialização (entrada)
auto . eco = Alfinete ( echo_pin , modo = Alfinete. DENTRO , puxar = Nenhum )

def _send_pulse_and_wait ( auto ) :

auto . acionar . valor ( 0 ) # Estabilize o sensor
Tempo . sleep_us ( 5 )
auto . acionar . valor ( 1 )
# Envie um pulso de 10 us.
Tempo . sleep_us ( 10 )
auto . acionar . valor ( 0 )
tentar :
pulse_time = máquina. time_pulse_us ( auto . eco , 1 , auto . echo_timeout_us )
Retorna pulse_time
exceto OSError Como ex:
E se ex. argumentos [ 0 ] == 110 : # 110 = ETIMEDOUT
levantar OSError ( 'Fora de alcance' )
levantar ex

def distância_mm ( auto ) :

pulse_time = auto ._send_pulse_and_wait ( )

milímetros = pulso_tempo * 100 // 582
Retorna milímetros

def distância_cm ( auto ) :

pulse_time = auto ._send_pulse_and_wait ( )

cms = ( pulso_tempo / dois ) / 29.1
Retorna cms

Passo 2: Depois de escrever o biblioteca código dentro da janela do editor agora temos que salvá-lo dentro do dispositivo MicroPython.

  Texto, descrição do aplicativo gerada automaticamente

Etapa 3: Vamos para : Arquivo>Salvar ou pressione Ctrl + S .

  Interface gráfica do usuário, aplicativo, Teams Description gerada automaticamente

Passo 4: Uma nova janela aparecerá. Certifique-se de que o ESP32 esteja conectado ao PC. Selecione o dispositivo MicroPython para salvar o arquivo da biblioteca.

  Interface gráfica do usuário, descrição do aplicativo gerada automaticamente

Passo 5: Salve o arquivo da biblioteca ultrassônica com o nome hcsr04.py e clique OK .

  Interface gráfica do usuário, descrição do aplicativo gerada automaticamente

Agora a biblioteca de sensores ultrassônicos hcsr04 foi adicionada com sucesso à placa ESP32. Agora podemos chamar funções de biblioteca dentro do código para medir a distância de diferentes objetos.

Código para sensor ultrassônico usando MicroPython

Para o código do sensor ultrassônico, crie um novo arquivo ( Ctrl + N ). Na janela do editor, digite o código abaixo e salve-o dentro do main.py ou boot.py Arquivo. Este código imprimirá a distância de qualquer objeto que vier na frente do HC-SR04.

  Interface gráfica do usuário, texto, aplicativo Descrição gerada automaticamente

O código começou chamando bibliotecas importantes, como HCSR04 e Tempo biblioteca junto com dorme dar atrasos.

Em seguida, criamos um novo objeto com um nome sensor . Este objeto recebe três argumentos diferentes: trigger, echo e timeout. Aqui, o tempo limite é definido como o tempo máximo após o sensor sair da faixa.

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

Para medir e economizar distância, um novo objeto chamado distância é criado. Este objeto economizará distância em cm.

distância = sensor. distância_cm ( )

Escreva o código a seguir para obter dados em mm.

distância = sensor. distância_mm ( )

Em seguida, imprimimos o resultado no shell do MicroPython IDE.

imprimir ( 'Distância:' , distância , 'cm' )

No final, é dado um atraso de 1 segundo.

dorme ( 1 )

O código completo é dado abaixo:

a partir de hcsr04 importar HCSR04
a partir de Tempo importar dorme
# ESP32
sensor = HCSR04 ( gatilho_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
# ESP8266
#sensor = HCSR04(trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
enquanto Verdadeiro :
distância = sensor. distância_cm ( )
imprimir ( 'Distância:' , distância , 'cm' )
dorme ( 1 )

Depois de escrever e salvar o código dentro do dispositivo MicroPython, agora executo o sensor ultrassônico main.py código do arquivo. Clique no botão play ou pressione F5 .

  Interface gráfica do usuário, texto, aplicativo, bate-papo ou mensagem de texto Descrição gerada automaticamente

Saída do sensor ultrassônico quando o objeto está próximo

Agora coloque um objeto próximo ao sensor ultrassônico e verifique a distância medida na janela do monitor serial do Arduino IDE.

  Uma imagem contendo texto Descrição gerada automaticamente

A distância do objeto é mostrada no terminal shell. Agora o objeto é colocado a 5 cm do sensor ultrassônico.

Saída do sensor ultrassônico quando o objeto está distante

Agora, para verificar nosso resultado, colocaremos objetos longe do sensor e verificaremos o funcionamento do sensor ultrassônico. Coloque os objetos como mostrado na imagem abaixo:

  Uma imagem contendo texto Descrição gerada automaticamente

A janela de saída nos dará uma nova distância e como podemos ver que o objeto está longe do sensor, então a distância medida é de aprox. 15 cm do sensor ultrassônico.

  Interface gráfica do usuário, aplicativo, descrição do Word gerada automaticamente

Conclusão

A medição de distância tem uma grande aplicação quando se trata de robótica e outros projetos, existem diferentes maneiras de medir a distância. HC-SR04 com ESP32 pode medir a distância de diferentes objetos. Aqui, este artigo cobrirá todas as etapas necessárias para integrar e começar a medir a distância com o ESP32.