Hallo zusammen,
ich versuche seit paar Tagen HLK-LD2410S mit pico2 zum Laufen zu bringen und komme leider nicht weiter.
Doku: https://www.tinytronics.nl/product_files/006002_HLK-LD2410S%20serial%20communication%20protocol-V1.00.pdf
Spec: https://www.tinytronics.nl/product_files/006002_HLK-LD2410S_datasheet.pdf
Verwendete Beispielcode: https://github.com/shabaz123/LD2410/blob/main/ld2410.py
Probleme:
Trotzt verschiedene Einstellungen von UART lines, baurate etc. kriege ich keine Daten aus der UART Schnisttstelle. Das Gerät sollte eigentlich dauerhaft Daten schicken, die man nur auswerten muss.
Ich habe verucht es auf einem Steckbrett oder mit den direkten Kabelverbindung zu testen. Die Funktion run_forever() aus dem Beispiel liefert aber ganze nichts.
Versuche:
Ich habe versucht die Schnittstelle mit folgem Codestück auszulesen aber leider ohne Erfolg.
from machine import UART, Pin
from time import sleep
uart0 = UART(0, baudrate = 115200, bits=8, parity=None, stop=1, tx=Pin(12), rx=Pin(13), timeout = 1)
uart1 = UART(1, baudrate = 115200, bits=8, parity=None, stop=1, tx=Pin(8), rx=Pin(9), timeout = 1)
def read_uart(uart : UART):
rxData = bytes()
sleep(0.1)
while uart.any() > 0:
sleep(0.1)
rxData += uart.read(1)
return rxData
txData = b'hello world'
uart1.write(txData)
print("demo:")
rxData = read_uart(uart0)
print(rxData.decode('utf-8'))
uart0.deinit()
uart1.deinit()
print("\ntest:")
# LD2410S
uart2 = UART(0, baudrate = 115200, bits=8, parity=None, stop=1, tx=Pin(0), rx=Pin(1), timeout = 1)
x = 0
while x < 5:
sleep(1)
x = x+1
rxData = read_uart(uart2)
print(rxData.decode('utf-8'))
uart2.deinit()
Hier die Ergebnisse:
Ich habe auch versucht auch den Sensor über ein Konverter RS485toTTL auf USB zu testen (d.h. ohne pico) und die serielle Schnistelle dann direkt auszulesen.
Was ich aus dem USB-Stick sehe, dass die rx-LED blinkt und offensichtlich werden irgenwelche Daten vom Sensor geschickt. Anbei die native Ausgabe der Schnittstelle:
Erstmal dachte ich, dass vielleicht die Spannung nicht reicht. Ich habe aber kurz vor dem Pin 3,34V gemmessen (native Spannung vom Pico).
Hinweis: LD2410S sollte nativ mit 3,3V laufen und nicht wie es bei ähnlichen Modellen 5V.
Ich habe natürlich versucht die rx/tx Kabeln zu tauschen falls ich doch was falsch verbinden sollte.
Ich habe von den Sensoren 5 Stück ausprobiert und gehe davon aus, dass es nicht an Hardware liegen wird. Sie waren zwar bei Frost geliefert aber die Betriebstemperatur liegt zwischen -40 - 85°C.
Was ich nicht ausprobiert habe, ist es mit originalem Software des Herstellers zu testen. Dies liegt es aber daran, dass ohne Windows schwirig ist.
Hat jemand Idee woran es liegen kann und was man sonst noch ausprobieren kann?
Viele Grüße
Bauherr

