Forum: Mikrocontroller und Digitale Elektronik YDLidar X4 Pro an Arduino


von Jürgen (derkleinemuck)


Lesenswert?

Ich möchte ein Lidar betreiben und habe hier einen X4 Pro (ist wohl 
ähnlich dem X4 aber ohne Dateneingang). Er sendet einfach Daten bei 
Spannung. Im Web finde ich ein paar (wenig überzeugende) Beispiele. Die 
nutzen aber aus irgendeinem Grund immer einen ESP32. Ich kann mir die 
Daten in einem Terminal (128000 Baud) ansehen aber erkenne keine 
Struktur. Das DEVELOPMENT MANUAL ist mir dabei auch keine Hilfe. 
Irgendwie habe ich auch nur wenig Lust, die Berechnungen etc. neu zu 
erfinden aber ich komme nicht weiter. Hat jemand da vielleicht schon 
erfolgreich Gehirnschmalz reingesteckt?

von Philipp K. (philipp_k59)


Lesenswert?

Jürgen schrieb:
> DLidar X4 Pro an Arduino

Arduino ist ja Allround.. man kann meist den selben Code für einen mini 
Atmega oder für einen ESP32 kompilieren.

Es bleibt Arduino.

von Jürgen (derkleinemuck)


Lesenswert?

Aber die größeren haben zwei UART in Hardware. Und darauf bauen die 
Bibliotheken auf. Aber das ist nicht, was ich brauche.
Hier steht irgendwas von wegen "excludes AVR-based boards like Arduino 
UNO due to dependency on <map> library" und mit 
https://github.com/wtfiAndrewNelson/ydLidarX4_arduino/tree/main komme 
ich auch nicht zurecht. Ich habe zwar erste Erfolge aber keine 
Durchschlagenden. Die Funktion liefert zwar ein paar Daten zum Modul 
(Firmware und Seriennummer etc. aber ab dem health-Status steigt sie aus 
und ich komme nicht weiter.

von Manfred P. (pruckelfred)


Lesenswert?

Jürgen schrieb:
> Irgendwie habe ich auch nur wenig Lust, die Berechnungen etc. neu zu
> erfinden

Andere Beschäftigung suchen anstatt mit "wenig Lust" etwas 
zusammenkopieren zu wollen.

Philipp K. schrieb:
> Arduino ist ja Allround.. man kann meist den selben Code für einen mini
> Atmega oder für einen ESP32 kompilieren.

Blödsinn, man kann manchmal den selben Code ...

von Jürgen (derkleinemuck)


Lesenswert?

Manfred P. schrieb:
> Andere Beschäftigung suchen anstatt mit "wenig Lust" etwas
> zusammenkopieren zu wollen.

Wenn's doch so einfach wäre...

Inzwischen habe ich diese Library gefunden: 
https://github.com/robopeak/rplidar_arduino Leider ohne Info, auf 
welches Modell sich die bezieht. Aber es können immerhin Daten vom X4 
empfangen und verwurschtet werden.
1
Distanz - Winkel - startBit - Quality
2
6952.50 - 178.67 - 1 - 18
3
14768.00 - 212.78 - 1 - 22
4
13386.00 - 16.66 - 0 - 42
5
6429.50 - 245.47 - 0 - 26
6
2762.00 - 288.66 - 0 - 42
7
9159.25 - 276.66 - 0 - 42
8
12026.25 - 79.66 - 0 - 42
9
5902.50 - 33.63 - 0 - 33
10
14968.75 - 463.61 - 0 - 1
11
4416.25 - 454.66 - 0 - 42
12
6130.25 - 340.53 - 0 - 42
13
11329.75 - 144.66 - 0 - 42
14
1365.75 - 215.30 - 0 - 58
15
11722.00 - 68.66 - 0 - 42
16
13688.50 - 18.84 - 1 - 43
17
2122.00 - 204.66 - 0 - 42
18
4965.50 - 83.89 - 0 - 6
19
5450.00 - 4.66 - 0 - 42
20
4846.00 - 116.78 - 0 - 10
21
4880.75 - 104.02 - 1 - 46
22
8897.50 - 144.66 - 0 - 42
23
15562.00 - 128.66 - 0 - 42
24
27.50 - 394.83 - 1 - 51
25
8352.50 - 0.00 - 0 - 0
26
13827.25 - 57.66 - 1 - 35
27
1354.00 - 277.66 - 0 - 42
28
0.00 - 0.00 - 0 - 17
29
3140.50 - 116.66 - 0 - 42
30
9217.00 - 130.03 - 1 - 54
31
9962.00 - 485.66 - 0 - 42
32
0.00 - 0.50 - 1 - 29
Allerdings fehlen mir doch noch Kenntnisse vom Protokoll. Und ich weiß 
nicht, ob die Daten Sinn machen. Auch nicht, was startBit und Quality 
für eine Aussage haben. Die Entfernungen sind in mm aber wohl zu groß

von Markus K. (markus-)


Lesenswert?

Jürgen schrieb:

> Allerdings fehlen mir doch noch Kenntnisse vom Protokoll. Und ich weiß
> nicht, ob die Daten Sinn machen. Auch nicht, was startBit und Quality
> für eine Aussage haben. Die Entfernungen sind in mm aber wohl zu groß

Um mal das Development Manual zu zitieren:
5.1 Start Bit Analysis
When CT[bit(0)]=1 is detected, it indicates that the packet data is the 
start data packet, which indicates the beginning of a round of data. In 
the data packet, LSN=1, that is, the number of Si is 1. For the specific 
value analysis of the distance and angle, please refer to the following;
When CT[bit(0)]=0 is detected, it indicates that the packet data is a 
point cloud data packet;

Zur Qualität steht da nichts drin, aber der Code ist ja auch für ein 
anderes Lidar (RPLidar) gedacht. Meistens ist die Qualität einfach ein 
Maß für die Reflektivität. Je mehr Licht Reflektiert wird, desto genauer 
ist die Messung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.