Quantcast
Channel: Tobias Scheible
Viewing all articles
Browse latest Browse all 63

DigiSpark USB Development Board

$
0
0

Der DigiSpark kostet je nach Händler und je nachdem, wie viele Module abgenommen werden, zwischen 2 und 8 Euro. Erhältlich ist er bei vielen Online-Händlern – darunter auch Amazon und Ebay. Durch die kleine Größe besitzt er nur wenige Pins, allerdings können darüber erstaunlich viele verschiedene Schnittstellen (z.B. I2C, SPI, USI, PWM, ADV) abgebildet werden. Eine eigebaute LED zeigt den Status bei einer Stromverbindung an und eine zweite LED kann frei programmiert werden und dient zum Beispiel dazu, ein Feedback zu erhalten.

DigiSpark Anleitung

Mit der nachfolgenden Anleitung kann die Arduino IDE eingerichtet werden, um den DigiSpark zu programmieren.

1. Schritt: Download und Installation der Arduino IDE

Gehen Sie auf die offizielle Website und laden Sie dort die für das eingesetzte Betriebssystem passende Version herunter. In diesem Beispiel arbeite ich mit einem Windows-System und wähle daher die Version „Windows Installer for Windows XP and up“ aus. Auf der nächsten Seite kann der Download mit einem Klick auf den Link „Just Download“ gestartet werden.

Arduino IDE - DigiSpark
Download der Arduino IDE – Betriebssystem wählen
Installation Arduino IDE Download der Arduino IDE – Betriebssystem wählen
Installation Arduino IDE
Download der Arduino IDE – „JUST DOWNLOAD“ bestätigen
Arduino IDE - DigiSpark Download der Arduino IDE – „JUST DOWNLOAD“ bestätigen

2. Digistump Treiber installieren

Als Nächstes müssen Sie den USB-Treiber installieren, damit Ihr Rechner die Scripte auf Ihren Digispark übertragen kann. Den „gepackten“ Treiber können Sie bei GitHub herunterladen. Entpacken Sie die Datei und führen dann die Setup-Datei DPinst.exe (32Bit Windows) oder DPinst64.exe (64Bit Windows) aus. Daraufhin wird der Treiber „Sigistump LLC Anschlüsse“ installiert.

DigiSpark Windows Treiber
Installation des Treibers
DigiSpark Treiberinstallation Installation des Treibers

3. DigitSpark Board hinzufügen

Starten Sie anschließend die Arduinio IDE. Öffnen Sie dort im Menü „Datei“ den Dialog „Voreinstellungen“ und fügen Sie im Feld „Zusätzliche Boardverwalter-URLS:“ die URL http://digistump.com/package_digistump_index.json hinzu. Bestätigen Sie anschließend den Dialog mit einem Klick auf den Button „OK“. Gehen Sie nun in den nächsten Dialog in dem im Menü „Werkzeuge“ auf das Untermenü „Board: #“ und wählen Sie die Option „Boardverwalter…“. Geben Sie nun im Dialog „Boardverwalter“ in die Suchleiste den Suchbegriff „Digistump AVR Boards“ ein und klicken im gefundenen Eintrag auf „installieren“. Danach können Sie diesen Dialog wieder schließen. Gehen Sie nun wieder in das Menü „Werkzeuge“ und in das Untermenü „Board: #“. Wählen Sie dort nun die neu hinzugekommene Option „Digispark (Default – 16.5mhz)“ aus.

Arduino IDE Eisntellungen
Zusätzliche Boardverwalter-URLS
Zusätzliche Boardverwalter-URLS Zusätzliche Boardverwalter-URLS
Digistump AVR Boards Installation
Digistump AVR Boards Installation
Arduino IDE Eisntellungen Digistump AVR Boards Installation
DigiSpark auswählen
Digispark (Default – 16.5mhz)
Arduino IDE Eisntellungen Digispark (Default – 16.5mhz)

4. Deutsches Tastaturlayout

In der Standardkonfiguration nutzt der DigiSpark das englischsprachige Tastaturlayout. Dadurch kann es zu Problemen bei der Verwendung von Sonderzeichen kommen, da bei einer Programmierung mit einer deutschen Tastatur das englische Äquivalent der Zeichen verwendet wird. Auf GitHub gibt es einen Fork des DigiStump AddOns „DigistumpArduino – Germanized Keyboard Library“. Hier kann dann die Header-Datei „DigiKeyboardDe.h“ genutzt werden und im selben Ordner wie die „.ino“ Arduino-Datei abgelegt werden. Einzige Einschränkung sind die deutschen Umlaute.

DigiSpark Beispiele

Um Ihnen den ersten Einstieg zu erleichtern, habe ich hier drei Beispiele erstellt.

1. Blinkende LED

Im ersten Beispiel lassen wir die vorhandene LED blinken. Nachdem eine setup()-Funktion erstellt wurde, die die Anfangswerte initialisiert und setzt, führt die loop()-Funktion genau das aus, was ihr Name vermuten lässt, nämlich eine Endlosschleife. Um nun die LED blinken zu lassen, muss in der setup()-Funktion der Pin der LED als Ausgabe (Output) gesetzt werden. In der loop()-Funktion wird die Ausgabe auf HIGH gesetzt, also stromleitend. Nach einer Wartezeit von 500 Millisekunden wird mit dem delay-Befehl der Strom mit LOW wieder ausgeschaltet. Danach erfolgt wieder eine Pause von 500 Millisekunden, da ansonsten die LED gleich wieder angehen würde. Sie können ein bisschen mit den Werten experimentieren und die LED schneller oder langsamer blinken lassen.

void setup() {                
  pinMode(1, OUTPUT);
}

void loop() {
  digitalWrite(1, HIGH);
  delay(500);
  digitalWrite(1, LOW); 
  delay(500);
}

2. Hallo Welt Ausgabe mit Sonderzeichen

Als Nächstes erstellen wir eine Ausgabe mit einer virtualisierten Tastatur. Um die deutsche Tastaturausgabe zu nutzen, muss am Anfang die Header-Datei „DigiKeyboardDe.h“ eingebunden werden. Dadurch steht uns der Funktionsaufruf „DigiKeyboardDe.println“ zur Verfügung. Wird das nachfolgende Beispiel auf den DigiSpark geladen, gibt die virtuelle Tastatur alle 2 Sekunden den Text „Hello World XYZ !\“§$%&/()=? [] {}<>!” aus.

 #include "DigiKeyboardDe.h"
void setup() {
}
void loop() {
DigiKeyboardDe.println("Hello World XYZ !\"§$%&/()=? [] {}<>!");
DigiKeyboard.delay(2000);
}

3. Taschenrechner unter Windows öffnen

Im letzten Beispiel wollen wir den Taschenrechner mit dem Digispark starten. Da wir die Aktion nur einmal ausführen möchten, schreiben wir die Befehle in die setup()-Funktion. Die Grundlagen zum Ausführen von Programmen stellt der Ausführen-Dialog dar. Dieser kann mit der Tastenkombination Windowstaste und R-Taste aufgerufen werden. Um eine Tastenkombination mit dem DigiSpark auszuführen, wird der Befehl DigiKeyboardDe.sendKeyStroke() verwendet. Welche Tasten möglich sind, kann direkt in der Datei „DigiKeyboardDe.h“ nachgelesen werden.

#include "DigiKeyboardDe.h"
void setup() {
  DigiKeyboardDe.sendKeyStroke(0);
  DigiKeyboardDe.sendKeyStroke(KEY_R, MOD_GUI_LEFT); 
  DigiKeyboardDe.println("calc");
}
void loop() {
}

Weitere Beispiele sind direkt in der Arduino IDE verfügbar. Sie finden sie unter „Datei“ > „Beispiele“. Dort gibt es dann eine spezielle Kategorie mit allen Beispiel-Codes für den DigiSpark. Viel Spaß beim Experimentieren 😉

Weitere Ressourcen

+ Offizielle Anleitung „Connecting and Programming Your Digispark“

+ Ix Artikel „IT-Sicherheit: Das Gefährdungspotenzial der Digispark-USB-Platine“

+ Digispark – die USB Rubber Ducky Alternative (Teil1)

+ Digispark – die USB Rubber Ducky Alternative (Teil2)


Viewing all articles
Browse latest Browse all 63