Posts by dilbert1981

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
    Quote from sdvg pid=6944 dateline=1362262030


    Interessantes Projekt!


    Das Kindle hat doch auch einen integrierten Browser.
    Wäre es nicht möglich, den Kalender in diesem Browser anzuzeigen?
    Auch den Refresh könntest du dann einfach über JavaScript realisieren.


    Grundsätzlich schon. Der Browser hat aber leider keinen Fullscreen-Modus.

    Die PHP-Kenntnisse sind nicht das Problem. Ich brauche aber so Dinge wie Textumbruch am Zeilenende, Tabellen, Rahmen und Formatvorlagen. Also eigentlich alles, was HTML von Haus aus kann. Da macht es wenig Sinn, das über die PHP-Grafik-Bibliothek zu lösen.


    Der Kindle kann PNG-Dateien im Vollbild darstellen, weil er eine Testbild-Funktion hat, die sich nach dem Jailbreak entsprechend nutzen lässt. Per cron wird zu bestimmten Zeiten das WLAN aktiviert, die PNG-Datei per wget vom Raspberry runtergeladen, WLAN wieder deaktiviert und der Bildschirmtest mit der heruntergeladenen Datei aufgerufen. Das Ganze funktioniert also nur nach dem PULL-Prinzip. Wahrscheinlich könnte man (für andere Anwendungen als meinen Kalender) eine Refresh-Rate von bis runter zu 10 Sekunden erreichen. Weniger macht aber schon allein wegen des E-Ink-Displays keinen Spaß.


    Gut ist, dass der Raspberry nicht zusammen mit dem Kindle an der Wand hängen muss, sondern im Arbeitszimmer beim Router liegt. Außerdem ist das meines Wissens nach die einzige Möglichkeit, grafische Inhalte vom Raspberry auf dem Kindle anzeigen zu lassen. Bei der Geschichte mit ner SSH-Session hat man ja lediglich einen Konsolen-Zugang.

    Ich habe mir jetzt einmal einige Gedanken zur Darstellung des Kalenders auf dem Kindle gemacht und einige Entwürfe erstellt. Dabei zeigt sich schnell, dass eine gute Kalenderansicht gar nicht so leicht umzusetzen ist und doch eine Menge an Hirnschmalz erfordert. Mir steht eine Auflösung von 600x800 Pixeln zur Verfügung, was eigentlich nicht schlecht ist.


    Die einfachste Variante wäre eine simple Listenansicht in einer Tagesagenda. Unter dem Wochentag und Datum werden zunächst die Ganztagstermine wie Geburtstage, Feiertage oder Urlaube angezeigt. Darunter kommen dann einfach hintereinander alle Termine mit Uhrzeit und einem Icon der jeweiligen Person bzw. des Quellkalenders.



    Leider muss man hier schon genau hinschauen, um zu sehen dass alle drei Familienmitglieder gleichzeitig einen Termin haben und somit niemand auf's Kind aufpassen kann. Deswegen habe ich es mit einer herkömmlichen Tagesansicht versucht, bei der ich allerdings freie Zeiten ausgeblendet Habe, um Platz auf dem Screen zu sparen:



    Wie man sieht, bekomme ich so nur zwei Paralleltermine auf den Bildschirm. Ich habe relativ viel herumprobiert aber mit Zeitleiste und Icons (ich weiß, dass da trotzdem noch ein Bisschen Platz ist) krieg ich keine drei Spalten für Termine unter. Außerdem ist die Zeit-Information letztlich redundant, was ich auch nicht so optimal finde. Meine nächste Variante ist eine sehr ähnliche Darstellung, nur ohne den Kalender. Ich lasse also die Zeitskala weg und schon habe ich mehr Platz für die Termine:



    Dabei mache ich mir zu Nutze, dass der Betrachter ohnehin ein chronologisch sortiertes Kalenderblatt als mentales Modell hat. Er kann sich die Skala denken und weiß allein durch die Position der Terminfelder, in welcher Beziehung die Termine zu einander stehen. Es ist meinem Entwurf geschuldet, dass die Proportionen hier nicht ganz stimmen. Das Prinzip sollte aber klar werden. Diese Darstellung hat aber immer noch einen großen Haken. Sie lässt sich nicht generisch auf beliebig viele gleichzeitige Termine anwenden. Mehr als drei sind nicht drin und rein theoretisch könnte es vier oder mehr geben. Deswegen habe ich versucht, die einfache Liste aus dem ersten Entwurf mit diesem zu kombinieren:



    Hier werden Überschneidungen durch Gruppierung dargestellt und der zeitliche Versatz der Termine durch eine Einrückung vorne oder hinten. Die Darstellung ist recht leicht zu implementieren, weil sie keine Anordnung in Spalten benötigt. Sie lässt außerdem viel Platz für längere Terminbeschreibungen, wie z.B. den Ort.


    Ein Problem ist allerdings, dass es in der ersten Version keine Möglichkeit zur Navigation gibt und man somit weder scrollen, noch blättern kann. Es muss also immer alles wichtige auf einer Seite sichtbar sein. Eine Möglichkeit wäre, die Schriftgröße und Abstände in einem gewissen Rahmen dynamisch zu verkleinern, wenn mehr Termine angezeigt werden müssen. Aber auch das stößt schnell an Grenzen. Deswegen will ich mir eine Logik überlegen, nach der weniger wichtige Informationen schrittweise ausgeblendet werden können.


    Bleibt die Frage, wie man von den Rohdaten zu so einer PNG-Grafik für den Kindle kommt. Anders als Matthew Petroff mit seiner Wetterstation (siehe voriges Post) kommt für mich der Weg über einen SVG-Vektor nicht in Frage. Matthew muss nur ein paar Werte und Bilder in Platzhalter einfügen. Mein Kalender erfordert einiges an Layout, inklusive Zeilenumbrüchen und so weiter. Ein HTML-File wäre als Grundlage für die Ausgabe nicht schlecht. Weil ich mit Symfony arbeite, habe ja bereits ein starkes Templating-Werkzeug. Ich werde mich in den nächsten Tagen also mit der Möglichkeit, HTML in PNG zu konvertieren. Im ersten Anlauf bin ich auf Webkit2PNG (http://www.paulhammond.org/webkit2png/) gestoßen.

    So, nachdem ich heute mal wieder auf mein Projekt aufmerksam gemacht wurde, will ich hier kurz einen Zwischenstand wiedergeben.


    In letzter Zeit habe ich mich neben der Server-Seite besonders mit der Display-Problematik beschäftigt. In Frage kamen verschiedene Display-Typen mit verschiedenen Vor- und Nachteilen, die ich einmal Stichpunktartig zusammenfasse.


    TFT-Computer-Bildschirm:
    + relativ günstig in der Anschaffung
    + fertige Wandbefestigungen verfügbar
    + großes Format
    + hohe Auflösung
    + sehr einfache Ansteuerung über HDMI
    - verbraucht viel Strom bei ständigem Betrieb
    - leuchtet, was im Wohnraum nicht besonders gut ausschaut


    Flipdot-Matrix:
    + ist ein echter Hingucker
    + verbraucht nur beim Refresh Strom
    - nur sehr geringe Auflösung möglich
    - schlechte Textdarstellung bei geringem Abstand des Betrachters
    - ggf. Lautstärke beim Refresh
    - Anschaffungskosten deutlich über der 3000 EUR Marke
    - komplizierte Ansteuerung


    LED-Matrix:
    + schaut gut aus, obwohl es leuchtet
    + relativ geringer Stromverbrauch
    - geringe Auflösung aber besser als Flipdot-Matrix
    - Anschaffungskosten um die 200-300 EUR (inkl. Steuertechnik)
    - komplizierte Ansteuerung


    Kindle (in dieser Variante http://www.mpetroff.net/archiv…kindle-weather-display/):
    + gute Auflösung
    + leuchtet nicht
    + sehr gute Lesbarkeit
    + kompakte Bauform
    + relativ leichte Ansteuerung
    + geringer Stromverbrauch bei seltenen Refreshs (jedenfalls, wenn man das WLAN zwischendrin deaktiviert)
    + niedrige Anschaffungskosten
    + auch mehrere Displays möglich
    - relativ kleines Format, lieber wäre mir DIN A4 oder DIN A3


    Wie ihr wohl ahnen könnt, verfolge ich nur die Variante mit dem Kindle weiter. Damit ich nicht den Kindle meiner Frau Jailbreaken muss (was sie mir verbieten wird), schaue ich jetzt nach einem gebrauchten Kindle oder bestelle mir einen neuen.

    Das liegt wohl daran, dass "normale" Beamer mittlerweile so günstig sind, dass sich die Fertigung von reinen Text-Projektoren nicht lohnt. Je nach Größe der Anzeige bekommst du schon für 70 EUR (http://www.pearl.de/a-PX1217-1020.shtml ) einen kleinen LED-Beamer, der natürlich auch Text anzeigen kann. Wenn du nur Text darstellen willst, können dir die meisten Schwachstellen dieser Billigstbeamer (schlechte Farbwiedergabe, ungleichmäßige Helligkeit) eigentlich egal sein.

    Die Flip-Dots scheiden aus ökonomischen Gründen aus. Ein Panel kostet über 400 EUR. In der Summe käme ich also selbst in einer stark abgespeckten Variante mindestens auf 3500 EUR. Dafür kann ich nicht nur jedes Familienmitglied, sondern auch jeden Raum einschließlich Klo und Keller mit einem Nexus 7-Tablet samt Wandhalterung ausstatten und dort eine Kalender-App laufen lassen. Wenn mir jetzt also nicht zufällig ein gebrauchtes Panel unter kommt, werde ich wohl auf eine E-Paper-Lösung (ggf. tatsächlich mit 1-2 Kindles) zurückgreifen.


    Die Lautstärke hätte mich nicht abgeschreckt. Zum einen ist das nicht die laute Mechanik, die man von den Flip-Anzeigen am Flughafen kennt (ich habe gestern irgendwo im Netz ein Video gesehen, da war die Geräuschentwicklung der Flip-Dots sehr human) und zum anderen würde sich der Kalender nur 1-2mal am Tag updaten. Die Sache mit der Pixelgröße hat mich auch beschäftigt. Deswegen habe ich mir mal ein paar Text-Schnipsel in Originalgröße in einer Matrix-Schrift ausgedruckt und an die Wand gehängt. Es wäre lesbar gewesen.


    So, jetzt mal mein Projektplan:

    • RPi bestellen (erledigt)
    • Distribustion aufspielen und ausprobieren. Mit dem System vertraut machen (erledigt)
    • LAMP installieren. Mache ich heute und morgen fertig.
    • In Symfony2 einarbeiten. Jetzt mag man mich fragen, ob ein Framework für den Abruf einiger URLs, das Speichern in der Datenbank und die Ausgabe von 3-4 verschiedenen Ansichten nicht ein wenig übertrieben ist. Nein, ist es nicht. Außerdem ist dieses Projekt eine gute Gelegenheit, einmal in die aktuelle Symfony-Version hinein zu schnuppern.
    • CalerndarAggregator-Plugin erstellen.
    • Model planen, Migrationen schreiben.
    • Import-Filter für verschiedene Kalender-Formate suchen, ggf. eigene schreiben.
    • Import-Task erstellen.
    • View für TFT-Bildschirmausgabe erstellen (simple HTML-Ausgabe für Browser im Vollbildmodus).
    • DIsplay (E-Paper, LED-Matrix, whatever) bestellen und mit der Ansteuerung vertraut machen,
    • View für Ausgabe auf dem endgültigen Display erstellen.
    • Gehäuse basteln, montieren
    • ggf. Software-Package erstellen und veröffentlichen

    Vielen Dank für die sehr hilfreichen Tipps!


    Ich habe mich jetzt noch ein wenig mit den Flip-Dot-Panels beschäftigt. Der Hersteller bietet Module mit 14x28 Pixeln (Pixelgröße 8,9mm) mit den Maßen 142x288,4mm an. Bei 5 Reihen mit je 4 Modulen käme ich also auf eine Gesamtgröße von 115,36x71cm, was so in etwa meiner Wunschgröße entspricht. Das Display hätte eine Auflösung von 70x112 Pixeln. Wenn wir jetzt mal von reiner Textdarstellung mit fester Laufweite ausgehen, könnte man so im Hochformat maximal 14 Zeilen mit je 11 Zeichen darstellen. Das sähe dann in etwa so aus:
    [font="Courier New"]
    Mo 14:30 P
    Treffen im
    Café
    Bernstein
    -----------
    Mo 18:00 P
    Chorprobe
    -----------
    Di 09:00 M
    Daily Scrum
    -----------
    Di 19:00 A
    gemeinsames
    Abendessen
    [/font]


    Das Querformat ist hier wahrscheinlich sinnvoller. Damit kämen wir auf 8 Zeilen mit je 18 Zeichen:
    [font="Courier New"]
    Mo 14:30 Mama
    Treffen im Café...
    ------------------
    Mo 18:00 Papa
    Chorprobe
    ------------------
    Di 9:00 Mama
    Daily Scrum
    [/font]


    Mit ein wenig Rumgewurschtel bei den Trennlinien könnte man hier sogar Platz für zwei weitere Zeilen rausholen. Jetzt bleibt allerdings die Frage, wieviel mich 20 dieser Panels kosten würden. Ich versuche mal, das herauszufinden.


    Eine Alternative wären wirklich 2 oder 3 E-Paper-Displays mit je 10" im Querformat untereinander. 50x22cm sind für eine Anzeige mit 1280x3072 Pixel schon eine respektable Größe und als Wandkalender allemal groß genug, um auch im Vorbeigehen einen Überblick zu erhalten. Die Flip-Dots finde ich allerdings optisch um einiges spannender.
    Selbstleuchtende Anzeigen, wie ein LED-Display würde ich allerdings für die Endversion ausschließen, weil ich es im Wohnbereich doch als störend empfinde, wenn einem ständig etwas entgegen strahlt.


    An die Ansteuerung des Displays will ich jetzt noch garnicht denken. Die Linux- und PHP-Seite dürfte kein Problem sein aber mit der Ansteuerung von Elektronikkomponenten hatte ich bislang absolut nichts am Hut. Das ist allerdings auch der Reiz an diesem Projekt.

    Meine aktuelle Projektidee ist ein elektronischer Familienkalender für unseren Wohnungsflur. Im Prinzip soll das wie folgt ablaufen:


    Der RPi ruft in regelmäßigen Abständen die Online-Kalender von meiner Frau, unserem Sohn und mir ab. Die Daten werden in einer Datenbank gespeichert, aggregiert und auf einer Anzeige ausgegeben. Bonus-Feature wären ein oder zwei Taster, mit denen man zwischen verschiedenen Anzeigevarianten (Tagesjournal, 2-Tages-Ansicht, ToDo-Liste) umschalten kann.


    Derzeit steht für mich die Frage im Raum, welche Art der Anzeige sich für mein Vorhaben eignet. Der Kalender soll dauerhaft Sichtbar sein, damit man auch im Vorbeigehen schnell mal sieht, was so ansteht. Ein TFT-Display halte ich für einen ziemlichen Stromfresser, wenn es bis zu 24 Stunden am Tag laufen soll. Außerdem werde ich von meiner Frau kaum die Zustimmung dafür bekommen, unseren Flur mit so einem Teil zu "verschönern". Mein Favorit wäre ein bistabiles Display, also entweder eine Form von E-Paper oder ein Flip-Dot-Display. Bei beiden habe ich ein relatives Beschaffungsproblem, weil die Dinger offenbar nicht über die gängigen Internet-Shops vertrieben werden. E-Paper scheint es außerdem nur in relativ kleinen Größen zu geben. Mir wäre da eine Anzeige in der Größe von ca. 120x80cm ganz recht.


    Jetzt werde ich einen Hersteller dieser Flip-Dot-Anzeigen (http://www.flipdots.com) einmal anschreiben und fragen, was die Dinger so kosten. Vielleicht probiere ich das Ganze dann auch erst einmal mit günstigen LED-Matrix-Bausteinen aus und entscheide dann, welches Display ich am Ende verwende.


    Für Tipps und Fragen bin ich mehr als offen. Schreibt mir einfach, was ihr zu meinem Projekt denkt. Ich werde hier über meine Fortschritte berichten.