ATTiny85 als USB Eingabegerät - AZ-Delivery

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

 

 

 

 

 

 

Projekte für anfänger

7 comments

Knusi

Knusi

Guten Tag. Ich bin ein wenig spät, ich weis. Ich werde es mal ausprobieren, klingt nach Spass.

Hier noch ein paar Tips:
Windows key + R for “run” (wouldn’t it be nice to have an extra button for it?)
Ja, den gibt es, in Windows 10 kann man die Windowstaste kurz drücken und dann den Befehl, wie bei “run” direkt eingeben.

enter the command “devmgmt.msc” at “Open:” (wouldn’t it be great if this would do this to a macro?).
Ja auch das geht mit Windows 10, schneller: rechtsklick auf das Startmenu und es öffnet sich ein Menu mit allem was der Admin so braucht.

Bernd Albrecht

Bernd Albrecht

@ Daniel:
Zunächst meine Frage: Haben Sie alles nachgemacht und ausprobiert, was dort beschrieben ist. Insbesondere die Frage, ob der Treiber für ATTiny 85 Digistump mit https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip schon installiert ist und die Arduino IDE das Board bereits kennt (“Datei” → “Voreinstellungen” bei “Zusätzliche Boardverwalter-URLs”, der Link für das Digistump Modul hinzugefügt wurde (http://digistump.com/package_digistump_index.json).
Haben Sie sich das eBook zum ATTiny angeschaut?
Was haben Sie an dem Sketch nicht verstanden? Mit der Zeile
DigiKeyboard.println(“devmgmt.msc”);
wird Text einschließlich gesendet.
Tragen Sie hier einfach „&“ zwischen den Klammern ein.
Die Besonderheit beim ATTiny ist, dass der Micro Controller erst eingesteckt wird, wenn die Arduino IDE beim Programm upload nach dem Kompilieren dazu auffordert.

Daniel

Daniel

Hallo
möchte den attini85 als usb Tastertur programmieren sodass ich mit einem & Zeichen einem Programm das & Zeichen als mute Befehl zuweisen kann können sie mir dafür die codezeilen schicken bin Anfänger auf dem gebiet vielen dank im vorraus.

bernard

bernard

impossible to buy ebook in english for atiny85
!!!
only deutsh and italiano

MarkusO

MarkusO

Hallo!
Diese Anleitung habe ich befolgt, auch die eures eBook. Digistump-Treiber etc. installiert … nur der Attiny85 wird nicht erkannt. Woran könnte es liegen? Mein Win7 arbeitet mit allen Arduino-kompatiblen Boards gut zusammen.
Danke für einen Hinweis.
Markus

Markus Neumann

Markus Neumann

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

RalfK

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

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery