Archiv für den Monat: Dezember 2011

Googles ADK mit Arduino Uno und normalem UBS-Host-Shield

In diesem Beitrag möchte ich meine Versuch mit Arduino und Android dokumentieren.

Ausgangspunkt war für mich das Video von der Android Open 2011: Massimo Banzi, “Arduino & Android, Infinite Possibilities”

In diesem Video beschreibt Herr Banzi, verschiedene Möglichkeiten des Zusammenspiels von Arduino und Android.

Auf der Blog-Seite des Arduino-Projekt ist diesem Thema eine Kategorie gewidmet.

Der Post Tutorial: Arduino UNO + Google’s ADK von Alex TC hat mein Interesse geweckt. Leider ist er auf spanisch, aber dank Google-Übersetzer ist er eigentlich ganz gut lesbar. Es gibt nur ein paar Fußangeln, über die ich im Folgenden berichten möchte.

Für den Arduino Uno benötigen man noch

  • ein USB-Host-Shield und
  • die Hardware die über Android gesteuert werden soll.

Ein Telefon oder Gerät Android-Version 2.3.4 oder 3.1 (ich habe ein HTC Magic mit Androide 2.2.3 das ich noch updaten muss.)

An Software für den PC oder Mac benötigt man:

  • Java JDK Version 1.6 oder 1.7
  • Android SDK
  • Eclipse
  • Arduino IDE Version 0023 (Wichtig!)

Installation der Software

Wenn der Java Development Kit (JDK) noch nicht installiert ist, installiert man die Version 1.7 von JDK. In GNU/Linux kann es leicht aus dem Paket-Manager auswählen, für Mac OS X und Windows kann es von hier herunterladen werden.

Nun muss der Androide SDK heruntergeladen werden (die Version von Android ist nicht so wichtig, da man später mit Eclipse die benötigte Version und die zusätzlich Tools bequem installieren kann).

Eclipse herunterladen und die zwei Plugins Subclipse und ADT Plugin installieren.

Für GNU/Linux: 32 Bit , 64 Bit .

Für Windows 32 Bit, 64 Bit.

Für Mac OS X 32 Bit, 64 Bit.

Eclipse muss nicht installiert werden. Es genügt den gezippten Ordner zu entpacken und die ausführbare Datei Eclipse zu starten.

Nach dem öffnen von Eclipse, müssen die zwei Plugins installiert werden. Dazu geht man unter in Eclipse zu dem Menü-Punkt Help -> „Install new Software …“ und fügt über den Button „ADD“ die Quelle http://subclipse.tigris.org/update_1.8.x des Plugins Subclipse hinzu. Danach kann man das Plugin auswählen und mit „Next“ und „Finish“ installieren. Um das ADT Plugin Plugin zu installieren wiederholt man die Vorherigen Schritte mit der Quelle: https://dlssl.google.com/android/eclipse/.

Nun müssen noch die benötigten Pakete des Android SDKs zum Kompilieren und Ausführen des Projekts heruntergeladen werden. Um dies zu tun, gehen man im Eclipse-Menu über „Window“ zu „Android SDK“, man wählt folgende Pakete „Tools“ „Android 2.3.2 (API10)“ und „Extras“ aus und drückt den Button „install“. Wenn man mit Windows arbeite sollten auch die USB-Treiber installiert werden.

(optional) Um ein virtuelles Gerät zu erstellen, geht man im Eclipse-Menu über „Window“ zu „ADV Manager“ und wählt im „Android Virtual Devices“ den Button „New“. Nachdem man dem virtuellem Gerät einen Namen gegeben hat, kann die Version von Android (2.3.2) ausgewählt werden zusätzlich kann noch eine SD-Karte mit mindestens 256 Megabyte Speicher hinzugefügt werden. Die anderen Optionen können auf Standardeinstellungen bleiben.

Die Adruino IDE Version 0023 herunterladen und entpacken. Achtung: Die Version 1.0 unterstützt nicht das USB-Host-Shield. (Stand Dezember 2011)

Herunterladen der verschiedenen Projekt Dateien

Das ADK Packet herunterladen. Das ADK Packet enthält die Firmware für das ADK-Board und die Hardware Design Files für das ADK-Board and Shield.

Die modifizierte Version der USB-Host-Shield Bibliothek von http://blog.bricogeek.com herunterladen.

Arduino Sketch-Datei von http://blog.bricogeek.com herunterladen.

Nun müssen die richtigen Dateien an den richtigen Ort kopiert werden.

Aus dem AKD-Paket wird der Ordner „AndroidAccessory“ aus dem Verzeichnis „Firmeware/adruion_libs/“ in das Verzeichnis mit den lokalen Arduino Bibliotheken kopiert. Unter Mac OS X ist es das Verzeichnis „Documents/Adruino/libraries/“.

Notes: 1

Der Ordner mit der modifizierten UBS-Host-Shield Bibliothek „USB_Host_Shiled“ wird ebenfalls in das Verzeichnis mit den lokalen Arduino Bibliotheken kopiert.

Wenn man jetzt die Sketch-Datei mit der Adruino IDE (Version 0023) öffnet sollte es ohne Probleme kompiliert und auf den Arduino Uno mit USB-Host-Shield geladen werden können.

Konfiguration und Kompilierung des AKD-Packets unter Eclipse

In Eclipse erstellen man ein neues Projekt. Im Eclipse-Menu „File“ „New“ wählen man „Android Project“.

Im Dialogfeld nennt man das neue Projekt „DemoKit“. Man wählt „Create a project from existing source“, und wählt als Quelle den „app“-Ordner des AKD-Packtes. Nun geht man zum nächsten Dialog über den Button „Next“.

Man wählen die Android-Version „Googles APIs“ Version „2.3.3“ API Level „10“ aus und drückt den Button „Finish“.

Nun muss doch das USB-Debbuging auf „true“ gesetzt werden. Dazu öffnet man am einfachsten in den Projekt-Source die Datei „AndroidManifest.xml“ und wählt unter „Application“ im Unterpunkt „Debuggable“ „true“ aus.

Wenn man jetzt ein Telefon via USB-Kabel an den Computer verbindet und in Eclipse auf „Run“ drückt (grünes Symbol mit einem Pfeil direkt rechts neben dem Symbol Bug), wird die Anwendung „DemoKit“, mit der das Arduino-Board kontrolliert werden kann, auf dem Telefon installiert.