C-Berry28

Hardware
Für den Kleinrechner Raspberry Pi gibt es inzwischen eine Fülle von Zusatzmodulen. Ebenso kleine Bildschirme und Touchscreens. Diese sind aber häufig mindestens genauso teuer wie externe Monitore und damit aus meiner Sicht relativ uninteressant. Eine Ausnahme stellt der C-Berry 28 (Shopping-Link, Datenblatt) dar. Das ist ein TFT LCD Modul mit LED-Backlight mit der sensationellen Größe von 2,8 Zoll Bildschirmdiagonale. Die Auflösung beträgt 320x240 Pixel, womit klar ist, dass sich damit eher Status-Anzeigen realisieren lassen als sonst irgend etwas anderes. Mit ca. 15€ ist die Anschaffung dafür auch sehr günstig. Das Modul wird "nackt" geliefert, also nur auf Platine aufgelötet und mit eine Stecksockelleiste, die direkt auf den Raspberry passt. Damit ist dann die Montage in 20 Sekunden erledigt.
Als Nachteil muss auch gelten, dass die GPIO Leiste damit für andere Anwendungen blockiert ist. Außerdem ist das Display relativ träge und extrem blickwinkelabhängig. Aber dazu später mehr.

Software
Wie wird das Ganze nun angesteuert? Dazu gibt es die Controller-Library BCM2835, die zunächst installiert sein muss. Danach wird es leider etwas komplizierter. Auf den oben verlinkten Seiten gibt es ein kleines Software-Paket, in dem ein paar Beispielprogramme (C) verfügbar sind. Damit kann man im wesentlichen ein Bitmap an das Display schicken, außerdem existieren einige Zeichenfunktionen. Es gibt auch ein Beispiel, wie der X-Window Framebuffer auf das kleine Format kopiert wird, wobei sich mir dabei der praktische Nutzen nicht erschließt.
Ich habe zunächst eine Spaßanwendung umgesetzt: Ein Script lädt einen zufälligen Begriff aus dem Wörterbuch des English-Dictionaries und verwendet diesen als Argument für eine Google-Bildersuche. Dazu hatte ich zunächst einfach wget verwendet, bis ich über das ziemlich praktische Script googliser gestolpert bin. Dort sind bereits alle notwendigen Funktionen implementiert. Wenn die Bilder heruntergeladen sind verwende ich das Shell-Tool "convert" des Bildbearbeitungstools "ImageMagick", um die Bilder nachzubearbeiten. Da der Pi bei mir hochkant an der Wand hängt werden sie um 90° gedreht, auf 240x320 skaliert und der Suchbegriff wird in die rechte obere Ecke gerendert. Die Bilder werden alle in einen Ausgabe-Ordner abgelegt.

Dort werden sie von einem von mir auf Basis der Beispiel-Anwendung erstellten Diashow-Programms ausgelesen und in zeitlicher Abfolge auf das Display geschickt. Das sorgt für unerwartete Eindrücke und hin und wieder eine Menge Heiterkeit.

Das von mir verwendete sehr simple Bash-Script:
#! /bin/bash
OUTDIR="/home/pi/StatusBerry/img/"
DLDIR="/home/pi/StatusBerry/download/"
query=$(shuf -n1 /usr/share/dict/words)
rm -f $OUTDIR/*
rm -f $DLDIR/*
./googliser.sh -p $query -a tall -u 80000 -n 20 --no-gallery --output $DLDIR
for FILENAME in $DLDIR*; do
# BASEFILENAME="${FILENAME%.*}"
BASEFILENAME=$(basename "$FILENAME" | cut -d. -f1)
# image resize, rotate, draw text und so weiter :)
# CBerry ist etwas empfindlich was die BMP Parameter angeht! (exakte Größe, BMP3, 24bit)
# echo $BASEFILENAME
convert $FILENAME -resize 240x320! -gravity NorthEast -pointsize 18 -draw "text 0,4 '$query'" -rotate 90 -depth 24 -compress None -type truecolor -units PixelsPerInch -density 72 "BMP3:$OUTDIR$BASEFILENAME.bmp"
done

Weiterhin
Im Grunde könnte jede Software-Lib herangezogen werden, mit der man in ein Bitmap rendern kann. Dies macht die Entwicklung dann doch wieder etwas flexibler. Damit ist am Ende nur noch ein "Blitter" notwendig, der das Bild an das Display schickt. Dafür kann man direkt das Beispielprogramm aus dem Software-Download verwenden. Um dem ganzen doch noch etwas mehr Sinn abzugewinnen, kann man natürlich auch vernünftige Bilder anzeigen. Zum Beispiel aktuelle Wetter- / Radarkarten des deutschen Wetterdienstes. Die aktuelle Lage für Baden-Württemberg ist z.B. hier abgebildet. Diese Bilder werden regelmäßig aktualisiert, so dass man ein Script per CRON-Job zyklische Downloads einer Liste machen lassen kann. Das könnte etwas so aussehen:
IMGDIR="/home/pi/StatusBerry/download/"
OUTDIR="/home/pi/StatusBerry/img/"
IMGURLLIST="/home/pi/StatusBerry/imgFileUrlList.txt"

if [ ! -d "$IMGDIR" ]
then
echo "Directory $IMGDIR not found.."
exit 1
fi

if [ ! -f "$IMGURLLIST" ]
then
echo "Text file $IMGURLLIST with image url's not found.."
exit 1
fi

cat "$IMGURLLIST" | while read ANURL
do
# download image
wget -N -U Mozilla --directory-prefix=$IMGDIR "$ANURL"
FILENAME=$(basename $ANURL)
BASEFILENAME="${FILENAME%.*}"
# image resize and stuff
convert $IMGDIR$FILENAME -resize 240x320! -rotate 90 -depth 24 -compress None -type truecolor -units PixelsPerInch -density 72 "BMP3:$OUTDIR$BASEFILENAME.bmp"

done

Ein tatsächlich sinnvoller Einsatz für das Modul ist m.E. in erster Linie dann gegeben, wenn der Raspberry ohne Monitor (und remote-logon Möglichkeit) z.B. zur Hardwaresteuerung eingesetzt wird und direkte Zustandsmeldungen notwendig sind. Man könnte sich z.B. eine Schließanlage vorstellen. Allerdings müsste dann die Peripherie anders angebunden sein. Oder doch direkt am Display: Einige Pins werden zwar durchgeschleift, man muss die weiterführenden Anschlüsse dann aber direkt anlöten. Wer soweit kommt schafft das aber auch noch. Als Fazit: Diese Hardware ist (noch) nicht 100% Endkunden-gerecht, das möchte sie aber möglicherweise auch gar nicht sein. Für mich jedenfalls eine interessante Baustelle.

Recent Posts

Work theatre in agile development

Manchmal liest man einen Text, in dem ein vages Gefühl, das man lange hatte gut formuliert und auf den Punkt gebracht wird. Auf einmal entsteht ein klarer Gedanke. So ging es mir mit dieser netten Kolumne: "Performative Work". Bei einem Kunden konnte ich das einmal in voller Pracht beobachten. Der Typ, der immer telefoniert. Die andere, die immer mit einem Stapel unter dem Arm irgendwohin unterwegs ist. So war das früher. Die schaffen was, das sieht man doch!

Heute sind es wie im Artikel beschrieben diejenigen, deren farbiger Präsenz-Buppel in der Teams-Liste nur zwischen grün und rot hin und herspringt und garantiert niemals gelb oder (Gott bewahre!) grau wird. Diejenigen, die immer die Meetings eröffnen. Die Aufgaben in möglichst winzige Teilaufgaben zerlegen, damit der Abarbeitungs-Fluss stattlicher wirkt. Hauptsache, das Ticket ist "erledigt", auch wenn man nur die Hintergrundfarbe einer Schaltfläche geändert hat.

Entscheidend ist dabei die Größe des Teams. In kleinen Teams, sagen wir, maximal 5 Personen, funktioniert es nicht, weil jeder weiß, was die anderen machen. Darüber hinaus verliert man den Überblick, egal wieviel Dailys es gibt. Da können die virtuellen Aktenköfferchen geschwungen werden. Und so vergeht ein merklicher Teil der Arbeitszeit in Meta-Arbeit, deren ausschließliche Aufgabe es ist, Arbeit auch nach Arbeit aussehen zu lassen. Jeder formuliert präzise sein Tagewerk, zeigt vollendete Tasks und benennt offene Zuarbeiten. Warum funktioniert das Projekt trotzdem nicht? Warum dauert alles immer viel zu lang? Es kann ja nur an denjenigen liegen, die im Daily nicht perfekt vorbereitet sind, deren Technik im Moment des Sprechens spinnt oder die deklarieren, mit einer Task nicht rechtzeitig fertiggeworden zu sein weil, äh,.. zu komplex (Höchststrafe).

Ich sehe einen organisatorischen Überbau in größeren Teams dabei nicht unbedingt negativ. Es ist notwendig dass jemand, der nicht aktiv bis ganz unten eingebunden ist einen Gesamtüberblick behält und Arbeit in kritischen Fällen umverteilen kann. Einer, der offene Fragen schnell aus dem Weg räumt. Kurios ist aber die Eigendynamik, die so etwas zwangsläufig zu erhalten scheint, sobald man diesen Prozeß formalisiert.

Es verhindert auch ein Vorarbeiten bei Unterbelastung. Warum schon Tickets aus dem nächsten Sprint angehen? Das hebt nur die Erwartung des Sprint Masters und man bekommt in der nächsten Iteration mehr zu tun. Das wiederum erhöht die Gefahr der Verfehlung des Sprint-Ziels, des Leistungsmaßstabs des Sprint Masters gegenüber seinen Vorgesetzten.
Bizarrerweise gibt dieser nun selbst dieses Ziel vor. Wird es verfehlt, ist er also doppelt unfähig: Weder kann er aus seinen Leuten die passende Leistung herausholen, noch ihre Möglichkeiten richtig einschätzen. Dementsprechend reagiert er in kritischen Situationen extrem dünnhäutig und ist inhaltlich von der korrekten Präsentation der jeweiligen Arbeitsabschnitte getrieben.

Diese Logik verfolgen auch die Mitarbeiter, die, an ihren abgeschlossenen Tasks gemessen, die Abarbeitung derselben perfektionieren. Seht her, liebe Kollegen, das alles ist seit gestern von "Active" über "Review" nach "Done" geflossen. Genial, oder? Wie in einer Simulation eines Arbeitsablaufs ohne Störungen. Eine Inszenierung. Performance. Performative Work!

  1. Entrümpelung Leave a reply
  2. Zeichen auf Bäumen Leave a reply
  3. Versuche mit FHEM Leave a reply
  4. Invertiert Leave a reply
  5. Windows network printing trouble Leave a reply
  6. The horrors of PHP Leave a reply
  7. 2-Faktor Brainwash Leave a reply
  8. All in 100 Leave a reply
  9. Thunderbird Kalender Termine Leave a reply