Halloween-Spaß mit flammendem Auge


Sein Blick durchbohrt Wolken, Schatten, Erde und Fleisch! Du weißt, wovon ich spreche. Ein großes Auge, lidlos, umrandet von Flammen.
Den Herr der Ringe und das flammende Auge von Sauron kennt vermutlich jeder. Und wer dieses Jahr an Halloween unbedarft an des Cypax' Hütte vorbei ging, durfte den durchdringenden Blick des dunklen Herrschers von Mordor auch mal persönlich kennenlernen:
Sauron sieht alles!
Ok, also wie kommt es, dass Sauron auf meiner Regentonne hockt und kleine Kinder verschreckt? Das fing alles mit einem Abend am PC, einer Pizza und ziellosem Browsen in den Tiefen des Internets an, wo ich auf das hier stieß:
Gakken Worldeye
Bild © by Gakken Educational Co., Ltd.
Ja, genau - das ist ein digitaler Globus! Mehr Infos zu dem Gerät z.B. hier auf Youtube. Ich habe ein riesen Faible für ausgefallene Displays, also musste ich den einfach haben. Und es kommt sogar noch besser: er hat einen HDMI-Eingang!!! Zusammen mit einem Raspberry Pi lässt sich dann allerhand cooles Zeug anstellen:
OH YESSSS!
Link zum Video
Und weil das natürlich zum Tüfteln geradezu einlädt, habe ich das Python-Skript noch etwas erweitert und um OpenCV zur Erkennung von Bewegungen im Bild einer angeschlossenen Kamera ergänzt. Herausgekommen ist letztlich das Auge von Sauron, welches auf der Regentonne montiert an Halloween für das richtige Ambiente sorgt:
Das Auge von Sauron thront auf dem Turm von Barad-dûr unserer Regentonne.
Link zum Video
Leider war es dann so dunkel, dass die Kamera des Raspberry Pi fast nichts gesehen hat und das Auge folglich nicht auf Bewegungen reagieren konnte. Somit hat Sauron dann eben nur vorbeifahrende Autos angeblafft. Aber es für etwas Halloweeen-Ambiente reicht das so auch. Mal sehen, was ich nächstes Jahr zu Halloween daraus mache. Vielleicht einen Horror-Kürbis oder so ...

• Gakken Worldeye Digital Globe Projector • Kostet ca. 160 € über eBay + Versand und Zoll bei Bestellung aus Japan (Stand 10/2017) • Technische Infos: hier • Tutorial Raspberry Pi + Worldeye = Animated eye • Tutorial Raspberry Pi3 + OpenCV • Noch ein Tutorial Raspberry Pi3 + OpenCV • Mein Pi_Eyes repository auf GitHub mit Erweiterung für animierte Iris und OpenCV Und für die Sprüche von Sauron lädt man sich Shadow of Mordor über Steam runter (~ 42 GB), entpackt die Sounddateien mit dem Ravioli-Game-Tool (ja, das heißt wirklich so), hört sich die 14190(!) Wave-Dateien durch und kopiert sich was man braucht. Da die Dateien urheberrechtlich geschützt sind, sollte das naheliegenderweise ausschließlich für private Zwecke geschehen.


Irrationales Programmieren mit QML

Ich habe Qt5 auf dem Raspberry Pi 2 kompiliert und installiert. Das war zwar ein bisschen umständlich, lief bis jetzt eigentlich ohne unüberwindbare Probleme. Aber jetzt hol' ich gleich die Kettensäge und geb' dem Drecksteil den Rest! Den Code des Küchencomputers portiere ich derzeit auf Qt5 und QtQuick 2.4 und mache ihn unabhängig von Plattform und Auflösung. Er läuft inzwischen gleichermaßen problemlos auf Windows 7 wie auf Debian Wheezy mit LXDE. Nur auf dem Raspberry nicht. Da werden manche Texte nicht angezeigt und das Layout ist verschoben. Und QML wirft mir unzählige Fehlermeldungen entgegen - allen gemein ist, dass sie mit string-Properties zu tun haben. Also habe ich in den letzten Stunden ein Minimalprojekt angelegt um das Problem nachzustellen, einzukreisen und dann eine passende Lösung zu entwickeln. So was kostet Zeit, funktioniert aber immer. Nur hier nicht. Dieser Mistcode bringt mich noch um den Verstand: import QtQuick 2.4 import QtQuick.Window 2.2 Window { id: myWindow width: 400 height: 200 visible: true Text { id: myText text: "12" } Text { x: 30 text: myText.text Component.onCompleted: { myText.text = "99" } } } Das funktioniert genau so, wie es soll. Wenn man aber "99" durch "34" ersetzt, bleibt der zweite Text leer und QML meldet Unable to assign [undefined] to QString in der Zeile text: myText.text. Allerdings nur auf dem Raspberry. Unter Windows und einem x86-Linux macht es, was es soll. Was zur Hölle soll das? Warum gerade "34"?? Warum nicht z.B. "42"??? Nerv! Ich spiele schon mit dem Gedanken wieder zurück auf Qt4.8 zu portieren ...

SD-Karte aus virtueller Maschine auslesen

Ich hatte hier gerade das Problem, die Partitionen einer SD-Karte für den Raspberry Pi auslesen zu wollen, hatte aber kein natives Linux zur Hand, sondern nur ein Windows-Notebook. Windows erkennt die verschiedenen Linux-Partitionen leider nicht und zeigt bestenfalls die Boot-Partition der Raspberry-Karte an. Glücklicherweise hatte ich hier aber noch ein Debian in einer VirtualBox. Die Idee war also, aus der VM auf die SD-Karte des Windows-Hostsystems zuzugreifen. Allerdings wird der SD-Kartenleser bei diesem Notebook nicht über USB angebunden - die VirtualBox-Gasterweiterungen helfen hier also rein gar nix. Die Lösung war, eine virtuelle Festplatte zu erstellen, welche auf die SD-Karte verlinkt. Anleitung: VirtualBox direct access to SD Card in Windows Danach muss man nur noch die Partitionen der Karte irgendwohin mounten - z.B. mount /dev/sbd1 /tmp/sdb1 mount /dev/sdb2 /tmp/sdb2