Business Joomla Templates
Banner
Banner
Banner
 sebastianweidmann.de Forum :: Projekte
Welcome Guest   [Register]  [Login]
 Subject :Radarsensor ADC Sample Raten / Arduino implementierung.. 2015-11-25 15:30:01 
atommeyer
Anfänger
Joined: 2015-11-25 14:19:24
Posts: 3
Location
Hallo,

ich beschäftige mich seit einigen Tagen mit Ihrem tollen Projekt. Ich hätte hierzu ein paar Fragen.

Warum so große ADC Sample Raten?
Folgende Einstellungen werden empfohlen: ADC Sample Rate 125kHz Anzahl Samples 256.
Daraus dürfte sich doch die kleinste FFT Frequenz 125kHz/256 = 488Hz ergeben. Dies wiederum würde eine Auflösung von ca. 11kmh (488Hz/44Hz) bedeuten.
Bei einer ADC Sample Rate von 11264Hz und 256 Samples würden sich als untere Frequenz genau 44Hz ergeben. Mir ist natürlich klar das 125kHz die kleinste (direkte) Sample Rate des ADC ist.
Wie kommen wir also auf die Auflösung von 1kmh (44Hz)?
Oder wo habe ich hier einen Denkfehler?

Ich habe außerdem Probleme mit dem Radarsensor (Aus Ihrem Shop). Irgendwie scheint die Verstärkung des NF Verstärkers nicht auszureichen. Ich kann bei maximaler Verstärkung ab 5m kein PKW erkennen. Die Messung hat hier ohne FFT mit einem Arduino Nano stattgefunden: T = pulseIn(pin, HIGH) + pulseIn(pin, LOW);
Mit dem Oszilloskop waren die Signale meiner Hand ab 1m nicht mehr zu erkennen.
Erst nach dem einfügen eines 100K Widerstandes nach dem Poti hatte ich Messbare Ausschläge (+Rauschen).
Was kann hier das Problem sein?

Ich versuche mit Hilfe der SplitRadixRealP FFT das Projekt auf einem Arduino DUE zu implementieren. Die FFT läuft auf DUE und Nano, es fehlt noch das Portieren des Radar Projektes. Letzter Stepp wäre ein versuch auf dem Arduino Nano mit SplitRadixRealT.

MfG
Sven Meyer
IP Logged
 Subject :Aw:Radarsensor ADC Sample Raten / Arduino implementierung.. 2015-11-25 16:08:50 
code
Administrator
Joined: 2009-11-02 19:35:31
Posts: 65
Location
  
Hallo Herr Meyer,

125 KHz ist die kleinste einstellbare ADC-Rate am Atmel Controller und liefert die besten Ergebnisse.
125 KHz bedeutet nur, dass der ADC die Daten so schnell zur Verfügung stellen kann. Die tatsächliche Rate hängt davon ab,
wie schnell Sie mit dem Controller die Daten abholen. Beim Radarsensor samplen wir eine Frequenz zw. 0-11 KHz (0-250 km/h).
Also müssen wir mindestens mit doppelter Geschwindigkeit samplen können (22 KHz) um das Signal erfassen zu können.
Bei 125 KHz haben wir da also keine Probleme. Zu hoch samplen (z.B. 1 MHz) bringt aber auch nichts.
Laden Sie mal die CD vom Radar Evaluation Board von meiner Seite.
Dort finden Sie ein paar Excel Tabellen. In diesen habe ich die Frequenzen mit einem Frequenzgenerator und verschiedenen ADC Raten simuliert.
Anhand der Ergebnisse sehen Sie, welche Einstellungen die besten Ergebnisse liefern.

44Hz entspricht 1 km/h. Dies ist eine Faustformel der Radartechnik.
Die genauen Formeln und Herleitungen können Sie den Buch entnehmen, welches ich im Shop anbiete.

Zu Ihrem Problem mit der Reichweite:
Wenn Sie nur Pulse zählen bzw. einen Frequenzzähler als Auswertung nutzen, dann wundert mich Ihre Reichweite nicht.
Ihre Modifikation mit einem 100K Widerstand hört sich für mich jetzt verwirrend an. Der ist nicht nötig.
Wahrscheinlich haben Sie das Poti jetzt auf 0 gedreht und die 100K welche das Poti ja macht noch hinten dran gehängt. Entfernen Sie den Widerstand wieder und
prüfen Sie, dass die Lötstellen des Potis noch intakt sind.

Wenn das Objekt weiter als 5m entfernt ist, haben wir ein schwächeres Signal. Der Controller erkennt dann keine eindeutigen HIGH/LOWs mehr.
Erst wenn das Objekt näher kommt, wir das Signal stärker und ergibt erkennbare HIGH/LOWs.
Eine Verbesserung können Sie erzielen, wenn Sie das Signal noch mit einem Komparator aufbereiten.
Mit einem Komparator IC legen Sie mit einem Spannungsteiler eine Schwelle fest (z.b. 2V).
Alles was nun über 2V ist, wird durch den Komparator auf 5V umgewandelt. Alles was unter 2V ist, wird in 0V umgewandelt.
Somit erhalten Sie auch bei Objekten in größere Entfernung eindeutige HIGH/LOWs Pegel zur Frequenzzählung.

Großer Nachteil dieser Auswertung: Sie funktioniert nur solange sich ein Objekt vor dem Sensor bewegt. Bewegen Sie zwei oder mehr Objekte mit unterschiedlichen
Geschwindigkeiten vor dem Sensor, vermischen sich die Frequenzen und das zählen von Pulsen ergibt eine sinnlose Geschwindigkeit.

Die beste Möglichkeit der Auswertung ist die FFT.
Ein Beispiel dafür finden Sie unter meinem Radar Evaluation Board Beitrag (Sourcecodes sind in der CD enthalten) bzw. auch ein Video mit der Messung eines Autos.

Sie müssten versuchen die FFT auf den Arduino zu portieren. Das sollte eigentlich bis zu 256 Samples möglich sein. Für mehr fehlen den Controllern auf
den Arduino Board der Arbeitsspeicher (RAM).


Mit freundlichen Grüßen
Sebastian Weidmann
IP Logged
 Subject :Aw:Radarsensor ADC Sample Raten / Arduino implementierung.. 2015-11-25 17:26:36 
atommeyer
Anfänger
Joined: 2015-11-25 14:19:24
Posts: 3
Location
Hallo Herr Weidmann,

danke für die schnelle Antwort.

Für die FFT gilt doch der Frequenzabstand(Auflösung) = Samplefrequenz / Anzahl Samples, hier also 125kHz / 256 Samples = 488Hz. Somit dürften 256 Samples nicht ausreichen, es müssten schon >2000 Samples sein damit die Auflösung 44Hz also 1kmh beträgt. Oder es wird nur jeder zehnte Sample verwendet. Ich habe bisher nur den Quellcode der Firmware analysiert.
Oder ich habe das Fenster übersehen.
Aber vielleicht fehlen mir auch noch ein paar FFT und Assembler Grundlagen.

Ich werde mir zur Aufklärung Ihr Evaluationsboard zulegen, damit kann ich das ganze dann sicher besser nachvollziehen.

Das mit der Reichweite ist schon merkwürdig, da ich ja selbst am Oszilloskop nur geringe Ausschläge sehen konnte. Ich werde nochmals auf kalte Lötstellen und Poti-Stellung prüfen.

Für die schnelle einfach Messung ohne FFT habe ich als Projektvorlage "Geschwindigkeits-messung mit Arduino von H.J.Berndt" genommen, allerdings mit geringem Erfolg, also FFT!

Die FFT läuft bereits auf dem Arduino Due mit Hilfe der "SplitRadixReal FFT Library" mit 2048 Samples und auf dem Arduino Nano mit 256 Samples.

Der Arduino DUE hat 96KB RAM und 84MHz, dies sollte mehr als ausreichen.

MfG
Sven Meyer
IP Logged
 Subject :Aw:Radarsensor ADC Sample Raten / Arduino implementierung.. 2015-11-25 18:01:23 
code
Administrator
Joined: 2009-11-02 19:35:31
Posts: 65
Location
  
Der ADC kann 125 KHz messen.

Es kommt jetzt darauf an, wie schnell Sie die Werte am ADC abholen.

Beispiel:

Sie samplen 256 Werte in 60ms = 0,234375ms pro Messwert.

https://www.unitjuggler.com/frequency-umwandeln-von-Hz-nach-ms%28p%29.html?val=2200

2200Hz (entspricht ca. 50 km/h) = 0,45ms
4400Hz (entspricht ca. 100 km/h) = 0,227ms

Mit 256 Werten und 60ms Zykluszeit können Sie in der FFT knapp bis 100 km/h messen.
Das bestätigen auch die Ergebnisse meiner Simulation.

Sie müssen also die Abtastfrequenz / Samples rechnen, um die FFT Auflösung zu erhalten.
4400 / 256 = 17,1875 Hz pro Sample.


Wenn ihr Modul plötzlich nur noch sehr geringe Ausschläge hat, dann haben Sie höchstwahrscheinlich das Modul
mit einer Überspannung, Verpolung oder ESD-SChaden geschossen. Die Mischerdioden im Sensor sind sehr empfindlich.
IP Logged
 Subject :Aw:Radarsensor ADC Sample Raten / Arduino implementierung.. 2015-12-02 21:29:15 
atommeyer
Anfänger
Joined: 2015-11-25 14:19:24
Posts: 3
Location
Hallo Herr Weidmann,

danke für die Aufklärung.
Der Denkfehler war also dass die echte Abtastfrequenz kleiner als 125kHz ist, da der AD Wandler noch ein paar Takte braucht.
Werden also 256 Werte in 60ms gemessen wird ein Wert in 0,234375ms gemessen.
Dies macht eine Abtastfrequenz von 4267Hz also beträgt die Auflösung 4267Hz / 256 = 16,67Hz


Nachdem Ich bei dem Modul das Poti nachgelötet habe läuft nun alles Problemlos mit der Verstärkung.


Der Radarsensor läuft im Moment perfekt an einem Arduino DUE.
Ich habe eine Auflösung von ca. 10Hz und eine Abweichung von 1-2% mit einem Frequenzgenerator gemessen.

22khz 2048 samples signal 5khz 100mvPP amplitude 19 frequenz=22khz/2048*465 = 4995Hz
22khz 2048 samples signal 5khz 400mvPP amplitude 129 frequenz=22khz/2048*465 = 4995Hz
22khz 2048 samples signal 250hz 400mvPP amplitude 142 frequenz=22khz/2048*23 = 247Hz
22khz 2048 samples signal 88hz 400mvPP amplitude 149 frequenz=22khz/2048*8 = 86Hz
22khz 2048 samples signal 400hz+5kHz 400mvPP amplitude 47/42 frequenz= 397Hz/4995Hz

rechenzeit/us Hamng 954 Revb 879 SplitRR 3976 GainR 318 Sqrt 5004 Sqrt2 454

Der DUE Samplet im Interrupt mit 22kHz (möglich bis 1MHz) bei 12Bit Auflösung.
Die FFT läuft mit 2048 Samples komplett mit Auswertung in weniger als 13ms durch.
Dies dürfte eine echte alternative zur PC Auswertung sein.
Ich habe den Arduino DUE bereits mit Ihrer PC Software am laufen, nur stimmen noch nicht alle Skalierungen und einige Bits der Konfiguration passen noch nicht (oder sind überflüssig).
Bei Interesse stelle ich das Arduino Projekt inklusive der erforderlichen Bibliotheken gerne zur Verfügung.

MfG
Sven Meyer
IP Logged
 Subject :Aw:Radarsensor ADC Sample Raten / Arduino implementierung.. 2015-12-04 01:58:03 
code
Administrator
Joined: 2009-11-02 19:35:31
Posts: 65
Location
  
Hallo Herr Meyer,

da hat sich wohl eine kalte Lötstelle am Poti gebildet. Freut mich, dass Sie das Problem lösen konnten.

Ihre Ergebnisse hören sich super an!
Ich würde mich sehr freuen, wenn Sie Ihren code zur Verfügung stellen würden.
Laden Sie ihn am besten hier in den Forumbetrag hoch. Sollte das nicht funktionieren, senden Sie ihn an info@weidmann-elektronik.de

Mit freundlichen Grüßen
Sebastian Weidmann
IP Logged
 Subject :Aw:Radarsensor ADC Sample Raten / Arduino implementierung.. 2016-01-10 19:12:24 
code
Administrator
Joined: 2009-11-02 19:35:31
Posts: 65
Location
  
Anbei der Arduino Code von Herrn Meyer für alle interessierten.

Attachments
 arduino.zip [53 KB]
IP Logged
Page # 


Powered by ccBoard