Forum: Mikrocontroller und Digitale Elektronik Präsenzsensor LD2410 missbrauchen?


von Frank E. (Firma: Q3) (qualidat)


Angehängte Dateien:

Lesenswert?

Ich versuche zu ergründen, ob der "human presence sensor LD2410" dazu 
geeignet ist, den absoluten Wassergehalt eines direkt vor ihm 
befindlichen Volumens zu bestimmen bzw, wenigstens in mehrere 
unterscheidbare "Klassen" oder Bereiche zu unterteilen.

Primär ist das Ding dazu gedacht, die Anwesenheit von Menschen in einem 
Raum festzustellen. Es arbeitet m.W. nach dem Prinzip 
"frequenznoduliertes Dauerstrich-Radar" im 24-GHz-Bereich. Da es in 
dieser Rolle recht gute Erkennungsraten leistet, gehe ich mal davon aus, 
dass die 24 GHz besonders gut mit dem Wassergehalt des menschlichen 
Körpers interagieren.

Der Sensor verfügt über 8 "Entfernungs-Slots", zu je 75cm, die 
vermutlich über die reine Laufzeit unterschieden werden. Darüber hinaus 
liefert er Erkenntnisse zu "statischen Targets" (wohl über die reine 
Rückstrahl-Energie) und zu "dynamischen Targets" (wohl über den 
Dopplereffekt/Frequenzverschiebung bei Bewegung).

Mich interessiert nun besonders die empfangene Energie im Bereich des 
ersten Slot, 0-75cm, von statischen Objekten.

Hier würde ich gerne die Enpfindlichkeit des Sensors auf ein Maximum 
stellen. Die Werte aller anderen Entfernungs-Slots, sowohl statisch als 
auch dynamisch, sollen auf ein Minimum reduziert werden ... aber da habe 
ich Verständnisprobleme mit der Doku.

Was mir inzwischen gelingt: Das Versetzen des Chip in den "engineering 
mode" und das Empfangen und Anzeigen der Werte (siehe Bild) ...

Hat jemand Lust und Zeit, sich die Doku mal anzusehen? Ich brauche 
keinen fertigen Code, sondern nur einige Tips ... Ich kapiere einfach 
nicht, wie ich die Empfindlichkeiten für die einzelnen Bereiche setzen 
kann - kann an der Doku liegen oder an mir ... Danke.

Doku übersetzt: qualidat.com/material/LD2410_serial_protocol_de.pdf

Doku original: qualidat.com/material/LD2410_serial_protocol_en.pdf

: Bearbeitet durch User
von Steffen E. (steffene)


Angehängte Dateien:

Lesenswert?

Keine Gewähr hab viel überflogen auch Eingangspost weil sonst ist das zu 
zeitaufwendig und die evtl Versionen nicht beachtet

Hab also eine Github Bibliothek (siehe ganz unten) gefunden und das mal 
verglichen mit Deinem engl Datenblatt. Falls mit Einstellung 
"Entfernung-Slot" = "2.2.7 Range Gate Sensitivity Configuration" gemeint 
ist

Dann hab ich lieber mal ein anders aussehende chin. Protokoll Dokument 
angeschaut:

http://h.hlktech.com/Mobile/download/fdetail/198.html

http://r0.hlktech.com/download/HLK-LD2410-24G/1/LD2410%20%E4%B8%B2%E5%8F%A3%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AE%20V1.07.pdf


Siehe Anhang, da scheint Übereinstimmung zu sein mit der Github 
Bibliothek zu sein.

Und Übereinstimmung mit "Command  word:0x0064  Command value:2bytes 
distance gate word + 4 bytes distance gate value + 2 bytes motion 
sensitivity word + 4 bytes motion sensitivity value + 2 bytes static 
sensitivity word + 4 bytes static  sensitivity value. Und 2.1.1 Protocol 
Data Format

Keine Gewähr auf meine chin. Übersetzung im Anhang

Bibliothet ist:

https://github.com/ncmreynolds/ld2410
https://github.com/ncmreynolds/ld2410/blob/main/src/ld2410.cpp
1
void ld2410::send_command_preamble_()
2
{
3
  //Command preamble
4
  radar_uart_->write((byte)0xFD);
5
  radar_uart_->write((byte)0xFC);
6
  radar_uart_->write((byte)0xFB);
7
  radar_uart_->write((byte)0xFA);
8
}
9
10
void ld2410::send_command_postamble_()
11
{
12
  //Command end
13
  radar_uart_->write((byte)0x04);
14
  radar_uart_->write((byte)0x03);
15
  radar_uart_->write((byte)0x02);
16
  radar_uart_->write((byte)0x01);
17
}
18
####################
19
20
bool ld2410::setGateSensitivityThreshold(uint8_t gate, uint8_t moving, uint8_t stationary)
21
{
22
  if(enter_configuration_mode_())
23
  {
24
    delay(50);
25
    send_command_preamble_();
26
    radar_uart_->write((byte) 0x14);  //Command is 20 bytes long
27
    radar_uart_->write((byte) 0x00);
28
    radar_uart_->write((byte) 0x64);  //Request set sensitivity values
29
    radar_uart_->write((byte) 0x00);
30
    radar_uart_->write((byte) 0x00);  //Gate command
31
    radar_uart_->write((byte) 0x00);
32
    radar_uart_->write(char(gate));  //Gate value
33
    radar_uart_->write((byte) 0x00);
34
    radar_uart_->write((byte) 0x00);  //Spacer
35
    radar_uart_->write((byte) 0x00);
36
    radar_uart_->write((byte) 0x01);  //Motion sensitivity command
37
    radar_uart_->write((byte) 0x00);
38
    radar_uart_->write(char(moving));  //Motion sensitivity value
39
    radar_uart_->write((byte) 0x00);
40
    radar_uart_->write((byte) 0x00);  //Spacer
41
    radar_uart_->write((byte) 0x00);
42
    radar_uart_->write((byte) 0x02);  //Stationary sensitivity command
43
    radar_uart_->write((byte) 0x00);
44
    radar_uart_->write(char(stationary));  //Stationary sensitivity value
45
    radar_uart_->write((byte) 0x00);
46
    radar_uart_->write((byte) 0x00);  //Spacer
47
    radar_uart_->write((byte) 0x00);
48
    send_command_postamble_();
49
    radar_uart_last_command_ = millis();
50
    while(millis() - radar_uart_last_command_ < radar_uart_command_timeout_)
51
    {
52
      if(read_frame_())
53
      {
54
        if(latest_ack_ == 0x64 && latest_command_success_)
55
        {
56
          delay(50);
57
          leave_configuration_mode_();
58
          return true;
59
        }
60
      }
61
    }
62
  }
63
  delay(50);
64
  leave_configuration_mode_();
65
  return false;
66
}

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Steffen E. schrieb:
> Keine Gewähr hab viel überflogen auch Eingangspost weil sonst ist
> das zu
> zeitaufwendig und die evtl Versionen nicht beachtet ...

Herzlichen Dank! Zumindest hab ich nun die Gate-Nummer (0x03) und die 
gesetzte 40 (0x28) in dem "Bandwurm" identifiziert.

Weisst du auch, welchen Wertebereich die Empfindlichkeiten akzeptieren? 
Bei den Resultaten hab ich irgendwo etwas von 0...100 gelesen, etwas 
ungewöhnlich für digital/binäre Systeme, aber wer weiss ... danke.

von Steffen E. (steffene)


Angehängte Dateien:

Lesenswert?

Frank E. schrieb:
> Zumindest hab ich nun die Gate-Nummer (0x03) und die
> gesetzte 40 (0x28) in dem "Bandwurm" identifiziert.

Da ich das Ding zur Überprüfung ja schon analysiert habe samt Frame habe 
ich das mal angehängt, nur falls Bedarf weil vielleicht noch nicht alles 
angeschaut. Ohne Gewähr auf Richtigkeit. Ist aus Deinem engl Protokoll 
Dokument seiten 7 und 12 und der Bandwurm aus dem chinesiscen

Frank E. schrieb:

> Weisst du auch, welchen Wertebereich die Empfindlichkeiten akzeptieren?
> Bei den Resultaten hab ich irgendwo etwas von 0...100 gelesen, etwas
> ungewöhnlich für digital/binäre Systeme, aber wer weiss ... danke.

Ist vielleicht das hier

"The sensitivity value can be set from 0 to 100. The sensitivity of each 
range gate can be
independently set, so that the detection in different distance ranges 
can be precisely adjusted, local
accurate detection or filtering of interference sources in specific 
areas

Quelle HLK-LD2410 UserManual seite 7: 
https://github.com/ESPresense/ESPresense/files/9189632/HLK-LD2410.user.manual.V1.02.pdf

Edit: tut mir leid weil der Anhang zu detailliert wirkt,ich neige immer 
zu leichtem Autismus wenn ich mich nicht dagegen wehre

: Bearbeitet durch User
von Dieter R. (drei)


Lesenswert?

Frank E. schrieb:

> Primär ist das Ding dazu gedacht, die Anwesenheit von Menschen in einem
> Raum festzustellen. Es arbeitet m.W. nach dem Prinzip
> "frequenznoduliertes Dauerstrich-Radar" im 24-GHz-Bereich. Da es in
> dieser Rolle recht gute Erkennungsraten leistet, gehe ich mal davon aus,
> dass die 24 GHz besonders gut mit dem Wassergehalt des menschlichen
> Körpers interagieren.

Da liegt der kardinale Gedankenfehler, weshalb es nicht gelingen kann, 
damit den "Wassergehalt in einem Volumen" zu bestimmen. Der 
Präsenzdetektor will nicht mit dem Wassergehalt interagieren, sondern er 
soll die Anwesenheit des Körpers erkennen. Deshalb hat man einen 
Frequenzbereich gewählt, wo das Radar-Signal an der Grenzschicht 
besonders gut reflektiert wird und eben NICHT eindringt.

Ein paar Minuten Google-Suche genügen, um festzustellen, dass man 
Feuchtigkeitsmessungen per Radar in Boden, Baustoffen usw. mit deutlich 
niedrigeren Frequenzen durchführt, üblicherweise offenbar ungefähr 
Faktor 10 oder noch niedriger, WEIL dabei das Signal in das Messvolumen 
eindringt.

Zu dem Thema gibt es umfangreiche Literatur. Die solltest du erst einmal 
sichten, bevor du einen Messaufbau planst. Da wir dein konkretes Problem 
nicht kennen, wissen wir nicht, ob mit 24 GHz da etwas Sinnvolles zu 
messen ist. Dein gedanklicher Ansatz wird jedenfalls durch die 
einschlägige Literatur nicht unterstützt.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Dieter R. schrieb:

> Deshalb hat man einen
> Frequenzbereich gewählt, wo das Radar-Signal an der Grenzschicht
> besonders gut reflektiert wird und eben NICHT eindringt.

Ok, aber die Grenzschicht wird schon durch den unterschiedlichen 
Wassergehalt definiert? Oder wie sollte der Sensor sonst zwischen einem 
Menschen und z.B. einem Sessel oder Schrank selektiv reagieren?

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Frank E. schrieb:
> ld2410-tool.jpg

Etwas unpraktischeres als eine Hex-Tabelle im JPG-Format gibt es wohl 
nicht
:-(

von Jens M. (schuchkleisser)


Lesenswert?

Frank E. schrieb:
> Oder wie sollte der Sensor sonst zwischen einem
> Menschen und z.B. einem Sessel oder Schrank unterscheiden?

Bewegung.
Der 24GHz-Sensor reagiert auf minimalste Bewegungen, z.B. Atmen.
Ein sich bewegendes Brett geht aber ebenso, genau wie im Wind wehende 
Blätter.
Das hat nicht unbedingt mit dem Wasser in dem Objekt zu tun, auch manche 
Plastikteile lösen den Sensor aus, Metall sowieso.
Die hohe Frequenz sorgt aber auch dafür das übliche Wände 
"undurchsichtig" sind, so reagiert das Ding nicht auf Nebenräume.
Der Unterschied zwischen dem dynamischen und statischen Modus ist:
Der Dynamische reagiert auf Laufen, da ist die Bewegte Oberfläche groß 
und relativ schnell.
Der Statische dagegen kann extrem Empfindlich auf die Atembewgung und 
evtl. auch Herzschlag reagieren, die sehr kleine aber regelmäßige 
relativ schnelle Bewegung wird erkannt. Das machen Pflanzen teilweise 
auch, Sessel aber nicht.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Rainer W. schrieb:
> Frank E. schrieb:
>> ld2410-tool.jpg
>
> Etwas unpraktischeres als eine Hex-Tabelle im JPG-Format gibt es wohl
> nicht
> :-(

Das war doch nur eine Illustration, die zeigen soll, dass mein Testtool 
(vom Hersteller gibts nur eins für Windows) die Messwerte auslesen und 
Hex anzeigen kann. Ich hatte nicht den Gedanken, dass jemand die Werte 
für mich analysiert ... :-)

F4 F3 F2 F1 ist ein Header/Prefix, die 0x23 zeigt, dass der Chip im 
"engineering mode" ist, die nachfolgenden Werte zeigen die einzelnen 
Distanz-Bereiche (8 mal 75cm) mit den Rohwerten und ziemlich viel "Luft" 
(x00) dazwischen für statische und dynamische Targets ...

An der Auswertung der einzelnen Infos und deren grafische Anzeige 
arbeite ich noch.

: Bearbeitet durch User
von Vanye R. (vanye_rijan)


Lesenswert?

> Der Sensor verfügt über 8 "Entfernungs-Slots", zu je 75cm, die

Ich denke das du falsch denkst. Das ist doch ein FMCW Radar.
Dann werden das wohl die Bins der FFT sein.
Irgendwelche werte die du da angeben kannst sind dann Fenstergrenzen
an den Bins fuer die Auswertung.

Ausserdem reflektiert Wasser die 24Ghz besonders gut. Da dringt nichts
ein. Wuerde das gehen dann koennte man in U-Booten mit dem Handy 
telefonieren. :)

Oh...und dann wurde die Antenne so designt um ein moeglichst breites
Abstrahlverhalten zu haben.
Vergiss deine Idee.

Vanye

von Rainer W. (rawi)


Lesenswert?

Vanye R. schrieb:
> Ausserdem reflektiert Wasser die 24Ghz besonders gut. Da dringt nichts
> ein. Wuerde das gehen dann koennte man in U-Booten mit dem Handy
> telefonieren. :)

24GHz ist da prinzipiell nicht viel anders als die Haushaltsmikrowellen 
mit ihren 2450MHz. Ideal reflektiert eine Metallfläche, in 
wasserhaltiges Gewebe dringt die Welle schon ein. Die Eindringtiefe ist 
proportional zur Wellenlänge, darum die klassische Funkkommunikation mit 
U-Booten im Längstwellenbereich (um 20kHz).
Radar nutzt die Reflektion, d.h. die Fehlanpassung durch den 
Impedanzsprung Luft/Körpergewebe.

von Vanye R. (vanye_rijan)


Lesenswert?

> Radar nutzt die Reflektion, d.h. die Fehlanpassung durch den
> Impedanzsprung Luft/Körpergewebe.

Ich weiss, aber das klappt halt mit Wasser besonders gut.
Vielleicht koennte er ja den Oelgehalt von Nuessen so bestimmen. :-D

Vanye

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.