Sensor ultrasonico

Como capturat o echo do ultrassom, Tentei
var= labrador.GPIO_ECHO.input()
var =Labrador.GPIO_ECHO

antes defini
labrador.pin5.enable_gpio(k.Pim.Direction.INPUT, alias=‘GPIO_ECHO’

Olá @deby131 qual o modelo do sensor que você está utilizando? Sabe me dizer o padrão de leitura dele? Grato!

HC-SR04

tem mais informacoes aqui
https://www.squids.com.br/arduino/index.php/projetos-arduino/projetos-squids/intermediario/350-i15-como-usar-o-sensor-ultrassonico-hc-sr04-para-medir-distancia-sem-auxilio-de-biblioteca-arduino

Segundo este artigo, o sensor conta com dois pinos principais de sinal (além da alimentação), então antes de ler o ECHO você precisa enviar o sinal de trigger. Não possuo um sensor desse para testes, mas olhando este artigo, acredito que algo nessa linha deve funcionar para distância em centímetros.

def distance():
    #passo 1 - subir o trigger
    labrador.GPIO_TRIGGER.high()
 
    #passo 2 - esperar 0.01ms e descer o trigger
    time.sleep(0.00001)
    labrador.GPIO_TRIGGER.low()
 
    StartTime = time.time()
    StopTime = time.time()
 
    #medir tempo de início
    while Labrador.GPIO_ECHO.read() == 0:
        StartTime = time.time()
 
    #salvar tempo de retorno do trigger
    while Labrador.GPIO_ECHO.read() == 1:
        StopTime = time.time()
 
    # delta de tempo
    TimeElapsed = StopTime - StartTime
    # multiplicar pela velocidade do som e dividir por dois (ida e volta)
    distance = (TimeElapsed * 34300) / 2
 
    return distance

Lembrando que antes você deve definir o pino de GPIO_TRIGGER e GPIO_ECHO como você já citou ai em cima e importar a biblioteca time do python. Ficaria algo como isso no início do seu código (assumindo trigger no pino 15 e echo no 5, por exemplo):

import caninos-sdk as k9
import time

labrador.pin15.enable_gpio(k9.Pin.Direction.OUTPUT, alias="GPIO_TRIGGER")
labrador.pin5.enable_gpio(k9.Pin.Direction.INPUT, alias=‘GPIO_ECHO’)

Sim estou fazendo isso: abaixo parte do codigo que tenta acessar o Echo

import caninos_sdk as Kn
import time

DISTANCE = 1000
DIE = False

labr=Kn.Labrador()

#set GPIO Pins
##GPIO_TRIGGER = 17
##GPIO_ECHO = 4

labr.pin3.enable_gpio(Kn.Pin.Direction.OUTPUT, alias=‘GPIO_TRIGGER’)
labr.pin5.enable_gpio(Kn.Pin.Direction.INPUT, alias=‘GPIO_ECHO’)

def distance():
# set Trigger to HIGH
#GPIO.output(GPIO_TRIGGER, True)
labr.GPIO_TRIGGER.high()
# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
#GPIO.output(GPIO_TRIGGER, False)
labr.GPIO_TRIGGER.low()
StartTime = time.time()
StopTime = time.time()
v=0
while v<10:
echotime=labr.GPIO_ECHO
print(echotime)
v=+1
StartTime=time.time()
StopTime=time.time()
distance = (TimeElapsed * 34300) / 2

return distance

limpei o codigo, acho que fica melhor para entender

import caninos_sdk as Kn
import time

DISTANCE = 1000
DIE = False

labr=Kn.Labrador()

labr.pin3.enable_gpio(Kn.Pin.Direction.OUTPUT, alias=‘GPIO_TRIGGER’)
labr.pin5.enable_gpio(Kn.Pin.Direction.INPUT, alias=‘GPIO_ECHO’)

def distance():
labr.GPIO_TRIGGER.high()
time.sleep(0.00001)
labr.GPIO_TRIGGER.low()
StartTime = time.time()
StopTime = time.time()
v=0
while v<10:
echotime=labr.GPIO_ECHO
print(echotime)
v=+1
StartTime=time.time()
StopTime=time.time()
distance = (TimeElapsed * 34300) / 2

return distance

@deby131 tenta substituir o comando labr.GPIO_ECHO por labr.GPIO_ECHO.read()

Agora deu certo. Grata