Vorwort
Es ist erwähnenswert, dass der Umfang dieses Geräts nicht so groß ist. Für die Arbeit bedeutet dies Überwachung, Überwachung der Arbeitszeit, Schutz vor Informationslecks und wahrscheinlich ist das alles.Im Alltag kann dieses Ding das Leben leichter machen. Zum Beispiel drückten sie eine bestimmte Tastenkombination - Arduino erkannte sie und ... sendete ein Signal, um den Wasserkocher einzuschalten. Wenn nicht ein Wasserkocher, dann etwas anderes.Dennoch ist dies eine banale (möglicherweise sogar versteckte) Verfolgung für einen Mitarbeiter, die aus moralischer Sicht nicht gut ist. Die gesetzliche Bescheinigung gibt jedoch den Startschuss, wenn sie im Arbeitsvertrag vorgeschrieben ist, wenn diese Überwachung während der Arbeitszeit und am Arbeitsplatz stattfindet und wenn der Arbeitnehmer natürlich informiert und abgehakt wird.Nun, in Ihrem persönlichen Leben können Sie tun, was Sie wollen, solange es um Ihr Eigentum geht.Alles, wir sind gesetzlich geschützt, jetzt werde ich erzählen und zeigen, was wir brauchen und wie man es zusammensetzt, um einen einfachen Abfang von Tastenanschlägen von der Tastatur zu erhalten.Fangen wir an
Wir brauchen also ein Dutzend Drähte und zwei Platinen:1) Arduino Leonardo
2) USB Host Shield
Warum Arduino Leonardo? Da der ATmega32u4 relativ billig ist und im Gegensatz zu seinen Vorgängern eine integrierte Unterstützung für USB-Verbindungen bietet.Das USB-Protokoll definiert zwei Arten von Geräten: Host (Master, Server) und Peripheriegeräte (Slave, Client). USB Host Shield verwaltet und versorgt Peripheriegeräte mit Strom. Wenn Sie beispielsweise die Tastatur an einen PC anschließen, ist der PC der Host, der den Client steuert, und der Client ist in diesem Fall die Tastatur.Und es gibt einige unterstützte Peripheriegeräte. Die interessantesten sind:1) HID-Geräte: Tastatur, Maus, Joystick usw.2) Gamecontroller3) ADK- Android .
.
– . HID . HID 8 :
1) 1 – (L Ctrl, R Ctrl, L Shift, R Shift . .).
2) 2 – , .
3) 3-8 – 6 .
.
, , .

, , ,
.
Jetzt lohnt es sich zu erklären, was was ist.Arduino Leonardo hat eine kleine Funktion, aufgrund derer wir es nicht einfach oben anschließen können: Die SPI-Anschlüsse befinden sich am ICSP (diese 6 Anschlüsse befinden sich in der Mitte rechts) und müssen daher an die digitalen USB Host Shield-Anschlüsse angeschlossen werden.1) Gelbes Kabel: Pin 4 MOSI (verbunden mit Pin 11 auf dem USB-Host-Shield).2) Grauer Draht: Pin 1 MISO (verbunden mit 12 Pin am USB Host Shield).3) Grünes Kabel: Pin 3 SCK (verbunden mit Pin 13 am USB-Host-Shield).Wir versorgen die unteren fünf Drähte und ein Violett mit Strom:1) Zurücksetzen auf Zurücksetzen2) 3,3 V auf 3,3 V3) 5 V auf 5 V4) GND auf GND5) VIN auf VIN6) Zurücksetzen auf D7Jetzt müssen wir die Steuerstifte anschließen:1) D7 bis D72) D10 bis D10Dies ist ein notwendiges Minimum, damit es funktioniert.Es gibt also eine Schaltung, jetzt müssen wir sie irgendwie programmieren und dies geschieht mit der Arduino IDE. Es ist völlig kostenlos und gemeinfrei. Beispiele für Programme und die IDE selbst finden Sie auf der offiziellen Website.Um mit USB Host Shield arbeiten zu können, benötigen wir eine zusätzliche Bibliothek ( hier ).Der Code selbst ist so einfach wie möglich:#include <hidboot.h>
#include <SPI.h>
#include <SD.h>
class KeyboardOut
{
private:
KeyReport _keyReport;
void send_report();
public:
size_t press(uint8_t mod, uint8_t key);
size_t release(uint8_t mod, uint8_t key);
};
KeyboardOut keyboard_out;
size_t KeyboardOut::press(uint8_t mod, uint8_t key) {
uint8_t i;
_keyReport.modifiers |= mod;
if (_keyReport.keys[0] != key && _keyReport.keys[1] != key &&
_keyReport.keys[2] != key && _keyReport.keys[3] != key &&
_keyReport.keys[4] != key && _keyReport.keys[5] != key) {
for (i=0; i<6; i++) {
if (_keyReport.keys[i] == 0x00) {
_keyReport.keys[i] = key;
break;
}
}
if (i == 6) {
return 0;
}
}
send_report();
return 1;
}
size_t KeyboardOut::release(uint8_t mod, uint8_t key) {
uint8_t i;
_keyReport.modifiers &= mod;
for (i=0; i<6; i++) {
if (0 != key && _keyReport.keys[i] == key) {
_keyReport.keys[i] = 0x00;
}
}
send_report();
return 1;
}
void KeyboardOut::send_report()
{
HID_SendReport(2, &_keyReport, sizeof(KeyReport));
}
class KeyboardIn : public KeyboardReportParser
{
protected:
void OnKeyDown (uint8_t mod, uint8_t key);
void OnKeyUp (uint8_t mod, uint8_t key);
};
KeyboardIn keyboard_in;
void KeyboardIn::OnKeyDown(uint8_t mod, uint8_t key)
{
keyboard_out.press(mod, key);
uint8_t c = OemToAscii(mod, key);
PrintHex<uint8_t>(key, 0x80);
}
void KeyboardIn::OnKeyUp(uint8_t mod, uint8_t key)
{
keyboard_out.release(mod, key);
uint8_t c = OemToAscii(mod, key);
PrintHex<uint8_t>(key, 0x80);
}
USB UsbHost;
HIDBoot<HID_PROTOCOL_KEYBOARD> HidKeyboard(&UsbHost);
void setup()
{
UsbHost.Init();
delay( 200 );
HidKeyboard.SetReportParser(0, (HIDReportParser*)&keyboard_in);
}
void loop()
{
UsbHost.Task();
}
Es bleibt nur eine Verbindung über USB Arduino zu einem PC und die Tastatur zu USB Host Shield, laden Sie das Programm mit der IDE auf Arduino herunter und fertig! Key Catcher ist fertig!Ergebnisse:1) Arduino bietet viele Funktionen zu einem günstigen Preis und eine Vielzahl von Modulen und Sensoren.2) Mit diesem Gerät können Sie Ihre Tastatur in ein Bedienfeld verwandeln, z. B. einen Fernseher, einen Wasserkocher, eine Lampe. Sie müssen nur ein paar Module kaufen.