Drahtlose Kommunikation mit NUCLEO-H723ZG

OP #7837935
Lesenswert?

Hallo zusammen,

Ich arbeite an einem Projekt, bei dem ich ein Impulssignal alle 0,2s drahtlos von einem Empfänger zu einem Sender übertragen möchte – allerdings nicht optisch. Die Übertragung sollte möglichst geringe Latenz und wenig Jitter aufweisen. Als Hardware verwende ich ein NUCLEO-H723ZG sowohl für den Sender als auch für den Empfänger. Die beiden Boards können bis zu 10 Meter voneinander entfernt sein.

Bei meinen Recherchen bin ich auf BLE 5.3 gestoßen, bin mir aber unsicher, ob Bluetooth für meine Anforderungen optimal ist. Außerdem habe ich die Module nRF24L01 und nRF52840 gefunden: nRF24L01 wird nicht mehr für Neuentwicklungen empfohlen und nRF52840 scheint leistungsfähig, aber vermutlich sehr komplex in der Implementierung.

Da ich bisher keine Erfahrung mit drahtloser Kommunikation habe, hoffe ich auf eure Expertise. Meine Fragen:

-Welche drahtlose Kommunikationstechnik wäre am besten geeignet (geringe Latenz, geringer Jitter, einfache Implementierung)?

-Gibt es ein passendes Modul, das sich einfach mit dem NUCLEO-H723ZG verbinden lässt?

-Kennt jemand ein ähnliches Projekt, das als Inspiration dienen könnte?

Ich freue mich auf eure Tipps und Erfahrungen! Viele Grüsse

#7837956
Lesenswert?

Das "möglichst gering" für Latenz und Jitter heißt wieviel Millisekunden oder Mikrosekunden oder noch weniger? Sollen Daten übertragen werden, oder nur ein Impuls? Daten vom Empfänger zum Sender zu übertragen klingt verdreht. Welche Zuverlässigkeit ist notwendig? Eine einfache aber störanfällige Lösung wären 433MHz on/off keying (OOK) Module.

OP #7837965
Lesenswert?

Uwe schrieb:

Das "möglichst gering" für Latenz und Jitter heißt wieviel Millisekunden oder Mikrosekunden oder noch weniger?

So wenig wie möglich. Aber denke Mikro/Nano Bereich ist i.O.

Sollen Daten übertragen werden, oder nur ein Impuls? Daten vom Empfänger zum Sender zu übertragen klingt verdreht.

Es müssen keine Daten gesendet werden nur ein Impuls. Ohh ja klar entschuldige, natürlich vom Sender zum Empfänger.

Welche Zuverlässigkeit ist notwendig?

Schon eine hohe Zuverlässigkeit. Die Anwendung findet in Innenräumen statt, weshalb Störungen durch andere Funkquellen auftreten könnten.

Eine einfache aber störanfällige Lösung wären 433MHz on/off keying (OOK) Module.

Gucke ich mir mal an. Danke

Persönliche Seite #7837967
Lesenswert?

Simon schrieb:

-Gibt es ein passendes Modul, das sich einfach mit dem NUCLEO-H723ZG verbinden lässt?

Die NUCLEO-WL33CC1, NUCLEO-WL55JC, NUCLEO-WBxxx können direkt selbst funken ohne zusätzliche Module, mit den jeweiligen diversen Funktechnologien.

Die ESP32 unterstützen auch Bluetooth / BLE. All diesen ICs, inkl. auch nRF52840, enthalten einen Mikrocontroller, sodass du eben keinen externen Controller brauchst. Zum Programmieren gibt es jeweils umfangreiche Bibliotheken.

Simon schrieb:

Aber denke Mikro/Nano Bereich ist i.O.

Dürfte so gut wie unmöglich sein. Bei Lichtgeschwindigkeit sind auf 10m schon 33ns Delay. Wenn man eine Funktechnik mit 1 MBit/s nutzt braucht ein Bit 1µs. Pro Paket müssen viele Bits übertragen werden. Alleine schon die Präambel, damit der Empfänger sich auf den Bittakt synchronisieren kann. Dazu kommt natürlich die Verarbeitung in Software usw. Klar gibt's schnelleres wie WiFi, aber auch hier sind die Pakete lang. Systeme, welche nur "Pulse" senden (ohne Pakete, also die typischen extrem primitiven OOK-Sender/Empfänger) sind wohl nicht auf solche Latenzen ausgelegt.

Vielleicht ließe sich UWB TOF dafür zweckentfremden. Wird auf jeden Fall ziemlich aufwendig.

OP #7837984
Lesenswert?

Niklas G. schrieb:

Die NUCLEO-WL33CC1, NUCLEO-WL55JC, NUCLEO-WBxxx können direkt selbst funken ohne zusätzliche Module, mit den jeweiligen diversen Funktechnologien.

Leider muss ich den NUCLEO-H723ZG verwenden.

Dürfte so gut wie unmöglich sein.

Ohjee ja ich sehe das Problem! Danke für die gute Erklärung. Ich könnte 25mS Latenz gutheissen, aber der Jitter sollte wirklich so klein wie möglich sein. Das System wird zur Positionserkennung verwendet und daher muss alles sehr exakt sein und keine grossen Schwankungen haben. Falls es etwas gibt, mit sehr konstantem Jitter wäre es auch in Ordnung, da es Softwaremässig kompensiert werden könnte

Vielleicht ließe sich UWB TOF dafür zweckentfremden. Wird auf jeden Fall ziemlich aufwendig.

Lieber eher etwas einfaches, da ich nur begrenzt Zeit habe das System umzusetzen, dann lieber etwas einfaches auf Kosten der Ungenauigkeit.

Persönliche Seite #7837995
Lesenswert?

Simon schrieb:

Das System wird zur Positionserkennung verwendet und daher muss alles sehr exakt sein und keine grossen Schwankungen haben.

Das ist halt leider eine recht große Herausforderung.

Simon schrieb:

Lieber eher etwas einfaches, da ich nur begrenzt Zeit habe das System umzusetzen, dann lieber etwas einfaches auf Kosten der Ungenauigkeit.

Eine große Herausforderung "einfach" zu lösen ist halt so eine Sache. Rein zufällig ist UWB genau für so etwas gemacht, Lokalisierung auf Basis von Laufzeit. Eine fertige UWB-Lösung dürfte am Einfachsten zu nutzen sein, jedenfalls viel einfacher als das "zu Fuß" mit irgendeinem Funkmodul zu machen.

#7838003
Lesenswert?

Die Eckpunkte "10m" und "Positionsbestimmung mittels Funk" klingt so, dass du eine Signallaufzeit mit einer Auflösung von weit unter 10ns bestimmen möchtest. WLAN und BT sind da raus, die sind nicht für solche Zeitpräzision gemacht . Die billigen OOK Module wären vielleicht senderseitig stabil genug, aber der Empfänger vermutlich stark abhängig vom Pegel, und der ändert sich mit jeder Handbewegung in der Nähe der Messstrecke. Das schon genannte UWB klingt für mich am vernünftigsten.

OP #7838021
Lesenswert?

Danke für eure Antworten, tönt sehr spannend und ich werde mich damit auseinandersetzen.

Die Eckpunkte "10m" und "Positionsbestimmung mittels Funk" klingt so

Ehm also ich will das Funksignal nicht zur Positionsbestimmung selbst nutzen, es soll nur ein Startimpuls geben, wann ein Lasersweep anfängt den Raum zu scannen. Anhand der Zeit Differenz von Startsignal und Eintreffen des Laserimpulses auf den Empfänger wird die Position des Empfängers bestimmt.

Ich bin gerade auf ESP-Now gestossen, es wird gesagt, dass es sehr kleine Latenz und Jitter hat. Kennt ihr das? Und wäre das vielleicht eine Anwendung für mich?

Persönliche Seite #7838039
Lesenswert?

Simon schrieb:

Ehm also ich will das Funksignal nicht zur Positionsbestimmung selbst nutzen, es soll nur ein Startimpuls geben, wann ein Lasersweep anfängt den Raum zu scannen.

Also wenn du sowieso schon ein Funksignal mit hoher zeitlicher Genauigkeit hast brauchst du den Laser nicht mehr. Ein optisches Signal mit geringer/definierter Latenz zu empfangen ist auch gar nicht so trivial.

Simon schrieb:

Ich bin gerade auf ESP-Now gestossen, es wird gesagt, dass es sehr kleine Latenz und Jitter hat

Basiert auf WiFi-Paketen, ist also immer noch um Größenordnungen zu ungenau/langsam bzgl. Jitter/Delay. Ganz davon abgesehen dass die ESP-Software nicht gerade echtzeitfähig ist.

#7838047
Lesenswert?

Am Anfang ist es hilfreich, sich einen Überblick über die Anforderungen zu schaffen. Ich spekuliere einfach mal. Ein Laserscan über den kompletten Bereich dauert 100ms. Man möchte diesen Bereich in 1000 Teile aufteilen und messen, in welchem dieser 1000 Teile das Ziel liegt. Dazu brauchen wir eine Zeitmessung mit 100 Mikrosekunden Auflösung, und deutlich unter 100 Mikrosekunden Jitter. Wenn wir mittels der OOK-Module ein Asych-Serial Byte übertragen mit zB 9600 Baud, ist ein Bit ungefähr in dieser zeitlichen Größenordnung. Aus Hardwaresicht scheint das Ziel also gut erreichbar zu sein. Muss nur noch die Software schnell genug reagieren und stabil genug senden. Und der Datenstrom so gestaltet sein, dass der Empfänger gut einregeln kann bevor der eigentliche Triggerwert übertragen wird.

Persönliche Seite #7838053
Lesenswert?

Uwe schrieb:

Ich spekuliere einfach mal. Ein Laserscan über den kompletten Bereich dauert 100ms. Man möchte diesen Bereich in 1000 Teile aufteilen und messen, in welchem dieser 1000 Teile das Ziel liegt.

Wenn man den Laser hin-und zurück sweepen lässt kann man aus dem Zeitlichen Abstand der beiden Empfangsimpulse zueinander simpel die Position bestimmen...

OP #7838059
Lesenswert?

Niklas G. schrieb:

Wenn man den Laser hin-und zurück sweepen lässt kann man aus dem Zeitlichen Abstand der beiden Empfangsimpulse zueinander simpel die Position bestimmen...

Ja grundsätzlich schon, der Laser dreht sich aber im Kreis also 360 Grad mit 5Hz. Sobald sich die Position des Empfängers ändert, kann man aus der Zeitliche Differenz die Position nicht mehr genau sagen. Und die Anfangsposition müsste bekannt sein. Da ist gedacht, dass der Sync Impuls via Funk immer bei z.B. 0 Grad (Startposition) ein Impuls sendet.

Man möchte diesen Bereich in 1000 Teile

aufteilen und messen, in welchem dieser 1000 Teile das Ziel liegt.

Das ist dann einfach die Genauigkeit mit der man die Position des Objekt bestimmen kann oder? Die sollte ja möglichst hoch sein um eine genaue Erkennung zu ermöglichen.

Persönliche Seite #7838064
Lesenswert?

Simon schrieb:

Ja grundsätzlich schon, der Laser dreht sich aber im Kreis also 360 Grad mit 5Hz.

Wenn du 2 Laser hättest die sich um entgegengesetzter Richtung drehen und unterschiedliche Wellenlängen haben sodass du sie unterscheiden kannst wäre das Problem auch gelöst.

Oder pack ein Galaxy Tag mit auf das Nucleo-Board und ein UWB-fähiges Smartphone in die Mitte, dann kannst du vom Smartphone aus das Tag lokalisieren. Es gibt auch industrielle Indoor-Lokalisierungssysteme die man für Automatisierung einbinden kann. Natürlich dann in 3 Dimensionen, und nicht nur als einzelner Winkel.

Simon schrieb:

Die sollte ja möglichst hoch sein um eine genaue Erkennung zu ermöglichen.

Bei deinem Ziel von 1µs Jitter wären das also 200000 verschiedene Bereiche (Kreissektoren), also 0,0018° Abstufung. Das ist so erforderlich?

OP #7838073
Lesenswert?

Niklas G. schrieb:

Wenn du 2 Laser hättest die sich um entgegengesetzter Richtung drehen und unterschiedliche Wellenlängen haben sodass du sie unterscheiden kannst wäre das Problem auch gelöst.

Genau 2 Laser habe ich, der eine ist 90° nacheilend und die Laserflächen sind wie ein X aufgespannt ( \ /). Leider ist eine Unterschiedliche Wellenlänge nicht möglich, da die zwei Laser über einen Beam Splitter aufgeteilt werden.

Bei deinem Ziel von 1µs Jitter wären das also 200000 verschiedene Bereiche (Kreissektoren), also 0,0018° Abstufung. Das ist so erforderlich?

Also Ziel ist es auf 10Meter 3mm Genau die Position des System zu erkennen.(Sehe aber mehr und mehr das dies Unrealistisch scheint). Da wären es ja arctan(3mm/10m) = 0.017°. Was dann ja etwa 10uS entspricht oder, ist das eine realistische Anforderung mit 433 MHz OOK (9600 Baud) oder UWB?

#7838078
Lesenswert?

Den Effekt des Jitters der Übertragung kann man deutlich mindern, indem man nicht jede Übertragung direkt in die Messung einbezieht, sondern über mehrere Perioden mittelt. Unter der Voraussetzung, dass Laserdrehzahl und Empfängertakt jeweils stabil genug sind, um einige Sekunden lang die geforderte Genauigkeit zu liefern.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren