Frage:
Aktivieren Sie den Windows-PC über ein USB-Ereignis von einem Raspberry Pi
seveves
2015-07-13 14:58:07 UTC
view on stackexchange narkive permalink

Ist es möglich, einen Windows-PC über ein USB-Ereignis, das von einem Raspberry Pi stammt, aus dem Standby- / Ruhezustand zu aktivieren?

Wenn sich mein Windows-PC im Standby-Modus befindet und ich meine Maus bewege, wird der PC aktiviert . Genau das möchte ich mit einer Anwendung tun, die auf meinem Raspberry Pi ausgeführt wird (wenn ich den Raspberry Pi an den USB-Anschluss meines PCs anschließe).

Ich werde meine Lösung bald hinzufügen. @ppumkin ... Ich habe basierend auf den aktuellen Antworten etwas Ähnliches ausgearbeitet. Danke euch allen! Natürlich werde ich eine Antwort akzeptieren
Fünf antworten:
Greenonline
2015-07-13 16:06:28 UTC
view on stackexchange narkive permalink

Sie haben möglicherweise drei Möglichkeiten:

  • USB zu USB (nicht möglich, da RPi nur im Host-Modus ausgeführt werden kann);
  • USB zu Arduino zu GPIO ( Siehe unten)
  • USB zu GPIO (siehe HINWEIS)

HINWEIS: Wenn Sie den GPIO an USB anschließen möchten, müssen Sie Verwenden Sie Optokoppler oder Spannungs-Leveller wie den Hex-Puffer 74HC4050, da USB mit 5 V und der GPIO mit 3 V betrieben wird. Ohne sie besteht also die Gefahr, dass Sie braten das RPi

Wenn Sie ein Arduino (Leonardo, Due oder Micro) als Schnittstelle verwenden, dann ja. Es gibt Maus- und Tastaturbibliotheken, mit denen der Arduino Schlüssel- und / oder Mausereignisse an das RPi senden kann.

Wenn Sie einen Arduino Pro Mini verwenden, der für den Betrieb mit 3,3 V ausgelegt ist, wird der Bedarf an Optokopplern oder Spannungshebeln reduziert. Auf instructables.com finden Sie einen Plan zum Verbinden eines Arduino Mini mit einem RPi, indem Sie einen Hoody herstellen. Ich habe dieses Gerät hergestellt und es funktioniert hervorragend.

Hoody - Arduino Micro to a Pi

Sobald Sie den Hoody gebaut haben, fügen Sie der USB-Schnittstelle und den Bibliotheken eine FTDI hinzu Sie sollten bereit sein.

FTDI to USB interface

Der Arduino Pro Mini ist an ein SparkFun FTDI Basic Breakout Board und USB angeschlossen (und wird von diesem betrieben) Mini-B-Kabel. Beachten Sie, dass bei früheren Pro Mini-Karten die Ausrichtung des 6-poligen Headers möglicherweise umgekehrt ist. Überprüfen Sie, ob die Wörter GRN und BLK auf dem Pro Mini und FTDI Basic Breakout übereinstimmen.

Wie ich bereits erwähnt habe, habe ich dies bereits erstellt - für weniger als 10 GBP, indem ich Materialien von eBay bezogen habe.

Achten Sie darauf, dass Sie einen 3,3 V Pro Mini und NICHT die 5 V erhalten, da sonst Spannungspegelverschiebung und Optokoppler erforderlich sind.

ADDENDUM: Ich bin nicht 100% sicher, dass die Tastatur- / Mausbibliotheken mit einem Pro Mini funktionieren (da 32u4-Geräte erforderlich sind). Es wäre jedoch einfach genug, eine Skizze zu schreiben, die die entsprechenden Signale an das FTDI sendet.

Wie David Freitag in den Kommentaren unten ausführt, ist das Pro Micro mit den Bibliotheken kompatibel und läuft auch mit 3,3 V und so weiter würde eine am besten geeignete Wahl treffen.

UPDATE: Ich habe gerade einen dieser 3.3V Pro Micro-Klone von dieser bekannten Auktionsseite gekauft, um herumzuspielen und zu emulieren Mausklicks.

Hm ich habe noch kein Arduino, aber ein Beaglebone Black. Aber dieser Weg sieht sehr vielversprechend aus.
Ihr Nachtrag ist korrekt. Die USB-Bibliotheken funktionieren für den Pro Mini nicht, da ein Atmega328 ohne USB-Peripheriegeräte verwendet wird. Die Karte, die Sie vorgeschlagen haben sollten, ist die Pro * Micro * 3.3V. https://www.sparkfun.com/products/12587
@DavidFreitag - Es gibt anscheinend einige Verwirrung in der Namenskonvention, die von den verschiedenen Herstellern verwendet wird. Ich bezog mich auf den [Pro Mini 3.3V] (https://www.arduino.cc/en/Main/ArduinoBoardProMini). Um fair zu sein, sie sind wahrscheinlich sehr viel, und der Hauptpunkt, den ich vermitteln wollte, war, dass die Verwendung eines 3,3-V-Arduino eine Leimlogik ohne Kleber erfordert. Ja, aber das Pro Micro wäre viel besser geeignet als Es ist kompatibel mit den Schlüssel- und Mausbibliotheken. Vielen Dank für den Hinweis. Ich werde den Kauf eines prüfen. :-)
@Greenonline Es gibt keine wirkliche Verwirrung, der gleiche Teil existiert wie ein Arduino-Gerät. Das einzige Problem ist, dass sie nur ein 5V-Gerät anbieten. Siehe hier: https://www.arduino.cc/en/Main/ArduinoBoardMicro
Piotr Kamoda
2015-07-13 15:09:12 UTC
view on stackexchange narkive permalink

Lesen Sie dies. Es scheint, dass Raspi möglicherweise kein Slave-Gerät ist (Arbeit als Maus - das Senden solcher Daten über USB ist nicht möglich). USB bietet jedoch auch andere Optionen. Einige PCs verfügen über die Option "Wake via LAN". Dies bedeutet, dass der PC über ein LAN-Signal geweckt werden kann, wie hier.

Natürlich können Sie versuchen, das USB-Kabel an einem Ende zu beschädigen und an GPIO anzuschließen. Dann können Sie simulieren, was Sie wollen, benötigen aber wahrscheinlich viel Wissen.
Vielen Dank für Ihre Antwort, aber WoL oder andere Techniken sind für meinen Anwendungsfall nicht zulässig. In jedem anderen Anwendungsfall wäre das auch meine erste Wahl :)
@Piotr - Wenn Sie den GPIO jedoch an USB anschließen möchten, sollten Sie Optokoppler oder Spannungshebel verwenden, da USB mit 5 V und der GPIO mit 3 V betrieben wird RPi
@Greenonline bedankt sich für die Klarstellung, aber das war nur ein allgemeiner Vorschlag, keine vollständige Lösung.
Mit einer vorhandenen Maus (versteckte Schnittstelle) würde es nicht funktionieren, das USB-Kabel zu beschädigen und es über GPIO mit Strom zu versorgen?
@PiotrKamoda - Keine Sorge ... Ihre Idee ist in der Tat gut. Siehe meine Antwort für eine erweiterte Lösung :-)
@Greenonline [USB-Signalisierungsspannungen] (https://en.wikipedia.org/wiki/USB#Signaling) liegen bei weitem nicht bei 5 V. Niedrig / volle Geschwindigkeit (üblich für HID) steigt auf 3,6 V (gegen Masse? .. . obwohl der Unterschied 7,2 V treffen könnte?), was ein Pi handhaben sollte. Ich habe auch das Gefühl, dass es einfach nicht funktioniert, weil die USB-Signalisierung unterschiedlich ist - bestenfalls hätten Sie verdammt viel Zeit damit, dies auf GPIO zu simulieren. Mit einem I2C-Peripheriegerät haben Sie vielleicht mehr Glück, aber ich bin mir nicht sicher, ob es eines gibt, das auch als USB-Peripheriegerät fungieren kann.
@Bob - Danke, dass Sie darauf hingewiesen haben. Ich hatte an der falschen Stelle gesucht, im [Power Section] (https://en.wikipedia.org/wiki/USB#Power) ...
Ghanima
2015-07-13 15:49:11 UTC
view on stackexchange narkive permalink

Eigentlich denke ich, dass dies möglich ist. Ich möchte nicht auf die Details eingehen, was auf der PC-Seite dieses Plans zu tun ist, sondern für den Pi:

Der USB-Anschluss des RPi ist technisch gesehen ein On-the-Go (OTG). Chip und sollte sowohl einen reduzierten Satz von Host- als auch Client-Funktionen unterstützen und könnte daher die Rolle eines USB-Slaves wie eines HID spielen. Die B / B + -Typen des RPi unterstützen jedoch nicht den Gerätemodus, der sich auf den mitgelieferten USB-Hub bezieht, und die Tatsache, dass das Ethernet über USB getunnelt wird ( siehe).

Aber ... die Human Interface Devices (HID) wie Mäuse benötigen nur USB 1.1 Low Speed ​​ mit einer Datenrate von 1,5 MBit / s. Es gibt also viele Lösungen, die softwarebasierte USB-Stacks verwenden, um ein USB-Gerät zu emulieren. Diese Beispiele verwenden normalerweise Mikrocontroller, die viel weniger "leistungsfähig" sind als der RaspberryPi (aber natürlich haben sie auch einen deutlich geringeren Overhead). Beispiele hierfür sind der Igor Plug (ein IR-Fernbedienungsempfänger, der auf einem Atmel-Mikrocontroller basiert) oder Mikrocontroller-basierte "gefälschte" Tastaturen oder "Key Logger". Es sollte wirklich möglich sein, dies mit einem Pi zu tun.

Wenn wir glauben, wie schnell ist GPIO + DMA? Multi-I2S-Eingang, dann sollten 1,5 MBit / s auf dem GPIO mit DMA möglich sein.

mephisto
2015-07-13 22:56:45 UTC
view on stackexchange narkive permalink

Windows und das BIOS vieler PCs unterstützen "Wake on LAN" -Ereignisse. Sehen Sie in Ihren BIOS-Menüoptionen nach, was sich dort befindet. Stellen Sie außerdem sicher, dass Ihr Router die Wake-on-LAN-Nachrichten nicht blockiert. Wie man einen von einem Himbeer-Pi B über Ethernet sendet, ist mir unbekannt, aber ich bin viel sicherer, dass es als irgendetwas USB könnte.

Der Grund dafür ist, dass USB ein "Computer" -Ende hat, normalerweise mit dem breiten Flat-Four-Anschluss für den Briefkasten und einem "perhipheralen" Ende für Kameras und andere Slave-Geräte. Das Schneiden von zwei USB-Kabeln zu einem Double-Master-Ended-Kabel wäre unangenehm und sollte von mindestens einem Ende nicht erkannt werden. Die 5-V-Micro-USB-Versorgung des Pi verwendet nur die + 5-V-DC- und GND-Drähte, wobei die beiden anderen nicht angeschlossen sind. Daher würde ich keine Zeit damit verschwenden, Daten durch den Pi zu übertragen.

In die andere Richtung ist, ein paar Dinge auf den Pi herunterzuladen, bis Sie eine LED auf der Pinnwand von den GPIO-Pins auf dem Pi schalten können. Sie benötigen ebenfalls einen Transister und richten diesen auf Ihrer Pinnwand ein, um eine 5-V- oder 6-V-Batterie und eine weitere LED zu schalten. Wenn Sie ein 5-V-Gerät über den 3,3-V-GPIO an der Pinnwand schalten können, löten Sie einige zusätzliche Kabel parallel zum Hauptschalter an der Vorderseite Ihres PCs. Meistens sind dies +5 und GND, außer während der Schalter gedrückt wird. Lassen Sie jetzt Ihren Pi 0,6 Sekunden lang einschalten, als hätte jemand gerade den Hauptschalter des Windows-Computers gedrückt. Ich bin mir noch nicht sicher, ob das tun wird, was Sie wollen. Wenn Sie dasselbe mit einem USB-Kabel tun müssen, dessen Master der PC ist, gibt es möglicherweise einen Weg.

cnnrznn
2015-07-14 04:50:52 UTC
view on stackexchange narkive permalink

Haben Sie schon einmal mit dem Ordner / dev unter Linux gearbeitet? Wenn nicht, gibt es auf dieser Seite eine Tabelle ( http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html), die jedes Verzeichnis im Stammverzeichnis (/) gut beschreibt. .

Der Ordner / dev enthält Linux-Dateien, die sich auf Ihre Geräte beziehen (z. B. Festplatten, Monitor, RAM usw.). Wenn Sie ein Gerät, in Ihrem Fall den USB-Anschluss, an den Computer anschließen, sollte es in diesem Ordner angezeigt werden.

Ich würde:

  1. ls im Ordner / dev vor und nach dem Verbinden des USB vom Pi mit dem Windows-Computer, um herauszufinden, welche Datei in / dev zum USB-Port gehört.

  2. Schreiben Sie dann ein einfaches Skript, um Daten in diese Datei zu schreiben. Beispiel:

    • echo "1234" >> {Dateiname}
  3. Rufen Sie diese Datei dann von einem anderen Programm oder wann immer Sie möchten auf Sie möchten den PC aufwecken.

    • Um dies zu testen, können Sie den Befehl manuell in das Terminal eingeben.
  4. ol>

    Überprüfen Sie, ob dies funktioniert. Meine Idee ist, dass die Aktivität im USB Ihren Windows-Computer zum Aufwecken auslöst. Ich bin neugierig, wenn ich die Gelegenheit dazu bekomme, werde ich dies mit meiner eigenen Pi / Windows-Maschine versuchen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...