Arduino und 40khz Ultraschallkapseln

Hi zusammen,

ich arbeite gerade an einem Projekt mit zwei Arduinos + nRF24L01 (nano und uno), bei dem ich eine Distanz über Ultraschall zwischen den zwei Arduinos messen möchte.

Idee:

  • Arduino 2 sendet per nRF24L01 ein Startsignal
  • danach sendet er 4 Ultraschall-Pings
      1. Ping = Synchronisation
    • 3 weitere Pings = Messung
  • Arduino 1 empfängt die Pings und misst die Zeitdifferenzender nächste 3 Pings
  • daraus berechne ich die Distanz (Schallgeschwindigkeit
  • aus den 3 Messwerten nehme ich den Median

Problem:
Ich suche eine passende Hardware für die Empfängerseite und Senderseite. Bei meiner Recherche bin ich auf dieses Video gestoßen:
https://www.youtube.com/watch?v=o1tlhu8H6TQ, die Aufzeichnung Zola Lab und Ultrasonic Arduino-to-Arduino Communication | Arduino Blog . Das sieht schon ganz gut aus!

Fragen an euch:
Welche Module / Bauteile eignen sich, um gezielt 40-kHz-Ultraschall-Pings zu erkennen ? Und: Kann ich das Empfangssignal auch einfach an einem Analog-Pin des Arduino (z. B. A0) messen und selbst auswerten (z. B. Schwellwert / Peak-Erkennung)?
Oder brauche ich zwingend eine Verstärker-/Komparator-Schaltung davor?

Hat jemand Erfahrung mit dem Ansatz aus dem Video – funktioniert das zuverlässig oder braucht man in der Praxis doch mehr Signalaufbereitung?

Ich freue mich über jede Erfahrung oder Empfehlung :raising_hands:

Danke!

Bisschen Suchmaschine befragen :innocent:

Als Modul

Wenn du schon mit nRF24 arbeitest, warum nicht komplett auf Funk umsteigen.

Mir ist das noch nicht so ganz klar...

Du schickst an t=1s, 2s, 3s, 4s einen Ping raus. Nehmen wir mal an ein Ping ist 100ms unterwegs.

Dann empfängst du an t= 1.1s, 2.1s, 3.1s und 4.1s einen Ping.

Wie kannst du auf Empfängerseite die 100ms berechnen?

Hast du ein Beispiel für die Entfernungsmessung damit zur Hand?

Danke erstmal für die schnellen Antworten!

@Rintin Da hingt das Konzept kräftig! Ich könnte den empfangenen Ping über den rf24 an den Sender quittieren und dort die Differenz berechnen. Der Sender erfasst das senden und empfangen und kann die differenz berechnen. Nur funk bzw. rssi ist wahrscheinlich zu ungenau. UWB ist zu teuer. Ich habe inzwischen gesehen, dass das Faller Car System 3.0 auch etwas mit Ultraschall - Distanzmessung macht. Ich denke, dass das Faller Car System 3.0 mein Ziel eher trifft.

Welche Latenz hat der rf24? Ist die konstant? Oder zumindest vorhersehbar?

Auch wieder ein Knackpunkt. Die Latenz eines NRF24L01 ist laut google gering, aber mit Sicherheit da Ich denke, dass kann man vielleicht durch Testmessung mit Latenz kalibrieren. Da die Latenz auch in der Testmessung ist.

Im Faller-System werden Punkte zum Sender mit Zollstock vermessen (zum Beispiel Entfernung Sender und Empfänger, 40cm, 60cm und 90 cm) und CM/ Distanze gebildet, Referenz: https://www.youtube.com/watch?v=FNHK1Ph9f30&t=23s Auch hier koönnte man den Mittelwerte aus Wiederholungen bestimmen.

Hier ist einmal eine sinnvolle Anwendung für Interrupts. Eins sendet, zwei erkennt das Signal mit Interrupt. Wartet jetzt exakt 1000 mal. Dann sendet zwei einen Impuls den eins mit Interrupt erkennt. Eins kann jetzt die Laufzeit berechnen. Empfangszeit - Startzeit -1000ms. Eins kann jetzt auch 1000 mal warten und dann nochmal einen Impuls senden. Zwei kann dann die gleiche Rechnung machen. Die 1000ms Pause sind dafür, dass der eigene Impuls nicht gemessen wird. In der Zeit muss der Interrupt deaktiviert sein. Benutzt werden kann der normale Ultraschall Abstandssensor, HC-SR04.

Ist schon befremdend. Im offiziellen Arduino Forum ein Video zu verlinken, wo jemand 2 gefälschte Arduinos benutzt. Beide sind Arduino UNO Fälschungen!!! (Hartware die so gemacht ist, um als Orginal durchzugehen).
Woran man das erkennt? Orginal Arduino UNO R3 gibt es nicht mit blauer Platine ( außer Vorserienmodelle, die nicht im Umlauf sind). Auf dem Blaugrünen fehlt der Namen "Arduino" und das Logo ist ohne "+ -".

Er will den Abstand messen.

Da hast Du was falsch gelesen:

Link?

Ich würde einfach einen Ultraschallsensor wie einen SR04 kanibalisieren. Da findet man einen US Sender, einen US Empfänger und entsprechende Verstärkerschaltung.

https://www.researchgate.net/figure/Circuit-diagram-of-HC-SR04_fig2_334627562

Grüße Uwe

Du meinst das Startsignal geht in die Messung mit ein?

Ich verstehe das so:
über Funk Start Messung.
Erster Ping für Synchronisation
3 Ping mit Messung.

So gesehen hat das wenig Sinn.
Besser:
Über Funk start Messung.
nach gewisser Zeit Ping zurücksenden.

Grüße Uwe

Vielen Dank für die vielen tollen Ideen und Verbesserungen. Das mein Plan nicht durchdacht ist, war mir klar. Im Moment finde ich den Vorschlag von WWerner sehr spannend