Alle Beiträge von wolffwo

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.

Processing — Android Apps programmieren

Processing kann noch mehr. So kann man relativ einfach für ein Android-Handy Apps entwickeln und entweder mit einem Simulator oder auf einem Handy testen.

Das genau Vorgehen kann und sollte man im Processing Wiki nachlesen. Ich beschreibe hier nur ganz kurz die nötigen Schritte.

  • Zuerst muss der Android SDK herunterladen und installieren werden.
  • Es müssen folgende zusätzlichen Pakete installiert werden (näheres dazu in der Installationsanleitung zum Android SDK)
    • “Tools”, markiere die “Android SDK Platform-tools”. Die “Android SDK Tools” sollten schon installiert sein.
    • Darunter folgt die “Android 2.2 (API 8)”, wähle “SDK Platform” und “Google APIs by Google Inc.” aus.
    • Wenn man möchte kann man auch noch andere Versionen von Android installieren.

  • Die aktuelle Version 2.0 alpha 3 von Processing herunterladen und installieren. (Download Links: Windows, Mac OS X, Linux)

Wenn man keinen Fehler macht und alles ordentlich installiert ist, kann man in Processing mit den mitgelieferten Beispiele anfangen und seine eigene Androide-Apps schreiben.

Im Android-Modus von Processing stehen dann folgende Optionen zur Verfügung

  • Ausführen im Emulator
  • Ausführen auf einem Gerät
  • Exportieren als Android Projekt

Greenfoot auf USB-Stick

Seit kurzem gibt es die Möglichkeit Greenfoot (mitsamt der Java JDK Installation) auf einem UBS-Stick ohne Installation unter Windows zu Nutzen.

Vorgehen:
Von der Seite http://greenroom.greenfoot.org/ kann als Zip-Datei die aktuelle Version von „Greenfoot on the Stick“ herunterladen und auf einen UBS-Stick entpacken.

Screen-shoots der einzelnen Arbeitsschritte:

  • Greenfoot herunterladen
  • GreenfootStandAlone.zip auf UBS-Stick entpacken
  • Greenfoot Starten

DIY — Navigation mit einer Optischen Maus

Da ich wissen wollte wie eigentlich eine Optische Maus funktioniert habe ich mich mit einer alten Logitech USB-Mause, die in der Schule herumlag beschäftigt. Schnell hat ich dann die Idee den Optical Mouse Sensor ADNS2610 zur Positionsbestimmung für einen Roboter zu nutzen.

Es gibt mehrere Arduino-Projekt die sich mit Optical Mouse Sensors beschäftigen.
Ich habe mir zwei genauer angesehen.

  • Interfacing an optical mouse sensor to your Arduino von Noodlewerk.com: Dieses Projekt unterstützt eine ganze Reihe von Optischen Sensoren: PAN3101, ADNS-2610, ADNS-2083 und ADNS-2051. Standardmäßig wird der PAN3101 verwendet. Beim einbinden eines anderen Sensors bekommt man beim Übersetzten mehrere Fehler. Mit etwas googlen findet man einen Bugfix im Arduino Forum, der einem weiterhilft. Dann funktioniert die Software gut und man kann über die serielle Schnittstelle die aktuellen Positionsdaten auslesen.
  • Optical Mouse Cam von bidouille.org: Dieses Projekt geht noch einen Schritt weiter. Es werden nicht nur die Positionsdaten ausgelesen, sondern auch das Bild des Optical Mouse Sensors übertragen.

Beide Projekt habe ich zum laufen gebracht, so dass ich jetzt auf dieser Basis ein Navigationsmodul für meinen DIY — Roboterentwickeln kann.

Von SparFun gibt es ein Break-Out-Board mit einem ADNS-2620-Chip und eine Bibliothek für den Arduino Mega.

Web-Design mit html und css

[seriesposts name=“ProjektAG“ title=“DIY Projekte an der Schule“ orderby=“user_order“ order=“ASC“]
Html1 und css2 sind die Grundlagen des World Wilde Web. Dabei hat html die Aufgabe in den Inhalt einer Web-Seite zu strukturieren, z.B. Abschnitte, Listen, Tabellen und Überschriften.
Css wiederum ist für das Design verantwortlich. Das reicht von der Schriftgröße einer Überschrift bis zum Hintergrundbild einer Webseite. Dieses grundlegende Zusammenspiel von html und css soll in dem Projekt vermittelt werden.

Inhalt:

  • Erste Schritte mit HTML & CSS
  • HTML Tags
  • Layout einer Seite mit HTML & CSS
  • Formatieren mit CSS Stylesheets, z.B. Text, Listen & Bilder
  • Einbindung von Bildern in Ihre Website
  • Erstellung von Hyperlinks
  • Pfade, Struktur & Organisation

Teilnehmerzahl

  • max. 15 Schülerinnen und Schüler der 7-10. Klassenstufen

Literatur

http://www.html-seminar.de/

  1. Die Hypertext Markup Language (HTML; deutsch Hypertext-Auszeichnungssprache), oft kurz als Hypertext bezeichnet, ist eine textbasierte Auszeichnungssprache zur Strukturierung von Inhalten wie Texten, Bildern und Hyperlinks in Dokumenten. []
  2. Die Cascading Style Sheets (englische Aussprache [kæsˌkeɪdɪŋˈstaɪlʃiːts]; für stufenförmige oder (hintereinander) geschachtelte Gestaltungsvorlagen), kurz CSS genannt, sind quasi eine deklarative Sprache für Stilvorlagen (eng. stylesheets) von strukturierten Dokumenten. []