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
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
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
@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.
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.
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