Dienstag, 7. Oktober 2014

Der kopflose Raspberry Pi

Ich arbeite immer mit meinem Notebook und verwende keine externen Geräte wie Tastatur, Maus oder Monitor am Arbeitsplatz. Als ich meinen ersten Raspberry Pi hatte, hat es mich darum genervt, dass ich meinen Schreibtisch mit diesem ganzen Equipment vollgestellt habe und den winzigen Pi auch noch mit einem unterarmdicken HDMI-Kabel mit dem Monitor verbinden musste. Meistens habe ich dann das Betriebssystem konfiguriert, dem Pi eine statische IP-Adresse verpasst und ihn dann headless (also ohne Dipslay) in das lokale Netzwerk integriert. Weil ich hinterher aufräumen musste, war der Spaß aber deutlich beeinträchtigt.

Samstag, 5. Juli 2014

Der Arduino Roboter - Wenig Leistung für viel Geld

Mit der Arduino-Plattform habe ich in den vergangenen Jahren jede Menge Spaß gehabt. Mit wenig finanziellem Aufwand, konnte  ich viele spannende Dinge entdecken und neue Einsichten gewinnen, ohne dass ich ein Experte für Micro-Controller sein musste. Neben hübschen Sachen wie blinkenden LED-Würfel üben Roboter natürlich eine besondere Faszination aus. Ich hatte mir mal so vor 15 Jahren einen der ersten Lego Mindstorms Kästen gekauft, daran aber nicht viel Freude gehabt. 

Seit dem letzten Jahr gibt es zum Preis von gut 200€ den Arduino Robot. Wenn einem die Arduino-Plattform sonst gut gefällt, dann müsste das doch auch für einen Roboter aus diesem Haus gelten - so dachte ich. Dass diese Annahme naiv war, habe ich erst zu spät bemerkt.

Das Gerät besteht aus zwei Scheiben. Jede ist mit einem Arduino Leonardo bestückt. Die untere Einheit wird als Motor Board, die obere als Control Board bezeichnet. Beide Controller können per USB mit der Arduino-IDE verbunden werden. Der Roboter wird mit einem LCD-Display und einigen wenigen eingebauten Sensoren ausgeliefert. So gibt es einen Kompass und einige Infrarot-Sensoren an der Unterseite des Motor-Boards. Der Nutzen eines kleinen Display auf einem sich bewegenden Roboter ist mir nicht so ganz klar.

Donnerstag, 26. Juni 2014

Debian für das Intel Galileo-Board

Ursprünglich gab es das Galileo-Board von Intel nur mit zwei Linux-Images, die beide mit der Yocto-Build-Umgebung gebaut worden sind und beispielsweise keinen Paket-Manager enthalten. Wer mehr will und sich nicht in Yocto einarbeiten mag, kann seit Kurzem auch mit einer Debian Distribution für Galileo arbeiten. Im zugehörigen Wiki wird die Inbetriebnahme beschrieben.

Freitag, 28. März 2014

Bluetooth zwischen Raspberry Pi und Android

GPIO-Pins bieten eine tolle Möglichkeit um unseren Raspberry Pi mit der wirklichen Welt zu verbinden. Mit der WiringPi-Bibliothek können wir Software schreiben, um unsere selbstgebastelten oder fertig konfektionierten Geräte zu steuern oder Daten von ihnen zu empfangen. Vollständig wird das Ganze aber erst durch eine Fernsteuerung. Und was liegt näher, als dafür ein Android-Smartphone zu nutzen? Es bietet mit WiFi und Bluetooth zwei Technologien, die für diese Aufgabe hervorragend geeignet sind. 

In diesem Beitrag entwickeln wir eine Lösung mit einer App, die wie in der Abbildung aussieht. Die App sendet den eingegebenen Text über Bluetooth an den Raspberry Pi, wo er auf der Konsole ausgegeben und an das Android Target zurückgeschickt wird.




Sonntag, 16. März 2014

Google Cloud Endpoints - Verstärkung für Android Apps (Teil 4)

Wir haben eine einfache Android App entwickelt, die eine Service-Technologie nutzt, die Google unter dem Namen 'Cloud Endpoints' in seiner App Engine zur Verfügung stellt. Bisher laufen die Dienste allerdings nur auf einem Entwicklungssystem. Jetzt geht es an das Deployment, also die Inbetriebnahme der Dienste in der Infrastruktur von Google.

Samstag, 8. März 2014

Google Cloud Endpoints - Verstärkung für Android Apps (Teil 3)

In den beiden ersten Beiträgen dieser Reihe haben wir eine App entwickelt, die einen einfachen Service nutzt. Dieser Service wird noch nicht in der Google Cloud, sondern auf unserem Entwickler-Host betrieben. In diesem Beitrag sorgen wir erst einmal dafür, dass die Objekte, die unser Dienst zu Verfügung stellt, in einer Datenbank verwaltet werden.

Samstag, 1. März 2014

Google Cloud Endpoints - Verstärkung für Android Apps (Teil 2)

Im ersten Beitrag dieser Reihe zum Thema Cloud Endpoints haben wir einen ersten einfachen Service implementiert und im Browser getestet. Unser nächstes Ziel besteht darin, den Service in unsere App 'Artist' zu integrieren. Das Ergebnis sieht dann wie in der Abbildung aus. Die Daten für den Namen und das Gründungsjahr einer Band werden von unserem Service versorgt. Die App präsentiert dann nur noch die Daten.



Die Artists-App im Android Emulator


Freitag, 21. Februar 2014

Google Cloud Endpoints - Verstärkung für Android Apps (Teil 1)

Auch wenn Smartphones heute teilweise sehr leistungsstark sind, berücksichtigt der vorausschauende Entwickler, dass seine Apps auch auf schmalbrüstigen Targets laufen können. Aufgaben, die die begrenzten Ressourcen des Smartphones strapazieren, sollten daher nicht lokal ausgeführt werden. Selbst wenn die App auf einem Boliden installiert ist: Die Bandbreite des Netzwerkes ist außerhalb der Ballungsräume oft dürftig. Apps, die viele Daten bewegen, laufen dann nicht flüssig und verhageln die User Experience. Die Lösung besteht darin, Services auf Servern über das Internet bereit zu stellen und sie bei Bedarf abzurufen.

Services können mit Hilfe verschiedener Protokolle und Programmiermodelle implementiert werden. Bisher gab es keinen Königsweg und man musste sich in eine der Technologien einarbeiten. Hier soll gezeigt werden, wie man mit vergleichsweise einfachen Mitteln Services in seine App integrieren kann, die kostenlos in der Infrastruktur von Google gehostet werden. Die Software wird mit Hilfe von Eclipse-Plugins entwickelt. Die ganze Vorgehensweise ist sehr homogen: Die Eclipse- und die Java-Welt werden nicht verlassen. Es wird vorausgesetzt, dass bereits grundlegende Kenntnisse in der Entwicklung mit Android vorliegen.

Freitag, 14. Februar 2014

Arduino und Linux gemeinsam auf dem Intel Galileo

Im vorhergehenden Beitrag haben wir uns mit der Inbetriebnahme des Boards beschäftigt und einige Standard-Sketche getestet. Die Existenz eines Linux-Systems habe ich zwar erwähnt, sie aber nicht genutzt. Hier soll jetzt das Zusammenspiel von Linux und Galileo genauer unter die Lupe genommen werden. Eine wesentliche Hilfe war dabei der Beitrag auf golem.de

Donnerstag, 13. Februar 2014

Erste Schritte mit Intel Galileo

Aktuelle mobile Systeme sind in den meisten Fällen mit ARM-basierten System-on-Chips (SoC) ausgestattet. Bis auf Ausnahmen ist Intel hier nicht sichtbar. Damit sich dies ändert, vertreibt Intel seit Ende 2013  ein Arduino-kompatibeles Board, das mit dem neuartigen Quark SoC ausgestattet ist.
Die CPU des Quark ist ein mit maximal 400MHz getakteter 486-Prozessor. Auf dem Chip befinden sich ausserdem 512 kB RAM. Auf dem Quark läuft ein Linux-System, zu dessen Aufgaben es auch gehört, einen Atmel-Microcontroller zu emulieren, wie er auf anderen Arduino-Boards verbaut ist.

Funktionen des Linux-Systems können über API-Funktionen in Arduino-Sketches genutzt werden.

Viele Shields, die man an Arduino-Baords anschließen kann, sollten auch beim Galileo-Board genutzt werden können. Das Board enthält bereits Mico-USB-Anschlüsse, ein Ethernet-Adapter, einen SD-Karten-Schacht und weitere Peripherie. Intel Galileo wurde detailliert beschrieben, in diesem Betrag geht es um Eindrücke, die ich bei der Inbetriebnahme gesammelt habe.