ATTiny85 als USB Eingabegerät

Hallo und willkommen zu unserem heutigen Blog Beitrag.

 

Wer viel am PC sitzt kennt das Problem: es gibt eine Vielzahl an Programmen, und jedes Programm bietet eine Vielzahl von Tastenkombinationen an. Dank der Tastenkombinationen sollen oft verwendete Funktionen schneller auszuführen sein.

Das klappt auch ganz gut für alltägliche Dinge wie "Kopieren" und "Einfügen", aber es gibt auch Tastenkombinationen die etwas mehr Fingerakrobatik erfordern, oder Kombinationen welche man nur selten benutzt, und daher schnell vergisst.

Nun gibt es mit dem ATTiny85 die Möglichkeit einen Mikrocontroller als USB Eingabegerät zu verwenden. Das Modul kann also von mir festgelegte Tastaturkommandos an meinen PC Senden - zum  Beispiel wenn ein Knopf gedrückt wird.

Ich möchte mir also ein paar SEHR robuste Taster besorgen, um bestimmte Tastenkombinationen mit der Faust ausführen zu können (wie z.B. Alt+F4 um ein Programm zu schließen). Außerdem habe ich noch einen alten Fußtaster von einem Keyboard - ideal geeignet um "Push-To-Talk" zu aktivieren.

Wer der Anleitung in unserem eBook zum ATTiny85 gefolgt ist, kennt bestimmt die größte hürde bei dem Projekt:

Das kleine Modul arbeitet nicht exakt so wie man es von einem Nano oder Uno gewohnt ist. Nach dem Einstecken geht das Modul nur für wenige Sekunden in den Programmiermodus. In dieser Zeit kann der Code hochgeladen werden.

Als erstes müssen wir sicherstellen dass unser Modul erkannt wird, und im Windows Gerätemanager auftaucht. Dafür drücken wir die Windows Taste + R für "run" (wäre es nicht schön einen extra Button dafür zu haben?), und im "Ausführen" Fenster geben wir bei "Öffnen:" den Befehl "devmgmt.msc" ein (wäre es nicht toll wenn dies ein Makro erledigen würde?).

Es sollte nun, wenn das Modul angesteckt ist, einen Eintrag "libusb-win32 devices" geben mit dem Eintrag "Digispark Bootloader".

 

Falls das Modul als "Unbekanntes Gerät" angezeigt wird, stellen Sie bitte sicher dass die aktuellen Treiber installiert sind. Diese finden Sie unter: https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip

Stellen Sie bitte auch sicher dass, unter "Datei" -> "Voreinstellungen" bei "Zusätzliche Boardverwalter-URLs", der Link für das Digistump Modul hinzugefügt wurde (http://digistump.com/package_digistump_index.json).

Nun können wir über den Boardverwalter überprüfen ob das Paket für "Digistump AVR Boards by Digistump" installiert ist, oder falls nötig nachinstallieren:

 

Nun zum Aufbau. Ich verwende einen einfachen Taster, und verbinde GND mit GND, und S mit einem der 6 Pins des ATTiny. Natürlich können Sie nach belieben mehrere Taster oder andere Sensoren auswählen.

Die 6 Pins bieten uns folgende Möglichkeiten:

Alle Pins können als Digitale I/Os verwendet werden.
Pin 0 → I2C SDA, PWM 
Pin 1 → PWM 
Pin 2 → I2C SCK, Analog In
Pin 3 → Analog In (wird auch als USB+ verwendet wenn per USB angeschlossen)
Pin 4 → PWM, Analog (wird auch als USB- verwendet wenn per USB angeschlossen)
Pin 5 → Analog In

 

Als Beispiel für diesen Beitrag habe ich folgenden Sketch geschrieben:

 

 

#include "DigiKeyboard.h"
int buttonPin = 0; // Hier ist der Taster angeschlossen

void setup() {
  pinMode(buttonPin, INPUT);
  digitalWrite(buttonPin, HIGH);
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  if (digitalRead(buttonPin) == LOW){
    DigiKeyboard.sendKeyStroke(KEY_R , MOD_GUI_LEFT); // Win+R Tatenkombination
    DigiKeyboard.delay(50); // Kurz warten
    DigiKeyboard.println("devmgmt.msc"); // Gerätemanager aufrufen
    DigiKeyboard.delay(1000);
  }
}

Nun kann ich auf Knopfdruck den Gerätemanager in Windows öffnen.

Natürlich gibt unzählige Möglichkeiten dies in der Praxis einzusetzen. Sie könnten z.B. Fußtaster einsetzen um  zwischen Programmen zu wechseln, oder um mittels Shadowplay eine Tolle Spielszene zu speichern. Live-Streamer können sich sehr Günstig ein Bedienfeld mit mehreren Tasten basteln, um zwischen Szenen zu wechseln, oder das Mikrofon auf stumm zu schalten.

 

Ich hoffe der Heutige Beitrag hat Sie auf neue Ideen gebracht, und wünsche allen ein schönes Wochenende.

Ihr Markus Neumann

 

 

 

 

 

 

Letzter Artikel Epoxidharz, eine wasserdichte Sache

Kommentar

Markus Neumann - August 4, 2018

Hallo RalfK,
Vielen Dank für den Hinweis.
Das eBook finden Sie unter https://www.az-delivery.de/products/digispark-kostenfreies-e-book.
Ich habe im Beitrag einen Link zum eBook hinzugefügt.

RalfK - August 4, 2018

Wo finde ich die Doku dazu? (Es heist: Wer der Anleitung in unserem eBook zum ATTiny85 gefolgt ist…)

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe