Forum: Mikrocontroller und Digitale Elektronik Datenlogger mit USB fürs Auto


von Philipp (Gast)


Lesenswert?

Hallo zusammen
Ich möchte gleich eines vorweg nehmen ja die Suchfunktion hab ich schon 
gequält nur gefunden habe ich dabei nix...
Also zum thema :-)
ich möchte für den "semi-Professionellen" Motorsport einen Datenlogger 
bauen der nicht am Can-Bus hängt sondern vollständig autark mit eigenen 
Sensoren läuft.
die Messwerte sollen alle 10ms aufgezeichnet werden wobei es mir hier 
nicht um geschwindigkeitswerte oder die suche nachdem "optimalen" 
bremspunkt geht.
sondern um Performance werte vom Auto selber.
z.B.  wie hat sich die Öltemperatur verhalten ... war der Öldruck 
konstant ... was waren die Peak werte vom ladedruck ... wie hoch war die 
Bremsen Temperatur... USW...
der Logger muss kein LCD besitzen und ein Live-Monitoring  System ist 
auch nicht angedacht.
was den Programmiercode angeht bin ich relativ flexibel. am liebsten 
währe mir allerdings C oder Basic...
die auswerte Software wird auf XML aufbauen ... da ich hier schon etwas 
Ähnliches geschrieben habe...
das Problem für mich ist eher der Hardware Sektor die Auswahl an 
vorgefertigten Boards ist echt erschlagend  ... ich bin mit 
Microcontrollern nicht wirklich sehr vertraut muss ich gleich 
vorwegschicken...
es werden insgesamt ca. 17 Sensoren sein und ich hab noch kein Board 
gesehen was diese Menge an Sensoren packt … es handelt sich hierbei um 
Analoge Sensoren …
1x Wassertemp.
1x Öltemp.
1x Öldruck
1x Abgastemp.
2xAnsaugluft Temp.
4xBremsen Temp.
1x Lambda (Breitbandlambda)
1x Klopfsensor
1xLadedruck
4x Einspritzdüsen (Duty Cycle > Auslastung)
Die Daten werden nach jedem lauf ausgelesen und dann erst ausgewertet … 
also wie gesagt nix on the run…
Hat jemand eine Idee welche Hardware ich hier am besten verwenden könnte
Mir war eine Micro SPS im sinne da die am meisten Eingänge besitzt … 
nach dem ich relativ viele Sensoren auswerten möchte würde mir das 
entgegen kommen.
Was noch wichtig ist eine speicher Funktion auf SD oder ähnliches muss 
nicht sein währe aber toll weil da am meisten Speicher Kapazität 
vorhanden ist. (bin nicht so der EEPROM speicher Fan)

Währe schön wenn mir jemand Empfehlungen oder Tipps geben kann welche 
Hardware da am sinnvollsten währe



gruß
philipp

von Gast (Gast)


Lesenswert?

Ich spiele auch mit dem Gedanken für den gleichen Einsatzzweck nen 
Logger zu bauen. Allerdings genau für die Daten, die du nicht messen 
willst, sprich die optimale Linie und die optimalen Bremspunkte :-)

Nach langem überlegen bin ich mir noch nicht sicher ob ich jetzt 
tatsächlich Bock drauf hab so ein Ding zu bauen. Du hast da nen ganzen 
Berg an Sensoren. Viele analog, manche digital, manche ganz was anderes, 
welche ganz vorne im Auto, welche ganz hinten. Wenn man das 
zusammenfasst gibts ein dickes Bündel Kabel.
Da stellt sich dann erst mal die Frage: Will ich jetzt die Werte vom 
Drosseklappenpoti von 0-3V mit 12 Bit abtasten und dann quer durchs Auto 
übertragen? Oder bau ich vor Ort nen Verstärker hin? Oder doch lieber 
mit nem Bus? Was für ein Signal liefert überhaupt die Einspritzdüse und 
wie messe ich das? ...

Lange Rede kurzer Sinn: Ich glaube am wichtigsten ist sich erst mal über 
das Umfeld klar zu werden, was die Sensoren liefern, wie ich das messe 
und wie ich das zum Logger bringe. Dann kann man anfangen, die ganzen 
Sachen versuchsweise zu messen. Wenn das aufnehmen der Werte 
funktioniert kann man anfangen sich zu überlegen, wie denn der 
eigentliche Logger beschaffen sein soll.

Ich bin bis jetzt noch nicht über den ersten Punkt hinausgekommen. Je 
länger ich mir das überlege, umso mehr fürchte ich dass das ganze System 
auf ein CAN Netzwerk mit dezentralen Sensoren rausläuft. Jedenfalls wenn 
man eine vernünftige und flexible Lösung haben will. An dem Punkt bin 
ich mir nicht ganz sicher, ob ich mir so eine komplexe Entwicklung als 
Feierabendbetätigung ans Bein binden will...

So, viel geschrieben aber deine Frage nicht beantwortet. Ohne die oben 
beschriebenen grundlegenden Entscheidungen und Erkenntnisse denke ich 
dass es an dieser Stelle noch nicht möglich ist, eine sinnvolle 
Empfehlung abzugeben. Ich habe mir zwar ein paar Gedanken gemacht was 
für ein System ich benutzen will, die sind aber mittlerweile alle über 
den Haufen geworfen. Mittlerweile überlege ich, einen günstigen CAN 
Logger zu kaufen und die ganze Sensorik drumrum selbst zu entwickeln. 
Womit dann nur noch das Problem "günstiger CAN Logger" zu lösen wäre...

von peterguy (Gast)


Lesenswert?

Interessantes Projekt.

Ich entwickle in meiner Freizeit an etwas ähnlichem.
Wie Gast (Gast) bereits geschrieben hat, ist das allerdings sehr 
komplex.
Es steht und fällt alles mit einem geeigneten Konzept.
Als Schwierigkeit kommt das ebenfalls von ihm erwähnte Problem der 
Datenübertragung hinzu.
Alle proffesionellen Systeme, von denen ich bisher gelesen habe, setzen 
dabei auf den CAN Bus um die Daten zum Logger zu schaufeln.

Mein Konzept geht noch ein wenig weiter: Ich entwerfe für jede mögliche 
Aufgabe (z.B. GPS, ODB2, IMU, CAN, ...) ersteinmal ein USB-Gerät. Dieses 
wird dann am PC entwickelt und getestet. Wenns fertig ist ( was sehr, 
sehr lange dauern kann) kann ich das Gerät dann entweder auf meinem 
Arbeitstisch, mit nem Netbook von Unterwegs oder mit nem robusten 
embedded System fest im Auto verbaut betreiben.

Um dir ein Gefühl für die Komlexität zu geben:
Ich habe vor nem dreiviertel Jahr mit einem CAN Gerät und einem 
differentiellem GPS System angefangen und habe bisher gerade mal die 
erste Version der Platinen sowie ganz schlimm gefrickelte Test Software 
fertig.

Konkret für dein Projekt würde ich dir empfehlen ein verteiltes System 
aufzubauen. Sprich z.B. ein ARM7 oder ARM9 als zentrale Logging Einheit 
und verschiedene über CAN oder RS232 oder RS458 angeschlossene µCs, die 
die eingentlichen Messaufgaben erledigen.
Als Speichermedium würde ich dir SD-Karte oder USB Stick empfehlen. 
Falls du kein Betriebssystem auf der Loggingeinheit verwenden möchtest 
könntest du z.B. den Vinculum USB Host chip nehmen um USB-Sticks 
anzusprechen.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ich würde auch die einzelnen Sensoren je nah am Sensor mit einem kleinen 
µC erfassen. Der Presi von etwa 1€/Controller wird gegenüber den 
Sensoren wohl nicht soooo ins Gewicht fallen und man kann dann danach 
auf was Serielles gehen. Spart Leitungen und falls ein Sensor ausfällt 
legt der nicht das ganze System lahm. Wenn ein Sensor dann doch mal 
Ausgetauscht werden muß braucht auch nicht das komplete System 
umgestellt oder angepaßt werden.

von Philipp (Gast)


Lesenswert?

Danke erstmal für die vielen antworten :-)
das ist echt ein super Forum muss man gleich mal dazu sagen...

Über die Komplexität bin ich mir wohl bewusst aber daran sollte es nicht 
scheitern.

wie anfangs schon gesagt möchte erstmal auf ein CAN Bus System 
verzichten ... nachträglich ist alles möglich.
Mich beschäftigt eigentlich nur die Frage WIE ich das ganze angehe
momentan bin ich erstmal mit der Sensorauswahl beschäftigt:
da steht immer noch die Frage im raum
Digital oder Analog
persönlich tendiere ich zu analog wobei digitale Sensoren auch ihre 
Vorteile haben und nicht so störanfällig sind
allerdings muss ich mir auch Gedanken machen wo ich die Sachen her 
bekomme
momentan sieht’s so aus das ich entweder bei BOSCH oder VDO meine 
Sensoren bestelle liegt daran das dies die verbreitetsten Sensoren im 
automobil Bereich sind und auch die robustesten...

die zweite ungeklärte Frage ist
wie ich das Board auf baue
ob ich was vorgefertigtes nehmen kann (was zeit sparen würde)
oder ob ich selber rann muss also ne eigene Platine mache
kann ja für den anfang ne stink normale Lochplatte sein zum Testen 
sollte das eigentlich genügen...

die nächste Frage die im Raum steht welchen Controller nehm ich am 
besten
ich denke mit nem ATmega kann ich nix falsch machen gerade weil er sich 
einfach programmieren lässt und weil es schon Haufen weise Codes dafür 
gibt...
jedoch weis ich nicht wie ich das ganze mit der SD Karte und dem USB 
Anschluss realisieren kann ... (da währe mir was vorgefertigtes wieder 
recht > hält den Verschleiß an nerven geringer :-) )

was auch ne Möglichkeit währe ist das ich ein Board für die Messwert 
Erfassung mache und ein anderes dann für die Speicherung auf die SD 
karte verwende...

ich hoffe ihr könnt mir ein wenig weiter helfen. und mir ein paar Tipps 
geben


Gruß
philipp

von Gast (Gast)


Lesenswert?

@peterguy:
Das Konzept hört sich auch sehr interessant an. Da könnte man dann 
einfach ein kleines Linux-Board nehmen und nen USB Hub dranhängen. Hast 
du Erfahrungswerte, wie gut USB im Auto funktioniert? Hast du Interesse 
daran, die Arbeit eventuell aufzuteilen? Dein Ansatz wäre ja sehr gut 
dafür geeignet.
Für mich wäre am Anfang erst mal ein GPS und eine IMU interessant, 
zusammen mit einer kleinen Anzahl analoger Sensoren (Drosselklappe, evtl 
Bremsdruck und Drehzahl).
Wie hast du denn DGPS implementiert, machst du das mit nem 
Echtzeit-Datenlink für die Korrekturdaten oder im Postprocessing?

@Philipp

Das Problem der Sensoren wird sich so nicht stellen. Wenn du z.B. den 
Ladedruck oder die Öltemp messen willst, bleibt dir vermutlich nichts 
anderes übrig als die Sensoren zu nehmen die du kriegst. Für die Öltemp 
ist das einfach ein NTC. Wenn der nur für dein System da ist, kannst du 
einfach genügend Strom drüberwuchten und das Signal glätten, damit 
solltest du recht gute Werte kriegen. Schwieriger wird es wenn du schon 
vorhandene Signale hochohmig abgreifen willst, z.B. die Spannung am 
Drosselklappenpoti, das ja erst mal fürs Motorsteuergerät wichtig ist 
und somit auch nicht geändert werden sollte. Da wird dir vermutlich 
nicht viel anderes übrig bleiben als das vor Ort aufzubereiten und dann 
entweder niederohmig analog oder digital zu übertragen.
Daher mein Vorschlag: Erst schauen was du für Sensoren kriegst (Am 
kompliziertesten werden vermutlich die Einsprizdüsen und der Klopfsensor 
sein, nur mal so geraten), und schauen was du damit für Signale kriegst. 
Am einfachsten wird sein wenn dein Logger völlig autark vom Fahrzeug 
ist, d.h. alle Sensoren nur für den Logger da sind.
Wenn du das geklärt hast, kannst du dir über die Spezifikation des 
nötigen Controllers Gedanken machen.

Nun zu deiner eigentlichen Frage: Ich finde zum experimentieren die 
Arduino Boards sehr praktisch. Da ist ein Mega328 drauf, ein USB-Seriell 
Wandler, laufen direkt über die Stromversorgung des USB (oder von 
extern) und wem die Arduino-Programmiersprache und Software 
unsympathisch ist (mir zum Beispiel), der kann die einfach mit WINAVR 
und avrdude programmieren. Du könntest dir also erstmal ein kleines 
Arduino holen, oben drauf eine Lochraster stecken und anfangen zu 
experimentieren (ich benutze das: 
http://www.seeedstudio.com/depot/seeeduino-v328-fully-assembledatmega-328-p-439.html). 
PC dran, die empfangenen Daten seriell rausschicken und am PC 
visualisieren. Hält die Komplexität niedrig und erprobt alles was du 
wissen musst um ein komplettes System zu implementieren. Wenn das 
funktioniert, kannst du immer noch auf ein grösseres Board umsteigen.

Nur eines muss dir klar sein: Eine Lösung mit einem zentralen Controller 
und haufenweise quer durchs Auto verlegten Leitungen wird 
störungsanfällig sein und unflexibel falls das auch mal in ein anderes 
Auto soll. Also eher als Hobbybastelei anzusehen als semi-professionell.

von Philipp (Gast)


Lesenswert?

Danke für die infos :-)
Die sensoren  die ich hernehmen möchte werden bosch sensoren sein . die 
datenblätter habe ich mittlerweile bei mir auf dem schreibtisch liegen.
somit ist der punkt schonmal geklärt .
Diese hier werden für die temperatur messungen hergenommen: 
http://www.bosch-motorsport.de/pdf/sensors/temperature/NTC_M12-H.pdf
Und für den druck werde ich wohl auf einen aus dieser sparte 
zurückgreifen 
:http://www.bosch-motorsport.de/pdf/sensors/fluid_pressure/PSS-10.pdf

Wie ich am anfang schon erwähnt hatte wird es definitiv ein autarkes 
system werden mit eigenen sensoren OHNE verbindung zur ECU.
meine anfängliche idee alles über eine controller laufen zu lassen hab 
ich schon verworfen.
Der ideeen ansatz mit dem anduino board gefällt mir schon ziehmlich gut 
danke an dieser stelle.
Meine momentane idee ist das ganze auf zu teilen
1.möglichkeit währe jeden kanal mit einem eigenem controller. (mega8 
oder 16) abzutasten und die daten ins eeprom zu schieben dieser wird 
dann von einem mega256 ausgelesen und auf ne sd karte geschrieben der 
mega256 greift quasi nur den speicher ab und stellt die verbindung zum 
usb bzw zur sd karte her.

Die 2. möglichkeit währe ähnlich der ersten allerdings würde ich nicht 
jeden kanal mit einen eigenen controller ausrüsten sonden alle über 
einen laufen lassen

Die frage ist was macht mehr sinn ?
Das system sollte schon flexibel sein also portabel.

Gruss philipp

von Gast (Gast)


Lesenswert?

Hi,

die Frage bei sowas ist immer welche Art von Sensoren willst Du denn 
alles messen. Wenn es nur Temperatur, Drücke, Dk-Position oder 
Einspritzlänge sind, ist das nicht so wild dann würde ich alles über 
eien Controller erledigen. Falls Du aber z.B. Klopfsensoren, 
Breitbandlambda oder Zündzeitpunkt messen willst wird es schon 
aufwendiger. Lässt sich aber alles noch mit einem Controller bewegen, da 
die Datenraten nicht sehr hoch sein müssen, allerdings braucht es dann 
aufwendigere Signalaufbereitung. Nicht zu unterschätzen ist auch die 
parallele Drehzahlaufnahme, wenn sie direkt von der Kurbelwelle mit dem 
selben Sensor wie für das Hauptsteuergerät erfolgen soll. Ist 
elektronisch sehr anspruchsvoll. Man muss sicher unterscheiden, ob es 
sich um motorspezifische Sensoren und Daten handelt (würde ich immer mit 
einem Controller auswerten) oder um fahrzeugspezifische Sachen, die u.U. 
dezentral besser aufgehoben sind.

Lange Rede kurzer Sinn, ist z.B. alles probelmlos mit nur einem 
Controller z.B. mega2560 gut zu erledigen. Die dezentrale Lösung treibt 
dann doch den Preis ganz schön in die Höhe und wirft Probleme auf, falls 
Du motorspezifische Signale Kurbelwinkelsynchron auswerten willst, da 
dann immer noch die Kommunikationslatenz dazwischen liegt.

Üblicherweise werten solche Systeme alles fahrzeugspezifische zentral 
mit einem Controller aus und die motorspezifischen Daten werden über ein 
Bussystem direkt aus dem Motorsteuergerät geholt.

Gruss
tmo

von peterguy (Gast)


Lesenswert?

@ Gast (gast):
Die DGPS Berechnungen geschehen im Postprocessing. Bzw. sollen im 
Postprocessing geschehen, da ich erst seit ein paar Tagen alle 
benötigten Komponenten zusammenhabe. Softwareseitig kommt die RTKLIB zum 
Einsatz, Hardwareseitig die neuesten Skytraq Module (S1315F) mit 20Hz 
Rohdatenausgabe.

Ich habe eigentlich nicht vor, USB Leitungen im Auto zu verlegen. Würde 
für verteilte Sensoren eher auf CAN setzten um sicher zu gehen, daß 
weder Störausstrahlung noch Störempfindlichkeit gefährlich werden. Für 
diese Aufgabe würde sich z.B. mein USB-CAN Adapter eignen.

Klar, mein Projekt kann man sehr gut aufteilen. Ich wäre zum Beispiel 
sehr interessiert an einer IMU oder einem ODB2-Reader!
Es sind lediglich ein paar wenige Randbedingungen zu erfüllen, um 
Kompatibilität zu gewährleisten.
Hier mal eine kleine Übersicht:
- Platinenmaße 100 x 48mm
- USB Typ B Stecker an definierter Position
- ERNI SMC ML 12W Stecker an definierter Position
- Montagelöcher an best. Positionen
- FTDI 232RL (Für Seriell <-> USB) oder 245RL (Für Parallel <-> USB) 
chips als USB Interface
- Falls der FT245RL zum Einsatz kommt sollte das bereits implementierte 
Protokoll unterstützt werden.

Ich layoute im Moment an einer Prototyping Platine, die bereits alle 
notwendigen Steckverbinder + FT232RL + 3.3V Spannungsregler enthält und 
eine große 2,54mm Lochraster Prototyping Fläche bietet. Die Boards waren 
ursprünglich für eigene Zwecke bestimmt, würden sich aber natürlich 
prima anbieten um auch Anderen die Mitarbeit zu ermöglichen.

@Phillip:
Der beste Weg zum Ziel ist vermutlich einfach anzufangen. Die bereits 
genannten Arduino / Seeeduino Boards sind hierfür hervorragend geeignet.
Für den Anfang würde ich ein paar Temperaturen (Öl, Wasser) und Drücke 
(Öl, Ladedruck falls vorhanden) einlesen und der Einfachheit halber in 
einem EEPROM ablegen. Du muss dich ja nicht auf eine 
entweder-alles-zentral-oder-alles-verteilt-Lösung versteifen. Wenn du 
mit der zentralen Lösung nicht weiterkommst kannst du immer noch über 
die RS232 Schnittstelle oder über SPI / I2C ausgelagerte Messmodule 
anschliessen.

von Gast (Gast)


Lesenswert?

Vorweg: Gast (Gast) != Gast (Gast) tmo :-)

@Philipp:

Wenn du eine verteilte Lösung bauen willst (also unterschiedliche 
Controller für unterschiedliche Signale), dann führt meiner Meinung nach 
nichts dran vorbei, das ganze vernünftig zu machen. Sprich CAN oder 
mindestens RS485, sonst fürchte ich dass du dir zuviele undefinierbare 
Probleme durch die Automobil-Umgebung einfängst.
Wenn du eine möglichst einfach Lösung suchst, denke ich dass der einzige 
Weg ist, das in einem einzelnen Controller zu machen. Ob jetzt ein 8bit 
AVR Mega schnell genug ist, 20*16bit Werte zu sammeln und auf SD Card zu 
schreiben weiss ich nicht, aber würde mal vermuten dass es gut 
funktionieren sollte.

Ich würde mir an deiner Stelle ein Arduino mit dem Mega328 besorgen und 
erst mal mit einer reduzierten Instrumentierung (z.B. nur Motor: Wasser, 
Öl, Druck, Lambda) experimentieren. Am einfachsten die Daten über den 
UART rausschicken und mit dem PC entgegennehmen, dann brauchst du dich 
erst mal nicht ums Speichern kümmern. Wenn du siehst dass das 
funktioniert, kannst du dir ein Arduino Mega (Mega1280) holen, die 
zusätzlichen Sensoren implementieren und dich um die Speicherung auf 
SD-Karte kümmern.

@peterguy:

Das ganze hört sich sehr interessant an. Ich muss allerdings gleich 
vorweg sagen, dass ich noch ca. 2 Monate brauche bis ich anfangen kann, 
da ich vorher noch ein anderes Projekt fertig machen muss. Bei mir steht 
allerdings die IMU auf der Prioritätenliste ganz oben, gefolgt von DGPS. 
OBD2 ist für mich erst mal nicht interessant, da mein Fahrzeug noch aus 
der prähistorischen Zeit stammt :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.