LabVIEWForum.de
Werte an Arduino UNO übergeben - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: Werte an Arduino UNO übergeben (/Thread-Werte-an-Arduino-UNO-uebergeben)



Werte an Arduino UNO übergeben - PPP-Truppe - 17.05.2012 16:56

Hallo allerseits,

wir sind eine Gruppe von Studenten, die für ein Projekt an der Uni das erste mal Labview verweden wollen.
Über Labview soll eine Messapparatur mit 2 Schrittmotoren angesteuert werden, wobei letztere ihrerseits von einem Arduino UNO plus Motortreiber angesteuert werden.
Die Motorsteuerung läuft also komplett über ein Programm auf dem Arduino. Dies soll nun von zwei integer-Werte als Parameter übergeben bekommen, um die Motoren entsprechend zu bewegen.
Auch nach langem Rumprobieren, ist es uns das allerdings noch nicht gelungen.
Wir wissen auch noch nicht, wie das prinzipiell am einfachsten möglich ist. Kann man einfach Daten über den USB-Port an ein laufendes Programm auf dem Arduino senden? Oder kann man Integer-Zahlen über PINs des Arduino übergeben?

Wir denken, dass das eigentlich nicht so schwer sein dürfte, beim googlen sind wir allerdings nur auf Beispiele gestoßen, wo das Arduino Programm komplett in Labview umgesetzt wurde. Das wollen wir allerdings nicht. In Labview soll letztendlich nur die Oberfläche für die Bedienung der Messapparatur realisiert werden.

Ich hoffe, dass das einigermaßen verständlich war. Vielen Dank vorab!

Beste Grüße


RE: Werte an Arduino UNO übergeben - rekorn - 03.06.2012 00:14

Hallo,

ich hoffe ich kann euch noch helfen, auch wenn der Post ein paar Tage alt ist.

Mit LabView kannst du jeden einzelnen Pin des Arduino Uno ansteuern (senden und empfangen), allerdings ist das Problem bei der Verwendung von USB, dass nur maximal 5V und 40-50mA benutzt werden können (die des USB-Ports). Für eine Motorsteuerung gibt es eine sogenannte Motor-Shield-Steckkarte, die auf den Arduino raufgesteckt werden kann (es gibt auch weitere Steckkarten z.B. Power-Shield - Infos im Netz) - wenn für euch maximal 5V für die Motorsteuerung reichen umso besser.

Zuerst einmal versteht der Arduino selbst nur C-Code und dafür benötigt die Arduino-Software: http://arduino.cc/en/Main/Software die aktuellste Version, ist glaub ich 1.01.
Mit dieser Software kann der Arduino mit C-Code gefüttert werden. Um LabView auf den Arduino laufen zu lassen, benötigt ihr das Arduino-Toolkit - dazu lädt ihr euch den kostenlosen VI Package Manager runter und installiert über ihn den Arduino-Toolkit - dadurch könnt ihr in LabView die Programmierung machen - darauf achten, dass die Baudrate beim Gerätemanager mit dem vom LabView-Vi übereinstimmt (z.B. 115200). Mit dem Arduino-Toolkit bekommt ihr auch in einem übelsten Unterverzeichnis auch die "LVIFA_Base.pde"-Datei, die ihr mit der Arduino-Software auf den Arduino überspielen könnt. Die Datei könnte sich bei euch dann z.B. unter: C:\Program Files\National Instruments\LabVIEW 2010\vi.lib\LabVIEW Interface for Arduino\Firmware\LVIFA_Base\LVIFA_Base.pde befinden.

Deine zwei Integerwerte sollen die Motorsteuerung sein - "geh an" oder "geh aus". Auf dem Arduino sind die Pins 3,5,6,9,10 und 11 mit PWM = Pulsweitenmodulation markiert - die können die 5V ein wenig regeln - und zwar mit den Integerwerten 0 bis 255 (0=aus, 255=5V - und dazwischen auch Wink ). Ist alles nicht so schwer, die Motorsteuerung die als C-Code bei eurem Arduino bereits exisitiert könnt ihr mit LabView einfach selbst nachbauen, alles kein Hexenwerk Wink

Und jetzt siehst du auch, warum bei den Beispielen der Arduino komplett von LabView umgesetzt wird. Auf dem C-Code des Arduino steht halt drauf, dass es einen ständigen Austausch zwischen PC und Arduino gibt - wenn kein USB-Kabel angeschlossen ist, funktioniert auch der Arduino nicht mehr - der plappert nur nach, was an den Pins anliegt und gibt die Daten vom Rechner weiter.
Vielleicht kann man den C-Code von LabView zusätzlich auf den Arduino kopieren, sodass euer Motortreiber nebenbei läuft... aber da fehlt mir die Mikrocontrollererfahrung.

Ich hoff ich konnte euch damit ein wenig helfen.

Gruß
rekorn


RE: Werte an Arduino UNO übergeben - Dennis.Moser - 03.06.2012 15:54

Hallo,
habe selbst mit dem Arduino-Toolkit für LV noch nicht gearbeitet, jedoch mit dem Arduino Wink
Alternativ wäre es natürlich auch eine Möglichkeit, dem Arduino Befehle per Serial zu übergeben...

Da der FTDI-USB Treiber ja eine virtuelle Com-Schnittstelle bereitstellt, ist dies dann überhaupt kein Problem mehr...

gruß Dennis