SD über USB auslesen

Hallo zusammen,
hat jemand schonmal eine Lösung gesehen, wie man über das USB-Kabel durch den Arduino hindurch Daten von einer SD-Karte (z.B. von einem shield) in den PC bekommt?
Ich habe vor längerer Zeit mal gesucht, aber nichts gefunden. Eigentlich muss es da doch was geben, denn es wäre schon sehr praktisch, wenn man einen robusten Datenlogger nur über ein USB und ein Netzkabel bedienen könnte, anstatt ihn zum Bergen der Daten immerzu aufmachen zu müssen (USB-Buchsen gibt es schließlich in IP85 und ähnlich dicht, was man von Kartenschlitzen nicht sagen kann).
Vielen Dank für Hinweise und Kommentare, schönes Wochenende.
Ciao
Sebastian

PS: Was ganz anderes und nur am Rande: hat schon mal jemand einen MS5541 (Arduino Forum) wasserdicht bekommen?

Spontan würde mir da einfallen die SD karte über SPI auszulsen (über ein Shield oder wie auch immer) dann über den Arduino mit Serial auf den Serielenport an den rechner, welche die Daten mit einem (wahrscheinlich selbst geschrieben Programm) annimmt und verarbeitet.

Noch mal die Zusammenfassung:

SPI Seriel
SD Shield ------> Arduino -------> Rechner

Gruß cr0n0s1

Auch ich sehe nur diesen Weg. Man kann aber die Daten die bei der seriellen Schnittstelle hereinkommen über DOS-Befehle in ein File schreiben lassen und so nicht ein Programm schreiben zu müssen.

Grüße Uwe

uwefed:
Auch ich sehe nur diesen Weg. Man kann aber die Daten die bei der seriellen Schnittstelle hereinkommen über DOS-Befehle in ein File schreiben lassen und so nicht ein Programm schreiben zu müssen.

Grüße Uwe

Natürlich auch möglich :wink:

Das ist wahrscheinlich der einzige sinnvolle Weg. Dazu müsste natürlich noch eine Kommando Routine implementiert werden, die den Datentransfer regelt.

Zum Auslesen würde ich dir raten, da es sich um ein Logger Projekt handelt, den seriellen Transfer direkt in Excel-VBA abzuwickeln. Dann kansst du auch schön in eine Tabelle schreiben und umrechen (Punkt zu Komma) etc...

Vielen Dank schonmal, so was in der Art hatte ich schon befürchtet. Es ist wohl etwas naiv anzunehmen, dass es einen Sketch geben könnte, der aus einem Arduino mit SD einfach einen USB-Stick macht?!

Da bräuchtest du auf jeden Fall den Leonardo, der den USB-Stack verfügbar macht.

https://www.google.de/search?q=usb+massstorage+emulation+arduino

Mardetuino:
Da bräuchtest du auf jeden Fall den Leonardo, der den USB-Stack verfügbar macht.

usb massstorage emulation arduino - Google Search

wieso?

um aus der USB Schnittstelle des Arduino einen USB Stick zu machen, reicht kein Sketch (im ATMega328), sondern eine andere Firmware im 16U2.

Und das ist ( am einfachsten ) der Leonardo.

Wieso mußt Du aus dem Arduino eine USB-Stick machen. Genügt es nicht daß der Arduino die Daten seriell an den PC schickt? Das kann nämlich jeder Arduino ohne Zusatzhardware.
Grüße Uwe

Ich meine damit, dass ich das Gerät gerne einfach über USB anschließen würde und es dann als Datenspeicher im Windowsexplorer sehe, damit ich die Daten möglichst simpel kopieren kann.
Gibt's einen Link mit ein bißchen mehr Info zu dem Vorschlag mit der Firmware? Ich hab nichts gefunden. Danke!

Das unterstützt die Programmierung der USB-Schnittstetelle des Arduinos nicht. Auch ein Hostkontroller macht das nicht.
Grüße Uwe

Es wäre sinnvoller, ein kleines Windows-Tool zum Auslesen der Daten zu schreiben. :slight_smile:

Mit C# z.B. lässt sich eine solche Sache in wenigen Minuten erledigen..

Ich könnte im schlimmsten Falle auch ein solches Programm bereitstellen :wink:

Gruß,
Tobias

Da ich das gleiche auch irgendwann benötige, würde ich mich für den Windows-Part anbieten.

Wenn jemand den Arduino-Part übernimmt(Verzeichnis Befehle ähnlich wie DIR,CD etc.. vorstellbar) könnte ich den Windows-Part übernehmen. Momentan reicht es mir aber zeitlich nicht für beides, da andere Notwendigkeiten bestehen...

Angebot: VB.NET Programm, das dann über die serielle Schnittstelle die Daten empfängt und als Datei ablegt.

Billigen USB-Kartenleser zerlegen und an SD Halterung + USB Buchse löten; Schalter der bei Bedarf die Stromversorgung zwischen Arduino + Kartenleser wechselt.

Ob das wohl klappt? Ich würde nicht darauf wetten, dass die Chinesen bei ihren Cardreader ASICs korrekt arbeiten...
Müsste man mal nachmessen, ob die Hochohmig geschaltet werden/sind.
Ich hatte mal einen, der im abgeschalteten Zustand alle Leitungen (auch die Eingänge!) auf Masse gezogen hat.

Zudem der Weg über einen Stream flexibler ist. Es wäre dann auch über TCP, Bluetooth oder 433 umsetzbar...

Nabend,
ich hab das mit dem SD-KIartenleser mal probiert und mir ein kleines Testboard geätzt, siehe unten. Da ich nicht wusste, was der Cardreader (billig, Conrad) für ein Format benutzt, hab ich mal alle 8 Kontakte über SV1 rausgeführt.
Wenn ich eine Karte einschiebe, ohne den Arduino (Uno) an SV2 anzuschließen, dann findet der Rechner halt einen Cardreader.
Wenn ich nur den Arduino anschließe, dann kann ich diverse Späße mit der Karte machen.
Wenn ich aber den Arduino stromlos dranlasse und dann den USB-Stecker vom Cardreader reinstecke, dann findet er ihn gar nicht. Er findet ihn nur, wenn ich höchstens einen der 6 Pins angeschlossen lasse, egal welchen.
Hat jemand einen Tip? Ich werde mal den Bus komplett hochziehen, das hat bei Busproblemen in einem anderen Zusammenhang schon mal geholfen.
Leider kann ich nicht ausreichend programmieren, um das Problem auf eine der vorher genannten Arten zu lösen. Gibt’s da eigentlich einen Fortschritt?
Schönen Abend
Sebastian