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
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
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.
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
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.
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
Frank E. schrieb: > ld2410-tool.jpg Etwas unpraktischeres als eine Hex-Tabelle im JPG-Format gibt es wohl nicht :-(
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.
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
> 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
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.