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
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.
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
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.
:
Bearbeitet durch User
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.
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.
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.
PS: NXP hat fertige UWB-Module, genannt "Trimension". So etwas solltest du an den Mikrocontroller anbinden können. Sicherlich viel sinnvoller als irgendein 0815-Funkmodul dafür zu zweckentfremden und dann festzustellen dass die "Genauigkeit" 3km beträgt.
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?
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.
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.
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...
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.
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?
:
Bearbeitet durch User
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?
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.
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.