Arduino und ein 16×4 LCD

Heute habe ich im Keller meine Kartons durchgewühlt und ein altes 16×4
LCD von Displaytech
ausgegraben. Ich war mir nicht sicher, ob es
überhaupt noch funktioniert, aber wofür hab ich im Arduino Starter
Kit
ein Breadboard? Also, fix eine Steckerleiste ans Display
gelötet und an den Arduino angeschlossen. 😉

Arduino liefert bereits eine LiquidCristal Library und damit ist
das Display ruckzuck im Einsatz. Als Test habe ich ein einfaches Hello
World
aus den Arduino Beispielen genommen:

...
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}
...

Hier ist das Ergebnis:

Arduino + 16x4 LCD

Erste Schritte mit dem Arduino

Unglaublich: Heute ist der Arduino Starter Kit schon angekommen!
Ich hab mich natürlich gleich hingesetzt und das Teil ausprobiert. Hier
sind ein paar Bilder:

Arduino ist angekommen
Das Arduino Starter Kit von Fritzing
Die Einzelteile des Arduino Starter Kit von Fritzing
Erste Schaltung mit Arduino: Blinklicht

Und damit es nicht zu einfach ist, hab ich das Potentiometer angeschlossen und
dessen Wert für das Blinken benutzt. Und dann habe ich noch den Temperatursensor
LM35 angeschlossen und mit Processing einen Graph meiner Zimmertemperatur erstellt:

Arduino - Temperature graph

Einrichtung eines eigenen Sync-Server für Firefox

Im Zuge meiner Rückeroberung des Internet habe ich mir heute einen eigenen Server zur Synchronisation
von Firefox-Inhalten eingerichtet. Damit kann ich meine Einstellungen und Lesezeichen über verschiedene
Rechner bzw. Installationen synchronisieren, ohne meine Daten aus der Hand zu geben.

Das ganze funktioniert leider nicht auf jedem beliebigen Webspace, aber zum Glück hab ich noch einen
Sheevaplug im Abstellraum. Darauf ist das benötigte Python, der lighttpd Server und der
Sync Server relativ problemlos eingerichtet.

Die genaue Installation ist hier sehr schön beschrieben. Mein Server läuft hinter einem lighttpd
und auch die Konfiguration ist beschrieben. Ich will hier nur die Stolpersteine auflisten, die mich etwas
aus der Bahn geworfen haben.

Als erstes wäre da die Installation per mercurial. Damit ist man immer auf dem neusten Stand, aber dafür
schlug der Aufruf von make build bei mir fehl, weil ich bereits die Datei etc/sync.conf angepasst hatte.
Also reverten und anschliessend die Konfiguration unter /etc/sync.conf ablegen. Danach hab ich die Datei
development.ini kopiert und in production.ini umbenannt. Danach habe ich die Datei production.ini
editiert und folgendes eingetragen:

[server:main]
use = egg:Flup#fcgi_thread
host = 0.0.0.0
port = 5000
#use_threadpool = True
#threadpool_workers = 60

[app:main]
use = egg:SyncServer
configuration = file:///etc/sync.conf

Damit lädt mein Server jetzt die richtige Konfiguration, die ich verändern und trotzdem den Server
irgendwann mittels mercurial aktualisieren kann. Den Server starte ich jetzt mit diesem Kommando:

cd /opt/server-full
./bin/paster serve production.ini --daemon

Danach hab ich erstmal probiert, ob der Server unter der URL http://MEINSERVER/MEINKONTEXT/user/1.0/a
eine Null oder Eins ausgibt. Ist das der Fall, ist der Server erreichbar.

Anschliessend hab ich den Sync in Firefox eingerichtet – d.h. ich wollte den Sync einrichten. Als erstes
hat mir Firefox nämlich “Please enter a valid server URL” mitgeteilt. Ich hab dann verwirrt rumprobiert, ein
wenig im Internet gesucht und gelesen, mehrmals die URL geändert und irgendwann ging’s dann… 🙁

Wie auch immer, der Server läuft, ist von draussen erreichbar und ich werde jetzt erstmal meinen
Google Chrome zur Seite legen und Firefox benutzen.

Neues Projekt: Arduino

Ich hab ein wenig gestöbert, was man im Moment alles mit den
Arduinos machen kann. Nach einer Weile hab ich mehrere Projekte
gefunden, die sich mit dem Aufbau eines Herzfrequenzmonitor
beschäftigen. Das interessiert mich natürlich und ich hab auch schon ein
paar kommerzielle Projekte im Netz beobachtet. Ich wollte schon immer
einen permanenten Monitor tragen, um meine Herzfrequenz während des
Trainings oder über einen ganzen Tag zu beobachten und mit meinen Daten
aus Fitbit zu vergleichen.

Das erste Projekt ist PulseSensor. Das Prinzip ist relativ einfach:
Ein Licht wird durch den Finger geschickt und wieder aufgezeichnet. Eine
Software wertet dann die Änderungen aus und erkennt daraus die
Herzfrequenz. Eine schöne Beschreibung des Prinzips findet man im
Blog des Projekts. Ich nutze auf meinem Android schon die App runtastic
heart rate pro
, die nach dem gleichen Prinzip arbeitet – aber man
kann sie nicht während des Sports nutzen.

Jetzt habe ich mir also kurz entschlossen einen Arduino Starter Kit bei
fritzing
bestellt und werde meine eingerosteten Hardware-Kenntnisse
damit auffrischen. Wenn ich dann mit ein paar simplen Projekten zur
Eingewöhnung fertig bin, werde ich mir den PulseSensor beschaffen
und damit einen batteriebetriebenen Arduino zur kontinuierlichen
Aufzeichnung meiner Herzfrequenz basteln. Das ganze soll relativ einfach
werden: Pulse Sensor ans Ohr klippen, Arduino plus Batterie an die Hüfte
klipsen und einschalten. Der Arduino soll dann die Herzfrequenz
aufzeichnen und abspeichern (erstmal ins Flash, später vielleicht in den
OpenLog?) und ich will die Daten später auslesen können.

Naja, das ist Zukunftsmusik.

Wenn das gut läuft, versuche ich mich vielleicht noch an der nächsten
Stufe: Anschluss eines Polar Brustgurts mittels SparkFun Heart Rate
Monitor interface
. Das dürfte etwas einfacher für sportliche
Aktivitäten werden als ein Ohrclip… 😉

Das Internet zurückerobern – Projekte zum Einstieg

Vor ein paar Tagen hat Johnny Häusler bei Spreeblick den Aufruf gemacht, das Internet von den walled gardens zurückzuerobern. Dafür müsste die freie und dezentrale Technologie aber auch den Laien zugänglich gemacht werden, damit diese nicht mehr zu Diensten wie Facebook oder Twitter abwandern, um ihre Inhalte zu erstellen und zu teilen.

Als ersten Schritt würde ich immer noch einen eigenen Blog sehen. Wer damit loslegen will, sollte sich mal bei jekyllbootstrap umsehen. Und nicht gleich verzweifeln und zu Blogger laufen. Lieber aus den Stolpersteinen lernen und Feedback geben. 😉

Es gibt jetzt schon einige Projekte, die genau die Funktionen bereitstellen, mit denen die großen Dienste die Nutzer anlocken. Ich will hier mal ein paar auflisten, damit ihr einen Anhaltspunkt habt, wo ihr als Helfer einsteigen und wo ihr mit eurem Beitrag etwas verändern könnt.

Bei owncloud gibt es sogar eine Extra-Seite für die sog. Junior Jobs, mit denen man in die Entwicklung einsteigen könnte. Fast alle Open Source Projekte bieten so eine Übersicht über die Kleinigkeiten, die noch offen sind, die aber von keinem bearbeitet werden. Ausserdem hat jeden Projekt eine oder mehrere Mailinglisten, über die man mit den anderen Leuten in Kontakt kommen kann.

Wenn ihr also darüber nachdenkt, wie das Internet aussehen soll und vor allem, wie ihr euren Beitrag dazu leisten könnt, dann solltet ihr dort mal vorbei schauen.

Installation von StatusNet 1.1.0 bei domaingo

Heute habe ich versucht, StatusNet auf meiner eigenen Domain zu installieren. Damit will ich mich weiter unabhängig von den großen Diensten wie Facebook, Twitter und Google+ machen. StatusNet ist eine Mikroblogging-Software, mit der man Statusupdates veröffentlichen kann – aber die Software ist Open Source und steht unter einer GNU Affero General Public License. Damit treffen alle Kriterien zu, die ich für eine Befreiung des Internet anlege.

Zur Installation von StatusNet braucht man einen eigenen Webspace mit PHP und MySQL. Das ist bei meinem Webhoster domaingo vorhanden. Ich hab also StatusNet entpackt und anschliessend den Installer aufgerufen. Die Installation selbst ist länglich beschrieben. Aber es gab ein kleines Problem: Der Installer meldete immer

Database error: DB Error: unknown option ssl

Erst war ich etwas ratlos, aber nach ein paar Minuten Recherche im Netz war mir klar, dass dieser Fehler irgendwas mit PHP pear zu tun haben musste. Das Forum von StatusNet selbst ist wenig hilfreich. Die meisten Threads sind unerträglich zu lesen und verlaufen nach wenigen Antworten im Sand. Irgendwann bin ich im Forum von domainfactory auf einen alten Thread gestossen, der auch wieder auf pear verwies. Ich habe mich also per SSH auf meinem Webspace eingeloggt (mein Tarif erlaubt das) und mit folgenden Kommandos im Installationsverzeichnis von StatusNet meine Konfiguration aktualisiert:

wget http://pear.php.net/go-pear.phar
php5.3.19 ./go-pear.phar

Alle Fragen, die mir bei der Ausführung des Skripts go-pear.php gestellt wurden, habe ich mit dem vorgegebenen Standard beantwortet. Anschliessend hatte ich eine Datei php.ini mit folgendem Inhalt in meinem Verzeichnis:

;***** Added by go-pear
include_path="/kunden/MEINVERZEICHNIS/pear/share/pear:"
;*****

Damit war pear aktuell für mich verfügbar und die Installation von StatusNet lief erfolgreich durch. Die Seite war anschliessend bedienbar und ich hab mich gleich dran gemacht, ein eigenes Theme auf Basis von bootstrap zu erstellen. Wer sich das Ergebnis ansehen möchte, findet es unter https://kopis.de/statusnet/.

Steuerschlupflöcher schaden nicht nur dem Finanzamt

Wenn man sich diese Geschichte über eine Ölbohrplattform von Shell durchliest, wird einem
ganz anders. Shell hat die Ölbohrplattform anscheinend für eine Routineüberprüfung verlegen
wollen und sie während eines Unwetters auf Grund gesetzt. Jetzt vermutet also The Independent,
dass nicht die Überprüfung der Grund war, sondern dass der Konzern Steuern in Höhe von ca. 7M US$
sparen wollte…

Jetzt müssen sie die Evakuierungsmassnahmen und die Bergung bezahlen. Natürlich ist kein Öl
ausgetreten, es besteht kein Grund zur Beunruhigung, bitte gehen Sie weiter, es gibt nichts zu
sehen… (Ok, das war jetzt Fefe Modus.)

Wenn es solche Schlupflöcher in den Steuergesetzen für Konzerne gibt, dann ist irgendwas falsch
gelaufen. 🙁

Was war los auf dem 29c3?

Ich war ja letzte Woche auf dem 29c3 und hab die Tage da sehr genossen. Die Vorträge
waren super, die Organisation einwandfrei und das CCH mit seinem 70er Charme ein
guter Ort für den Kongress.

Neben den netzpolitischen Themen gab es auch viel Technik, eine Einführung in die
Weizenzüchtung
, eine schlaue Haushaltshilfe, Quadrokopterdrohnen im Eigenbau
und z.B. in den Lightning Talks (sehr schönes Format übrigens, sowas würde ich in
der Firma ja auch gern mal einführen…) einiges mehr. Ihr seht, das Programm war breit
aufgestellt und mit den ganzen Hackerspaces auf den Gängen und den Workshops hat bestimmt
jeder seine Nische gefunden.

Neben den ganzen Themen muss ich hier unbedingt noch 2 Sachen erwähnen, die man durch
Freiwillige organisiert wohl nur auf wenigen Veranstaltungen sieht:

  • ein DECT- und GSM-Netz
  • eine Live-Übersetzung der deutschen Vorträge

Erstes dient der Kommunikation auf dem Kongress (darum geht’s ja schiesslich), in dem
die Hacker sich eine Telefonnummer für die Tage im CCH besorgt haben und so Kontakte
herzustellen. Alles von Hackern für Hacker organisiert.

Zweites kann ich eigentlich kaum glauben: Unter den Hackern gibt es anscheinend nicht
wenige Linguisten und mit einem Telefon bzw. in den Livestreams konnte man als
Fremdsprachler die deutschen Talks zumindest in Englisch mitverfolgen. Und überhaupt:
Konnte an keinen Platz mehr im sehr, sehr kleinen Saal 6 ergattern (z.B. beim hervorragenden
Talk on Jacob Appelbaum und Roger Dingledine über die verschiedensten Teile des
Tor-Projektes), konnte man sich auf dem Lieblingsgadget der Laptop den Livestream ansehen.
Und nach 24h lagen bereits die torrents auf dem mirror

Natürlich gab es auch negative Stimmen. Wie Constanze Kurz schon sagte: die hälfte sagt:
zu wenig technik. die andere hälfte sagt: zu wenig netzpolitik. die andere hälfte sagt: zu wenig
hacking.
Auffällig für mich war jedenfalls die ganze Diskussion und Aufregung um die
Creepercards. Ich hätte ja gedacht, alle Teilnehmer sind Hacker. Egal welchen
Geschlechts. Ich wäre gar nicht auf die Idee gekommen, dass das Geschlecht einen Unterschied
macht. Aber vielleicht bin ich da nicht ganz auf dem Laufenden…

Mir hat der Kongress jedenfalls gefallen. Ich denke, ich bin niemandem auf die Nerven gegangen.
Mit hat die Themenauswahl gefallen. Ich fand die Organisation großartig. Und ich kann
jedem nur empfehlen, den Kongress nächstes Jahr zu besuchen.

Nützliche Extensions für Google Chrome

Zur Feier des neuen Jahres will ich hier eine Liste mit nützlichen Extensions für Google Chrome
aufstellen. Die meisten davon dienen dem Schutz der Privatsphäre, aber es gibt auch noch ein paar
nützliche Tools. Ich setze diese Extensions selbst in meinem Browser ein.

  • Adblock Plus, entfernt lästige Werbung
  • Ghostery, entfernt lästige Tracking-Scripts und andere Tools, die gern von der Werbeindustrie genutzt werden, um euch überall zu identifizieren und ein Profil aufzubauen
  • HTTPS Everywhere, verwendet immer die HTTPS-verschlüsselte Verbindung zu einer Seite, wenn diese Möglichkeit besteht
  • NotScripts, blockiert Javascript und verhindert ein paar der üblichen Angriffe (ich benutze es im Modus BLOCKLIST)
  • Personal Blocklist, entfernt nervige Webseiten aus den Google-Suchergebnissen. Tschüss, idealo & co.
  • Pocket, speichert Artikel für den späteren Zugriff. Nutze ich oft, um unterwegs die Artikel zu lesen und nicht mit den Webseiten kämpfen zu müssen.

Welche Extensions nutzt ihr?