RPi-Projekt Twitternde Webcam Teil 1: Der Raspi macht Bilder

Vor einiger Zeit habe ich mal einen Tweet gelesen, ich habe ihn auf die Schnelle nicht wieder gefunden. Er ging ungefähr so: "Neue tolle Projektidee für den Raspberry Pi, Hardware bestellt, nie wieder angefasst." Auch bei mir liegen mittlerweile zwei Raspis herum, werden ab und an mal gestartet und mit einer anderen Distro bespielt, aber das wars dann auch schon.

Jetzt hatte ich nach Ostern ein paar Tage Urlaub und war in Bastellaune. Da kam mir die Idee, mit dem etwas ältern RPi Modell B und einer hier ebenfalls schon etwas angestaubten Webcam von Logitech eine Webcam aufzubauen, die ihre Bilder dann auch twittern kann. Eigentlich kein großes Ding, also hab ich mich mal daran gesetzt und das Ergebnis dokumentiere ich hier in dieser kleinen Artikelreihe.

Artikelübersicht

Teil 1: Der Raspi macht Bilder

Wie gesagt nehme ich für das Projekt einen Raspberry Pi Modell B und eine Logitech Webcam.

Raspberry Pi und Webcam

Als Betriebssystem habe ich zunächst das akutelle Raspbian-Image auf https://www.raspberrypi.org/downloads/ gezogen und auf die obligatorische SD-Karte übertragen. Das neue Image bootet automatisch in den grafischen Modus. Das ist für den späteren Betrieb unnötig. Im Terminal habe ich also zunächst mit

sudo raspi-config

die Konfiguration dahingehend geändert, dass der Raspi nur noch in den Textmodus startet. Bei dieser gelegenheit wurde gleich noch die Sprache, Tastaturlayout und Zeitzone auf deutsche Verhältinisse angepasst.

Damit bin ich auch schon bereit, den ersten Schritt anzugehen, nämlich mit der Logitech Kamera Bilder auf dem Raspi zu produzieren. Die Kamera wurde dazu an einen der beiden USB-Ports angeschlossen. Eine Softwarepaket, dass einfach Bilder mit einer Webcam erzeugt, war mit "fswebcam" schnell gefunden. Das Paket wird einfach mit

sudo apt-get install fswebcam

installiert. Die Nutzung ist denkbar einfach:

fswebcam image.jpg

sucht nach der ersten angeschlossenen USB-Kamera und mach ein Bild, das unter dem angegebenen Dateinamen abgespeichert wird. Dabei wird eine Default-Auflösung von 384x288 genutzt. Die Auflösung kann man über den Parameter "-r" ändern, so erstellt

fswebcam -r 800x600 image.jpg

ein solches Bild:

Raspberry Testbild

Wie man sieht, fügt fswebcam dem Bild automatisch ein Banner mit dem aktuellen Datum und der Uhrzeit hinzu (wie bei Webcams durchaus üblich). Dies kann man über den Parameter "--no-banner" aber auch ausschalten. fswebcam hat noch einige Parameter mehr zu bieten, diese kann man sich über die Manpage des Pakets zu Gemüte führen. Ich benötige zunächst nur die oben angegebene Variante für meine Zwecke.

Da das Aufnehmen von Bildern über die Webcam jetzt funktioniert, können wir uns im nächsten Teil der Artikelreihe damit befassen, dem Raspi das Twittern beizubringen.

Debian: Aus Iceweasel wird wieder Firefox

Die Linuxdistribution Debian führte den beliebten Internetbrowser Firefox bisher aus lizenztechnischen Gründen unter einem eigenen Fork mit dem Namen Iceweasel. Aufgrund der Updatepolitik von Debian wurde der Browser in den Paketquellen der stabilen Version auch nicht mehr auf höhere Majorversionen upgedatet. Debiannutzer, die eine Iceweasel-Version nutzen wollten, die der aktuellen Firefox-Version entsprach, mussten sich mit sogenannten Backports behelfen. Dazu ist die Seite http://mozilla.debian.net die Anlaufstelle. Dort erhielt man bisher nach Eingabe der genutzten Debian-Version und der gewünschten Variante von Iceweasel die Angabe der Paketquellen, die in die /etc/apt/sources.list eingetragen werden musste.

Seit einiger Zeit erzeugt die bisher funktionierende Backports-Adresse für Iceweasel allerdings bei Update einen Fehler. Der Grund hierfür ist, dass die Backports jetzt auf den originalen Firefox umgestellt wurden.

Aus meiner bisher unter Debian Jessie genutzen Paketquelle

deb http://mozilla.debian.net/ jessie-backports iceweasel-release

wird jetzt

deb http://mozilla.debian.net/ jessie-backports firefox-release

Nach der Umstellung kann ich dann mit

$ apt-get update
$ apt-get install -t jessie-backports firefox firefox-l10n-de

die aktuelle Firefox-Version samt deutscher Sprachpakete installieren.

Die nun nicht mehr aktuellen Iceweasel-Pakete habe ich noch mit

$ apt-get remove iceweasel

deinstalliert.

Wer weiter Iceweasel nutzen möchte, kann bis zur aktuellen Stable von Debian die originalen Pakete der Distribution nutzen. Dort wird die ESR38 von Iceweasel noch weiter gepflegt. Einen älteren Backport von Iceweasel weiter zu nutzen ist nicht unbedingt empfehlenswert, da hier natürlich keine Fehler und Sicherheitslücken mehr gefixt werden.

Twitter Client Oysttyer mit kleinem Update

Vor kurzem berichtete ich über den Twitter Client Oysttyer, der aus einem einzelnen Perl-Skript besteht und das Twittern auf einer Textkonsole ermöglicht.

Jetzt gab es ein kleines Update, dass einige Verbesserungen und Fehlerbehebungen mitbringt.

Changes in version 2.6.1:

  • Add the ability to share tweets via direct message with the /qdm command (Work towards of 2.7 milestone)
  • Use the Twitter account in the prompt instead of oysttyer when showusername is true.
  • Add ':large' to Twitter image URLs when largeimages is true.
  • Add a space between tweets when doublespace is true.
  • Fixed an issue where retweeted tweets displayed the wrong timestamp.
  • Fixed an issue where tco were not destroyed in threads
  • Display link to video file instead of link to video thumbnail in tweets
  • Display video files in /entities
  • Bring /entities back into Twitter TOS compliance and make it only open tco links (I.e. make it behave worse. Sorry)
  • Add tab expansion for like and retweet (missed from 2.5.1)

Interessant finde ich besonders den neuen Parameter "doublespace", der eine Leerzeile zwischen die einzelnen Tweets zaubert. Das macht den Stream nach meiner Meinung besser lesbar.

So sieht der Stream ohne "doublespace" aus:

oysttyer ohne ds

Und so mit:

oysttyer mit ds

Mir gefällt das so wesentlich besser, weshalb meine .oysttyerrc jetzt so aussieht:

# Die Daten für meine erstellte Twitter-App
oauthkey=XXXXX
oauthsecret=XXXXXX
# Farbe für ansifähige Terminals einschalten
ansi=1
# Neue Zeilen in Tweets erlauben
newline=1
# Nach 120 Zeichen umbrechen (je nach Bildschirmgröße verwenden)
wrap=120
# Pflicht, sonst geht die Twitter-API nicht
ssl=1
# Nutzung des Echtzeit-Streamings
dostream=1
# Beim Start auf neue Version prüfen
vcheck=1
# Leerzeile zwischen den Tweets
doublespace=1

Ich bin gespannt, was die nächsten Versionen von Oysttyer noch so bringen. Zum Updaten wird einfach die aktuelle Version von Github gezogen und die oysttyer.pl mit der neuen Datei überschrieben.