Zum Inhalt springen

Open Source Prüfstandssoftware auf Basis von Arduino Mega und LabVIEW


chili023

Empfohlene Beiträge

Hallo liebe Gemeinde, ich möchte hier unser Projekt vorstellen. Seit nun mehr 2 Jahren tüftel ich an einer sauberen Lösung, Leistung an Rollenprüfständen zu messen und die Ergebnisse in eine Datenbank zu speichern. So gut und stabil der GSF Dyno auch ist, er ist etwas Benutzer unfreundlich und es vergeht immer einige Zeit zwischen Messung und Leistungsdarstellung.

 

Hier möchte ich anmerken, das ich zu keiner Sekunde den GSF Dyno kritisieren möchte. Ich wünsche mir nur eine etwas professioneller ausschauende Software für die Erstellung und Speicherung von Prüfstandsläufen.

Angefangen hat alles mit einem Atmega und einem einfachen C Programm. Viele Fehler und viele initiale Hürden habe ich alleine genommen, jedoch kam meine Entwicklung aus Zeitmangel (Test und Entwicklungszeit) zum erliegen.

Als ich mich nach einer Pause wieder mit dem Thema beschäftigt habe, kam nach kurzem Aufruf im Forum Wildstyler und Grua dazu.

Mit der Hilfe und unermüdlichen Geduld der Zwei ging alles mit sehr großen Schritten voran.

 

Wildstyler übernahm den Großteil der Prüfstandstest und hat alles in kürzester Zeit getestet was wir ihm schickten. Hemmungslos hat er seine Elenor auf dem Prüfstand gequält bis die Kupplung (Partnerlink) weinte (und auch den Geist auf gab).

Grua hat die nummerische Umsetzung in Labview, Entwicklung der Oberfläche und Bedienung übernommen. Die Auswertung hat er so nahe am GSF Dyno gehalten wie möglich.

Unser gemeinsames Ziel ist eine stabile Software zur Verfügung zu stellen die vom Forum frei benutzt und getestet werden kann. Wichtig ist uns allen Open Source.

Die Software läuft stabil und erzeugt wiederholbare Ergebnisse, sie ist aber noch nicht perfekt. Einige Features sollten noch implementiert werden.

Wir hoffen, das mit der gemeinsamen Hilfe des Forums eine gute und stabile Software auf dem Niveau eines AVL Prüfstands entsteht.

Nun genug des Gesülzes und zur Software.

 

Idee war es eine Microcontroller so zu programmieren, das er mit der Minimalkartschaltung benutzt werden kann.

Bei dem aktuellen Programm, handelt es sich um die Minimalausführung (nur Leistungsmessung) mit Debug Features.

Wenn sich genug Menschen finden bei denen diese Version gut funktioniert soll sie immer komplexer werden.

 

Messprinzip:

Arduino Mega angeschlossen and die Minimalkartschaltung.

Der Arduino bekommt in TTL (5V) die Impulse der Rolle und der Zündung. Diese gehen in den ICP4 und ICP5 (Pin 48 und Pin 49).

ICP steht für Input Capture Pin. Es ist wichtig das der Arduino nur 5V Signale bekommt. Das geht am einfachsten mit einem Optokoppler der auf die Unteschiedlichen Schaltkreise abgestimmt ist. So wa es uns möglich bei Wildstyler, Grua und mir drei unterschiedliche Prüfsysteme mit unserer Software/Hardware zu benutzen.

Dabei handelte es sich um:

12V / 16 Inkremente / leichte Rolle

9V / 24 Inkremente / schwere Rolle

5V/200 Inkremente / mittlere Rolle

 

Der Arduino hat die Aufgabe die Zeit zwischen zwei steigenden Flanken der beiden Eingänge zu messen und diese in einen Ringspeicher zu speichern. Die Werte werden dann über Serielle Schnittelle zusammen mit der Übertragungszeit (Zeit zwischen zwei Übertragungen) an den PC/LabVIEW gesenden. LabVIEW berechnet dann die Leistung und stellt sie dar.

Zur Zeit senden wir mit ca 50Hz die Werte an den PC. Das hat sich als guter Wert herausgestellt.

Kurz zum Arduino. Wir haben uns für den Arduino entschieden, da es ohne Vorkenntnisse möglich ist, ihn von jedem PC aus zu programmieren. Die USB Schnittstelle dient gleichermaßen als Programmierschnittstelle und Serielle Schnittstelle an den PC.

Die Daten der Rolle und der Zündung werden an Labview gesendet. Wir benutzen Labiew , da es nur noch 50€ als Home Version kostet und genau für solche Situationen entwickelt wurde. Eine Implementierung in Java oder C oder was auch immer ist natürlich auch möglich und ausdrücklich erwünscht. Labview ist nur das von uns genutzte Modul. Die Daten können wie gesagt beliebig verarbeitet werden.

 

Benötigt wird:

1x Arduino Mega

1x Labview 2014 oder neuer

1x Prüfstand mit Rollensensor

1x Minimalkartschaltung (nicht dringend notwendig wenn man weiss was man macht....)

 

Aufbau:

ACHTUNG Signale müssen aufbereitet bzw. auf 5V gebracht werden. Ich habe den LTV827S (Optokoppler) mit 180 Ohm zwischen Signal und Eingang und 10kOhm am Ausgang gegen GND.

1. Zündungssignal aus Minimalschaltung an Pin 48

2. Rollensignal aus Sensor (oder Minimalschaltung) an Pin 49

 

Ablauf der Messung:

In Labview müssen die bekannten Daten von Zündung, Massenträgheit usw. eingetragen werden. Desweiteren muss der korrekte COM Port eingestellt werden.

1. das Programm starten. (Weisser Pfeil oben im Menu)

2. Rollen und Rolle auf konstante Drehzahl bringen.

3. Die Messung Starten (Großer Knopf mit Start)

3.1. Labview startet die Übersetzungsermittlung. Ist dieser Prozess fertig erscheint ein Grünes GO und es kann gemessen werden.

4. Vollgas

5. Vom Gas gehen

Nach erreichen der maximalen Drehzahl und Reduzierung der Drehzahl wird die Messung automatisch beendet. Die Messung wird gespeichert und die nächste Messung kann starten.

 

Still to come:

Wir sind gerade noch dabei einige Verbesserungen zu implementieren. Dazu gehören:

1. Implementierung eines BME280 für die Wetterdaten.

2. Implementierung eines Fussschalters für "Messungsstart" und "nächste Messung".

3. Implementierung von Lambdamessung

4. Implementierung von Temperaturmessung  ----> MAX31855 breakout ca. 15€

Ich möchte ausdrücklich nochmal darauf hinweisen, dass das Programm noch nicht perfekt ist und das vielleicht einige Lösungsansätze besser oder Prozessorfreundlicher gestaltet werden könnten.

Mit dieser Version möchten wir dem Forum eine stabile Basis zur Verfügung stellen, auf die nun gemeinsam aufgebaut werden kann. Open Source heisst hier das Sprichwort.

 

Ich persönlich bin zur Zeit durch Hausrenovierung etwas stärker eingespannt, werde aber weiterhin an dem Programm arbeiten. Ich denke, das wir gemeiensam in kurzer Zeit eine sehr professionelle Software/Lösung zum messen von Leistung haben werden.

 

Ich möchte mich nochmal bei Wildstyler, BugHardcore und Grua bedanken. Ohne die Drei wäre die Software jetzt nicht da wo sie ist und das Projekt wäre wahrscheinlich in eine meiner Schubladen gelandet.

 

Das ganze Paket kann von GitHub runter geladen werden. Im Zip befinden sich alle Dateien und eine Docu. Alle neuen Entwicklungsstände werden dort veröffentlicht.

https://github.com/gruaGit/WildBugChilGru/releases

 

 

 

!---------------------------------EDIT--------------------

 

WildGruChil_Shield_v4 mit allen Anschlüssen für den BME280(wattenrott) und MAX31855 (adafruit) von wattenrott. 12V und 5V Variante

 

 

12V_v4_Board.PNG

 

 

!---------------------------------EDIT--------------------

 

 

Wildstyler.PNG

 

 

 

 

 

 

Bearbeitet von chili023
Neue Version
  • Like 21
  • Thanks 2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Möchte mich bei Euch bedanken, dass Ihr so etwas macht. Habe mir eben das Labview FIle angeschaut und als Labview Anfänger muss ich sagen, da hat sich wer sehr bemüht und eine eine brauchbare VI auf die Beine gestellt.  Ich kann leider die Software nicht testen, da ich keinen Prüfstand habe. Ich hätte zwar Arduino und Labview.

Was ich aber beitragen könnte ist, aus der Software ein .exe FIle zu machen. Was das bringt? Man braucht nicht Labview kaufen sondern lädt von der Homepage die RuntimeEngine Software runter. Die ist kostenlos und die Programmierte Datei kann trotzdem verwendet werden. Man sieht das Frontpanel (hier befinden sich die Anzeigen, Diagramme etc.) wie oben ersichtlicht aber man sieht das Blockdiagramm (hier wird programmiert) man nicht. Der Nachteil ist, dass man keine Codeänderung im erstellten VI von Labview mehr vornehmen kann. Änderungen im Code will aber eh nicht jeder machen ,glaube ich.

 

Frontpanel:

Frontpanel.jpg

 

Blockdiagramm:

Blockdiagramm.jpg

 

  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die Blumen. Grua hatte die gleiche Idee. Das sollten wir auf jedenfall machen. Kann gerne heute Abend eine exe Compiliren und mit ins zip intigrieren.

 

Muss ich dabei irgend etwas beachten?

Bearbeitet von chili023
Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für das Lob :)

Begonnen hatte mit dem ganzen Projekt chili023, mit Elektronik, Arduino Programmierung als auch LabView. Ohne ihn wäre das ganze nie gestartet - danke dafür! Am LabView hab dann in Folge ich weiterentwickelt und Wildstyler hat den größten Teil der Tests übernommen. Trotz anfangs häufiger Softwarebugs hat ihn nie der Mut verlassen - Hut ab dafür!


Da ich selbst eher aus der Hochsprachenprogrammierung komme und LabView als graphische Programmieroberfläche für mich völlig neu war, stellt sich das Blockdiagramm noch ziemlich unstrukturiert dar und bietet definitiv noch einiges an Potential hinsichtlich Aufbau und Effizienz. Aber ich musste da erst reinwachsen und hab mal das Hauptaugenmerk auf Funktion gelegt. Da das Ganze open source ist, sind LabView-Programmierer natürlich herzlich eingeladen Verbesserungen einzubringen!


Was neben den eingangs erwähnten Punkten zusätzlich noch fehlt sind ordentliche Dokumentation, v.a. Beschreibung von Zweck und Auswirkung der diversen Eingabefelder. Dazu aber nächste Woche mal, sobald ich wieder einen PC zur Verfügung habe, ist hier im Urlaub am Handy etwas mühsam ;)


Und Erklärung weshalb es da rote Kurven (= Polynomapproximation der grauen Kurven) und graue Kurven gibt (= berechnete Kurven vor Polynomapproximation). Eine der beiden wird noch verschwinden, dazu sind aber noch einige Vergleichsläufe zw. eigenem Prüfstand und einem professionellen Referenzprüstand wie P4 notwendig.


Betreffend EXE: Die wollte ich ohnehin noch erstellen, muss mich mit den diesbezüglichen Einstellungen aber erst noch vertraut machen. gs-gani darf da aber ggf gerne zuvorkommen:)


Dann der Community hier viel Spaß damit!

  • Like 4
Link zu diesem Kommentar
Auf anderen Seiten teilen

na dann will ich mich auch mal zu Wort melden.

Es war in der Vorveröffentlichungsphase nicht immer einfach für mich, als absoluter Programmier- und Elektronik Noop, nachzuvollziehen was chilli und grua da immer für Wunder vollbracht haben. Ich hab immer versucht alle Software Updates zeitnah zu testen. Manchmal lags an mir, wenn ich mal wieder was falsch zusammen gesteckt hatte oder zu blöd war mit dem Oszilloskop was zu messen´´, daß das ganze ins stocken kam. Aber am Ende haben wirs dann doch geschafft (und ich hoffe mit dem GSF zusammen wird da noch was richtig großes draus). Mittlerweile, wie chilli eingangs schon geschrieben hat, hab ich eine Kupplung verbraten ( war aber eh schon am sterben) und einen Hinterreifen bis zum Vorhang runtergeschrubbt (ja ja das Griptape hat scharfe Zähne). Richtig klasse die Kiste ständig über den Prüfstand zu prügeln, ich könnt das den ganzen Tag machen.

Es ist echt erstaunlich was chilli und grua da auf die Beine gestellt haben. Kaum hatte ich was neues getestet und beschrieben was geht oder auch nicht, kam nach kürzester Zeit ein Update. Ist echt schön mit den beiden zusammen "arbeiten" zu dürfen.

Momentan bin ich leider zeitlich etwas eingeschränkt was zu testen, da wir vor einer Woche den zweiten Zuwachs bekommen haben.

Trotzdem werd ich versuchen so schnell wie möglich an der Rolle zu drehen wenns was neues gibt. Also haut rein Jungs...

Bearbeitet von wildstyler
  • Like 4
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 11 Stunden schrieb chili023:

Danke für die Blumen. Grua hatte die gleiche Idee. Das sollten wir auf jedenfall machen. Kann gerne heute Abend eine exe Compiliren und mit ins zip intigrieren.

 

Muss ich dabei irgend etwas beachten?

 

Es gibt einige Einstellungen wenn man kompiliert. Weiß ich leider auch nicht alle Auswendig. Man kann einige Sachen weglassen damit das Ganze übersichtlicher wird. etc.  Was wichtig ist, ist die NeuSkalierung auf den jeweiligen Bildschirm. Das muss Du einstellen. Sonst passen die Verhältnisse nicht, da man unterschiedliche Monitordiagonale hat.

Was ich aber weiß geht das Kompilieren nur mit der Professional Version und mit der Home Version nicht. Ich kann es auch nur in der Firma kompilieren. Bin aber erst am Montag dort.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hammer Jungs....:thumbsup:

 

Versteh zwar kein Wort:muah:, aber falls mein Prüfstand irgendwann in die Tat umgesetzt wird, komme ich auf euch zurück....Wahnsinn:aaalder:

 

Gruß

Bearbeitet von GrOoVe
  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab in die V0.182.zip jetzt mal EXE-Datein hinzugefügt.

 

Ich weiss es nicht, glaube aber nicht, dass beim Erstellen der EXE die LabView Run-Time Engine bereits automatisch hinzugefügt wird. Einstellung dafür habe ich im Application Builder jedenfalls keine gefunden. Vermutlich muss man sich die LabView Run-Time Engine zusätzlich noch auf http://www.ni.com downloaden und installieren, damit die EXE lauffähig sind.

 

Erstellt habe ich das ganze mit LabView 2014 SP1, ich denke also dass jede LabView Run-Time Engine ab 2014 SP1 oder höher funktionieren sollte. Vielleicht kann das ja mal wer testen.

 

Was sonst noch benötigt wird (Arduino, Hardware, ...) siehe Post Nr. 1 von chili023

 

 

Bearbeitet von grua
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 18 Stunden schrieb grua:

EXE nochmal mit geänderten Einstellungen neu erstellt:

 

 

 

WildGruChil_V0.182.zip

 

Ich habe mir heute ein wenig die LV Software angeschaut. Was mir auf die garche

bei der Seriellen Schnittstelle fehlt ist:

  1. Verbindung aufbauen  (vorhanden)
  2. Schreiben hier nicht nötig
  3. Lesen (vorhanden)
  4. Schließen der Verbindung (habe ich nicht gefunden) Ist hier eine Schließung der Verbindung nicht nötig?

Jede serielle Schnittstelle sollte ordnungsgemäß beendet werden. Außerhalb der letzten While Schleife. Aber wie gesagt ich bin nur LV Anfänger.

Vereinfachte Darstellung.

SerielleSchnittstelle.jpg

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Normalerweise wird die Schnittstelle reserviert.

Ich weiß noch, dass ich da mal Probleme hatte also ich abwechselnd aus meinem LV-Programm und der mitgelieferten Software auf einen Servomotor zugreifen musste. Das lief aber auch wirklich Seriell und nicht emuliert über USB.

Ich kann morgen mal im Büro gucken wie man das sauber schließt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen.

Habe die neue Version von Grua samt Dokumentation und DEBUG (MEGA) sketch (UNO debug sketch is auch noch vorhanden, falls Interesse da ist) in den Eröffnungsbeitrag geladen.

 

Konnte jemand schon die EXE ausprobieren?

 

Schnitstelle wird links reserviert und geöffnet und ganz rechts auch wieder geschlossen.

 

Es kommt sporadisch noch zu Überläufen beim ersten Start. Das liegt daran, dass die erste Nachricht nicht alle benötigten Daten enthält (z.b nur Rollendrehzahl). Dadurch werden die Daten nicht weitergegeben und der Puffer läuft voll.

Jeder Versuch hier eine plausibilisierung zu intigrieren ging leider schief.

Da wäre Hilfe von nöten.

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zur Hardware. Ich habe gerade in Eagle angefangen eine Shield für den MEGA zu entwerfen. Dort soll dann sowohl die Minimalkartschaltung zur Rechtecksignal Erzeugung als auch alle Optokoppler und I2C Verbindungen drauf (BME280).

Sensorstromversorgung soll auch integriert werden.

 

Es wäre gut wenn mögliche Interessenten ihre benötigten Spannungen posten würden.

 

Geplant sind bis jetzt:

5V

9V

12V

 

Da ich in Eagle noch nicht wirklich fit bin wird das aber noch etwas dauern. Hilfe ist willkommen ;).

 

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Guten Morgen.
Habe die neue Version von Grua samt Dokumentation und DEBUG (MEGA) sketch (UNO debug sketch is auch noch vorhanden, falls Interesse da ist) in den Eröffnungsbeitrag geladen.
 
Konnte jemand schon die EXE ausprobieren?
 
Schnitstelle wird links reserviert und geöffnet und ganz rechts auch wieder geschlossen.
 
Es kommt sporadisch noch zu Überläufen beim ersten Start. Das liegt daran, dass die erste Nachricht nicht alle benötigten Daten enthält (z.b nur Rollendrehzahl). Dadurch werden die Daten nicht weitergegeben und der Puffer läuft voll.
Jeder Versuch hier eine plausibilisierung zu intigrieren ging leider schief.
Da wäre Hilfe von nöten.
 
 



Hätte gestern die Exe Datei geladen, dabei hatte er gleich gemeckert, dass Ich kein Run Time habe.

2016er runter geladen, entpackt, nochmal probiert wieder das selbe.

Dann versucht die 2014er zu installieren ging nicht. Keine Verbindung zum Downloaden. Paar mal wiederholen gedrückt, aber ging nicht. Dann habe Ich den Rechner ausgeschalten.


Gesendet von iPhone mit Tapatalk
Link zu diesem Kommentar
Auf anderen Seiten teilen

ich würde gerne alles benötigte besorgen

 

wir haben

einen Prüfstand mit Rollensensor und Minikartschaltung

Zündsignal wird über Klemme vom Zündkabel abgenommen

 

kann mir jemand sagen welche arduino mega ich genau brauche

und wie genau der weitere Aufbau ist?

Dann steigen wir da mit ein in die Testphase und würden

gerne fleißig berichten

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.



×
×
  • Neu erstellen...

Wichtige Information