LabVIEWForum.de
Entfernung messen mit HC-SR04 Sensor - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Entfernung messen mit HC-SR04 Sensor (/Thread-Entfernung-messen-mit-HC-SR04-Sensor)



Entfernung messen mit HC-SR04 Sensor - Unplugged - 20.12.2018 20:33

Hallo liebe Community,

vorab: ich bin leider absoluter Anfänger mit LabView.

Mein Problem:
Ich muss im Rahmen eines Projekts mit LabView einen Automat entwickeln um Entfernungen zwischen 10cm und 80cm zu messen.
Als Sensor würde ich gerne den HC-SR04 Ultraschallsensor verwenden, da ich diesen schon besitze.
Das ganze wäre natürlich leicht realisierbar wenn ich es über einen Arduino mache, aber ich habe die Vorgabe einen NI USB-6008 zu verwenden.

Funktion des Sensor: Es wird über den Trigger-Ausgang ein Signal gesendet, das vom Echo-Eingang wieder empfangen wird. Gemessen werden muss die Zeit, die das Signal braucht zwischen senden und empfangen, um somit die Entfernung zu einem Gegenstand zu ermitteln.

Nun habe ich versucht den Sketch, der eigentlich im Arduino läuft, in LabView zu erstellen und deshalb mit einer Sequenz zu arbeiten, bin aber sehr schnell an meine Grenzen gestoßen und habe mich nach 5 Stunden erfolgloser rumprobiererei dazu entschlossen mich an das Forum zu wenden und hoffe ihr könnt mir weiter helfen. Ahrg1


Noch ein bisschen was zum Hintergrund: Ich habe LabView in der Schule (Techniker). Im Unterricht hatten wir die Grundlagen und sehr einfache VI´s wie z.B. Berechnung eines Dreiecks, Rechentrainer und Drehzahlregler gemacht. Nun wurden wir ins kalte Wasser geworfen und müssen uns irgendwie das Wissen selbst aneignen, wie man externe Geräte in LabView einbindet.


RE: Entfernung messen mit HC-SR04 Sensor - RMR - 21.12.2018 07:15

Willkommen im Forum,

um die DAQ-Hardware einzubinden solltest du dir die Beispiele ansehen. Ich empfehle dir auf die ExpressVIs zu verzichten und es gleich richtig zu lernen.
Für den Ablauf empfehle ich die eine Statemachine einzurichten. Auch hierfür git es tolle Beipiele.

Deine 2018 Version werden hier nicht allzu viele öffnen können. Es gibt die Option für "ältere" Versionen zu speichern.

Kurzer Fahrplan für ein Projekt:

- MAX installieren und die Hardware testen.
(Devicenahme einrichten, im TEstpanel kontrollieren ob das Siugnal ankommt und wie es aussieht.)
- Statemachine erstellen (in den Beispielen)
(init DAQ, messen, Delay usw)
Tipp: nutze für die States Typdefinierte Enums

Wenn du das soweit erstellt hast und weitere Probleme auftauchen bekommst du hier ganz sicher Hilfe.

Frohes Fest, Ralf aka RMR


RE: Entfernung messen mit HC-SR04 Sensor - GerdW - 21.12.2018 07:59

Hallo Unplugged,

herzlich willkommen im Forum!

Zitat:ich bin leider absoluter Anfänger mit LabView.
Das ist nicht schlimm, aber sofort an der Schreibweise zu merken! Big Grin
Es heißt LabVIEW…

Zitat:Das ganze wäre natürlich leicht realisierbar wenn ich es über einen Arduino mache, aber ich habe die Vorgabe einen NI USB-6008 zu verwenden.
Ich würde dir sogar den Arduino empfehlen statt der USB6008…

Zitat:Nun habe ich versucht den Sketch, der eigentlich im Arduino läuft, in LabView zu erstellen und deshalb mit einer Sequenz zu arbeiten, bin aber sehr schnell an meine Grenzen gestoßen und habe mich nach 5 Stunden erfolgloser rumprobiererei dazu entschlossen mich an das Forum zu wenden und hoffe ihr könnt mir weiter helfen. Ahrg1
Warum dieser Hinweis auf die Sequenz? Dank DATAFLOW benötigt man die (so gut wie) nie…

So könnte dein VI schon mal etwas aufgeräumter aussehen:
[attachment=59655]
(Sobald du die Timing-Funktion in ein subVI mit ErrorIO packst, benötigst du gar keine Seqenzrahmen mehr!)
Die Vergleiche sollten (IMHO) auch in der Schleife stattfinden und nicht nur einmal hinterher…

Zu den DAQ-Assistenten:
Ich empfehle, diese so schnell wie möglich durch einfache DAQmx-Funktionen zu ersetzen. LabVIEW bringt da jede Menge BeispielVIs mit - und alle ohne DAQ-Assistent. (Rate mal, warum das so ist!)
Du gibst im ersten DAQ-Assi genau ein Sample aus. Im Arduino-Sketch werden aber 3 ausgegeben: FALSE, TRUE, FALSE…
Du liest im zweiten DAQ-Assi genau ein (digitales) Sample ein: wie willst du hier so eine Zeitspanne wie im Arduino bestimmen? Hmm
Ich empfehle die Nutzung eines Analog-Inputs: einfach 1s an Samples mit einer Samplerate von 5kHz einlesen. Dann im eingelesenen Signal nach dem Puls suchen und dessen Index im Signal bestimmen. Bei 5kHz hast du eine zeitliche Auflösung von 200µs, das sollte für diesen Sensor vollauf genügen…

Wenn ihr im Unterricht nichts über DAQmx gehört habt, solltest du DRINGEND deinen Lehrer dazu befragen. Oder ihn auf diesen Forum-Thread hinweisen…


RE: Entfernung messen mit HC-SR04 Sensor - jg - 21.12.2018 09:37

Die Forensuche liefert so einiges zu HC-SR04 u.ä. Ultraschallsensoren, z.B. hier:

https://www.labviewforum.de/Thread-Arduino-Ultraschallsensor-mit-Ni-USB-6009
https://www.labviewforum.de/Thread-Ultraschallsensor-SRF-05-Ansteuerung (inkl. einem möglichen Lösungsvorschlag)

Wie schon vor Jahren geschrieben, ist eine 6009 (und somit erst recht eine 6008) nicht gerade die optimale HW zur Laufzeitmessung. Auslösen des Impulses geht du nur per Software-Timing, und das Rücksignal muss per AI aufgezeichnet werden, da der Counter bei diesen Karten nicht die Länge eines Impulse auswerten kann.

Gruß, Jens


RE: Entfernung messen mit HC-SR04 Sensor - Unplugged - 30.12.2018 17:44

Vielen Dank für die Antworten (Y)

Habe mich nun schon ein wenig weiter eingearbeitet und das ganze mit einem SHARP GP2Y0A21YK realisiert.