Projektinformation

REB165 - Radar Evaluation Board

Stand: 14.05.2020

Das Radar Evaluation Board REB165 soll demonstrieren, wie man den Radarsensor RSM-1650 bzw. IPM-165 auswertet. Des Weiteren soll es einen Einstieg in die Radarsensorik ermöglichen.

Was kann ich mit dem Board machen?

Sie können dieses Board 

Erwarten Sie aber von diesem Board nicht zu viel. Hohe Geschwindigkeiten über 100 km/h bzw. Gewehrkugeln werden Sie damit nicht messen können. Theoretisch kann das Board Geschwindigkeiten bis 200 km/h messen. Es kommt nun aber darauf an, wie lange das Signal anliegt. Fahre ich mit einem Auto 200 km/h und ich halte das Board aus dem Fenster, könnte die Messung klappen. Fährt aber ein Auto mit 200 km/h an mir vorbei wird das Signal so kurz anliegen, dass unser Board das nicht mitbekommt. Hier sind wir einfach auf die Geschwindigkeit des Mikrocontrollers (16 MHz) beschränkt. Beachten Sie das bitte, bevor Sie eine Enttäuschung erleben.

Was muss auf das Board alles drauf?

Zuerst einmal eine gute und störungsfreie Spannungsversorgung. Wir benötigen für unseren Sensor und den Mikrocontroller 5V. Um eine saubere Versorgung zu bekommen, gehen wir mit 9V in die Schaltung und regeln diese per Spannungsregler auf 5V. Eine Spannungsversorgung über USB 5V empfehle ich nicht, da diese oft lästige Störungen in unseren Radarsensor Verstärker einbringen. Als nächstes brauchen wir einen Mikrocontroller, der unsere Daten samplen kann. Ich habe mich für den Atmega1284P von Atmel mit 16MHz Systemtakt entschieden. Warum genau den Atmega1284P? Weil der Controller viel Flash Speicher und 16KB RAM hat. Der RAM wird wichtig, wenn wir eine FFT im Controller rechnen möchten. Um unsere Daten am Pc schön visualisieren zu können, benötigen wir noch eine USB Verbindung. Dazu verwende ich den MCP2200 UART to USB IC von Microchip. Warum den MCP2200 und nicht wie in anderen Beiträgen von mir den FT232RL? Weil der MCP2200 von der Größe her schöner und einfacher zu löten ist. Das sind nun unsere Hauptkomponenten. Des Weiteren kommt noch ein ISP Programmieranschluss drauf und ein paar IO Pins. Das wäre eigentlich alles. Den Verstärker habe ich bewusst vom Board gelassen, da dieser direkt am Radarsensor hängt. Das macht das Board universell einsetzbar. Es können also später auch diverse andere Radarsensoren mit entsprechender Verstärkung angeschlossen werden.

Bei Interesse an Schaltplan und Layout der Platine, kontaktieren Sie mich einfach. Das komplette Board inklusive IPM-165 Radarsensor können sie natürlich auch in meinem Shop bestellen.

Firmware

Die Firmware habe ich mit Atmel Studio in C geschrieben. Normalerweise verwende ich gerne Bascom, aber für die FFT Berechnung ist Bascom nicht so wirklich geeignet. Bevor die Firmware eingespielt werden kann, müssen noch folgende FUSEBITs am Controller gesetzt werden.

Ich habe auch noch einen Bootloader und ein passendes Upload Tool für das Board programmiert. Somit können jederzeit Software Updates an den Controller übertragen werden, ohne einen AVR Programmer zu benötigen. Wenn der Bootloader verwendet werden soll, dann also erst den Bootloader einspielen und danach per Upload Tool die Firmware.

Die PC Software

Die PC Software zum Board habe ich in VB.NET 2010 programmiert (erfordert .NET Framework 4.0 oder höher). Über die Software können wir das Radarsignal visualisieren, auswerten und ein paar Einstellungen im Mikrocontroller vornehmen. Solange das Board nicht mit der Pc Software verbunden ist, läuft im Controller ein Offline Bewegungsmelder. Sobald sich etwas vor dem Sensor bewegt, leuchtet die grüne LED auf.

Um uns nun mit der Software auf das Board zu verbinden, müssen wir zuerst den Microchip MCP2200 USB Treiber installieren. Nach der Installation hat sich ein virtueller COM-Port installiert. Die COM-Port Nummer kann variieren. Also einfach im Windows Geräte-Manager nachschauen, welche Portnummer vergeben wurde. Wir verbinden uns jetzt mit per COM-Port mit einer Baudrate von 38400. Die Software sendet nun einen Verbindungsbefehl. Das Board antwortet mit "REB165". Die Verbindung steht! Jetzt wechselt die Software auf das Hauptformular.

Im Hauptfenster sehen wir auf der linken Seite die Signalverarbeitung. Auf der rechten Seite gibt es ein paar Einstellmöglichkeiten für das Board. Alle Einstellungen werden auf dem Board gespeichert und werden auch beim Offline Bewegungsmelder berücksichtigt.

Welche Einstellungen kann ich vornehmen?

Mode
Time Signal (Raw Data)
Es werden die gesampelten Daten in rohform übertragen. 
Für einen Bewegungsmelder völlig ausreichend.
FFT (Fast Fourier Transformation) Die gesampelten Daten werden per FFT in Frequenz und Signalstärke umgerechnet. Das ist für eine 
Geschwindigkeitsmessung nötig. Es kann hier noch gewählt werden, ob die FFT am Pc oder im Controller (langsamer und etwas schlechter, da FixPoint FFT) gerechnet werden soll. Über den km/h Faktor, lässt sich das Ergebnis in km/h umrechnen. Des Weiteren lässt sich der Geschwindigkeitsbereich (Min/Max) über den Speed Filter einschränken.
Board Settings
Samples Anzahl der Messwerte (8-1024) pro Lesezyklus. Je höher die Anzahl, desto größer die Auflösung.
ADC Sample Rate Einstellung der Geschwindigkeit des Analog Digital Wandlers. Je höher die Rate, desto größer die Bandbreite.
Sample Delay Wartezeit zwischen einem Lesezyklus. Auto = schnellste
Motion Detector
Alarm Threshold Schwellwert für den Bewegungsmelder bzw. Schwellwert für die Geschwindigkeitsmessung. Wird dieser Wert überschritten, wird eine Bewegung gemeldet oder eine Geschwindigkeit gemessen.
IO B6 IO Pin Einstellung. Pin HIGH ON/OFF wenn Schwellwert überschritten wurde (max. 40 mA belastbar)
IO B7 IO Pin Einstellung. Pin HIGH ON/OFF wenn Schwellwert überschritten wurde (max. 40 mA belastbar)
LED on Alarm Grüne LED ON/OFF wenn eine Bewegung festgestellt wurde
Delay after Alarm 
(Nur im Offline Motion Detector aktiv)
Eine Pause wie lange die LED bzw. die IO Pins geschaltet werden.

ADC Sample Rate / Anzahl Samples

Diese beiden Einstellungen sind die wichtigsten. Aber was genau bewirken diese? Zuerst überlegen wir uns, welche maximale Geschwindigkeit wir erfassen möchten. Sobald das geklärt ist, können wir die ADC Sample Rate einstellen.  Aber freuen wir uns nicht zu früh! Viele der maximalen Geschwindigkeiten können nicht gemessen werden, da unser Controller dafür zu langsam ist. Es ist nur eine Einstellung, was uns der ADC im Mikrocontroller theoretisch zur Verfügung stellen kann. Folgende Einstellungen wurden mit einem Frequenzgenerator simuliert:

ADC Sample Rate Bandbreite Bemerkung
125 kHz
44 Hz – ca. 4.444 Hz
entspricht 1 km/h – 100 km/h
250 kHz
44 Hz – ca. 8.316 Hz
entspricht 1 km/h – 189 km/h
500 kHz
44 Hz – ca. 15.356 Hz 
entspricht 1 km/h – 349 km/h
1 MHz
44 Hz – ca. 26.312 Hz
entspricht 1 km/h – 598 km/h
2 MHz
n.a. not applicable
4 MHz
n.a. not applicable
8 MHz n.a. not applicable

Als nächstes wählen wir die Anzahl der Samples aus. Je höher die Samples, umso höher ist die Auflösung der vom ADC zur Verfügung gestellten Bandbreite. Aber je mehr Samples pro Zyklus eingelesen werden, umso langsamer ist unsere Messung. Hier müssen wir also die richtige Einstellung für unsere Messung wählen. Für einen Bewegungsmelder sind diese Einstellungen nicht unbedingt sehr wichtig. Aber für eine Geschwindigkeitsmessung muss die passende Einstellung gefunden werden.

Empfehlung für die Messung von Autos bis 100 km/h: 125 kHz, 256 Samples.
Die Bandbreite ist bist 100 km/h eingestellt und die Auflösung ist fein genug um jedes einzelne km/h messen zu können.

Um die passende Einstellung finden zu können, habe ich einige Geschwindigkeiten mit einem Frequenzgenerator bei verschiedensten Einstellungen simuliert und die Ergebnisse dokumentiert. Sie finden die Ergebnisse im auf der Radar Evaluation Board CD im Verzeichnis "Dokumentation\Lookup Tables".

Beispiel 1: Ein einfacher Bewegungsmelder / Fußgänger

Für einen Bewegungsmelder (Reichweite bis zu 10m) nehmen wir folgende Einstellungen vor:

Parameter Einstellung
Mode
Time Signal (Raw Data)
Samples
128
ADC Sample Rate
125kHz
Sample Delay
auto
Alarm Threshold 160

Je nachdem wie empfindlich der Bewegungsmelder sein soll, senken wir den Threshold (Schwellwert) dementsprechend ab. Des Weiteren können wir noch die Reichweite des Radarsensors reduzieren, indem wir die Poti Einstellung verändern.

Sobald sich nun etwas vor dem Sensor bewegt und den Schwellwert überschreitet, wird ein Alarm ausgelöst.

Beispiel 2: Eine Geschwindigkeitsmessung / Fußgänger / PKWs

Für eine Geschwindigkeitsmessung (1 – ca. 100 km/h) nehmen wir diese Einstellungen vor: 

Parameter Einstellung
Mode
FFT (Fast Fourier Transformation)
Samples
256
ADC Sample Rate
125kHz
Sample Delay
auto
Alarm Threshold 10

Für eine Geschwindigkeitsmessung wird eine FFT Berechnung benötigt. Das Ergebnis liefert das Signal in Frequenz und Signalstärke umgerechnet. Bei 256 Samples erhalten wir im Ergebnis 128 Messwerte auf der X Achse. Jeder dieser 128 Werte steht für eine bestimmte Frequenz. Diese hängt davon ab, welche Sample Rate und Anzahl der Samples wir gewählt haben. Welcher Wert für welche Frequenz steht, kann aus "Dokumentation\Lookup Tables" entnommen werden. Die Software ermittelt nun bei einer Überschreitung des Schwellwerts den Messwert auf der X Achse mit dem größten Signal auf der Y Achse. Möchten wir nun das Ergebnis in km/h umgerechnet haben, dann aktivieren wir den km/h Faktor. Dieser Faktor wurde aus den Simulationsergebnis der Lookup Tables abgeleitet. 

Videos

Ein paar kurze Demo-Videos zu dem Evaluation Board finden Sie auf Youtube (Video_1; Video_2)