Hi,
ich würde gerne Daten von meinem Arduino z.B. UNO an den PC schicken.
Nach dem einstecken des USB Kabels sollen Daten z.B. als Textdatei in
einem Pfad unter Windows abgelegt werden ( ohne zusätzliches Programm).
Der USB-Controller auf dem Arduino ist evtl. nur mit Rx und Tx
verbunden.
Er erscheint auf dem PC z.B. als UART Bridge CP210x von Silicon Labs.
In einem anderen Projekt habe ich bereits den USB-Controller
überschrieben, damit Midi Daten gesendet werden an den PC. Mit einem
Programm konnte man die ankommenden Daten sehen. Das war etwa so wie
standardmäßig wenn man mit der Arduino IDE die Seriellen Daten vom
Arduino abhört.
Ist es denn jetzt möglich den Arduino oder seinen Controller so
umzuprogrammieren, dass er beim einstecken ein Programm ausführt, dass
auf einen eingegeben Pfad Dateien auf dem PC speicher kann ?
Das wäre ja ein großes sicherheitsrisiko für Windwos, wenn so etwas
gehen würde.
Aber wenn der Nutzer dem Gerät das erlaubt könnte das ja gehen.
Im Endeffekt soll man mit Plug & Play (USB) den Controller anschließen
können , auf erlauben klicken und der Datentransfer soll beginnen.
Nachtrag: muss gar nicht umbedingt USB sein vll gibt es ja etwas anderes
Vielen Dank
Frege schrieb:> Nach dem einstecken des USB Kabels sollen Daten z.B. als Textdatei in> einem Pfad unter Windows abgelegt werden ( ohne zusätzliches Programm).
Das ist unmöglich.
ich hab da mal ein Demo für einen "Bad USB"-Stick gesehen. Wenn man den
Stick ansteckt öffnet er das Notepad auf dem Rechner und schreibt einen
Text ins Fenster. Grundsätzlich gehts also weil der Stick als
HID-Tastatur arbeitet.
Mit dem CP210x geht das nicht, aber du könntest per VUSB eine Tastatur
emulieren, darüber WindowsTaste+r, dann notepad d:\blubb
Txt starten, per Tastendruck Emulation die Daten tippen und dann
abspeichern.
Ohne Programm auf dem PC geht das nicht.
Du könntest evtl. einen Massenspeicher emulieren, trotzdem müsste das
Laufwerk erst geöffnet und eine Datei kopiert werden.
Eine Tastatur könnte (wenn sie das Zielsystem kennt) zumindest kleine
Datenmengen eintippen, z.B. als WinR-echo "Testtext">c:\Testfile.txt.
Das wär eindirekt eine Sicherheitslücke, aber auffällig und mühsam.
Autostarts auf Wechseldatenträgern sind m.W. schon seit Dekaden nicht
mehr aktiv, sonst wäre das noch ein Weg.
Allen gemeinsam ist aber, das der COM-Port-Chip auf dem Uno/Nano das
nicht kann, mehr wie einen seriellen Port gibt's da nicht.
Wenn, dann ginge das nur mit einem Chip, der sich selber um den USB-Port
kümmert, wie ein Arduino Micro z.B., wobei der oft auf den Unos als
USB-Adapter sitzt.
Frank L. schrieb:> ich hab da mal ein Demo für einen "Bad USB"-Stick gesehen. Wenn man den> Stick ansteckt öffnet er das Notepad auf dem Rechner und schreibt einen> Text ins Fenster. Grundsätzlich gehts also weil der Stick als> HID-Tastatur arbeitet.
Ja. Mit dem Problem, dass dazu die HID-USB-Klasse verwendet wird.
Der (externe) USB-Controller des Arduino unterstützt aber nur die
CDC-Klasse, also UART auf USB umgesetzt.
Ein Leonardo (ATmega32U...) könnte als HID programmiert werden. Könnte
dann aber immer noch nicht auf ein Verzeichnis auf dem Windows-Rechner
zugreifen.
STK500-Besitzer schrieb:> Der (externe) USB-Controller des Arduino unterstützt aber nur die> CDC-Klasse, also UART auf USB umgesetzt.
Der USB-Controller beim Arduino Uno ist ein ATMega16U2, also dem könnte
man schon beibringen, als HID zu arbeiten.
STK500-Besitzer schrieb:> Ein Leonardo (ATmega32U...) könnte als HID programmiert werden. Könnte> dann aber immer noch nicht auf ein Verzeichnis auf dem Windows-Rechner> zugreifen.
geht das nicht?
Windowstaste+R öffnet sich "Ausführen". In dieses Fenster geben Sie
"cmd.exe" + <ENTER> + "copy con: c:\datei.txt" + <ENTER> + "hallo^z" +
<ENTER>
gibt zumindest hier:
hallo in "c:\datei.txt"
welcher Tastencode für windowsTASTE + R gesendet werden muss müsste
rauszubekommen sein
Sebastian R. schrieb:> Der USB-Controller beim Arduino Uno ist ein ATMega16U2, also dem könnte> man schon beibringen, als HID zu arbeiten.
Danke, mit dem UNO habe ich mich noch nicht auseinandergesetzt.
Joachim B. schrieb:> STK500-Besitzer schrieb:>> Ein Leonardo (ATmega32U...) könnte als HID programmiert werden. Könnte>> dann aber immer noch nicht auf ein Verzeichnis auf dem Windows-Rechner>> zugreifen.>> geht das nicht?>> Windowstaste+R öffnet sich "Ausführen". In dieses Fenster geben Sie> "cmd.exe" + <ENTER> + "copy con: c:\datei.txt" + <ENTER> + "hallo^z" +> <ENTER>>> gibt zumindest hier:>> hallo in "c:\datei.txt">> welcher Tastencode für windowsTASTE + R gesendet werden muss müsste> rauszubekommen sein
Vermutlich schon.
Ein Fenster-Wechsel während der "Eingabe" könnte zu Problemen führen.
grad mit nem Bad-USB-Stick mal getestet. Man kann damit als HID-Tastatur
das Notepad öffnen, einen Text reinschreiben, das Elaborat abspeichern
und das Notepad wieder schliessen. Die Datei ist dann auf dem Rechner
als Textdatei gespeichert. Der Stick meldet sich beim PC als Leonardo an
aber es sollte auch mit einem Digispark-Board funktionieren. Das kann
auch HID aber ich hab grad Keins zum testen hier.
OK,
angenommen er simuliert eine Tastatur als HID und das mag ja auch
funktionieren, nur blöd wenn er nebenbei am PC arbeiten möchte...
weil, was würde nämlich passieren, wenn das Programm den Fokus verliert
bzw. er Word oder Browser öffnet: Dann würde sein Arduino alles in das
Fenster schreiben.
STK500-Besitzer schrieb:> Ein Fenster-Wechsel während der "Eingabe" könnte zu Problemen führen.
klar Mausspielereien sollten dabei nicht stattfinden, evtl. geht noch
<ALT> <ENTER> für fullscreen, da kann keine Maus mehr fensterln denke
ich
Bei allen Plug&Play Geschichten läuft entweder ein aktives Programm oder
ein Dienst im Hintergrund.
Du könntest ja ein Dienst schreiben der bei Geräteerkennung ein
Empfangsprogramm startet, welches dann Daten entgegen nimmt und
verarbeitet.
Oder du lässt den Dienst weg und lässt dein Programm im Hintergrund
arbeiten.
Aber von irgendwo muss das Betriebssystem halt wissen was es bei
Aktion-X tun soll.
Frege schrieb:> Hi,> ich würde gerne Daten von meinem Arduino z.B. UNO an den PC schicken.
Wie schon gesagt brauchst du dazu einen Arduino mit USB HID.
E.g. Digispark
https://www.heise.de/select/ix/2017/7/1499358388386903
oder Leonardo, Arduino Micro Pro
Uno, Nano usw gehen nicht.
leo
Ich kann nur dringend davon abraten, den Rechner von außen fernsteuern
zu wollen.
Das funktioniert nur unter sehr beschränkten Bedingungen (z.B. nicht,
wenn der Bildschirm mit Passwort gesperrt ist) und kollidiert mit
manuellen Bedienvorgängen, sowie mit Popup Fenstern, die unter Windows
gerne mal unerwartet erscheinen.
Und dann gibt es ja noch Leute mit anderen Windows Versionen oder
anderen Betriebssystemen.
Also wenn ich etwas an den Rechner stecke, was Tastatureingaben
simuliert, dann kommt das sofort in den Müll. Denn das wäre für mich
genau so inakzeptabel, wie ein Viren-versuchtes Programm.
Stefanus F. schrieb:> Ich kann nur dringend davon abraten, den Rechner von außen fernsteuern> zu wollen.> Also wenn ich etwas an den Rechner stecke, was Tastatureingaben> simuliert, dann kommt das sofort in den Müll. Denn das wäre für mich> genau so inakzeptabel
das bleibt dir doch unbenommen, aber den Wunsch vom TO hast du doch
gelesen?
Frege schrieb:> Hi,> ich würde gerne Daten von meinem Arduino an den PC schicken.> Nach dem einstecken des USB Kabels sollen Daten z.B. als Textdatei in> einem Pfad unter Windows abgelegt werden ( ohne zusätzliches Programm).
klar kann er an seinem PC, oh er schrieb ja nicht das der PC seiner ist,
was nun alle unter Generalverdacht?
Joachim B. schrieb:> aber den Wunsch vom TO hast du doch gelesen?
Den habe ich so verstanden: Er möchte Daten vom Mikrocontroller aus in
eine Datei ablegen. Von "Fernsteuern" war nicht die Rede.
Rufus Τ. F. schrieb:> Das ist unmöglich.
Sehe ich ebenso.
Stefanus F. schrieb:> Rufus Τ. F. schrieb:>> Das ist unmöglich.>> Sehe ich ebenso. Ohne zusätzliche Software auf dem PC geht es nicht> sinnvoll.
Zumindest nicht ohne irgendwelche fehlerträchtigen Verrenkungen.
Stefanus F. schrieb:> Von "Fernsteuern" war nicht die Rede.
an welcher Stelle soll das geschrieben worden sein?
Stefanus F. schrieb:> Denn das wäre für mich> genau so inakzeptabel, wie ein Viren-versuchtes Programm.
du hast es angedeutet?