#Fenstergarten

Den Pflanzen beim Wachsen zusehen

100 Tage #FlattenTheCurve #StayAtHome

an APGW project // 2020
@apgw@bunt.social

Der Fenstergarten ist aus einem Aufruf der FH Bielefeld an Studierende des Fachbereich Gestaltung Ende März 2020 entstanden. Es sollten Plakate (eventuell mit digitalen Erweiterungen) für gebuchte, aber wegen der Corona-Lage nicht mehr benötigte, Großplakatwände entwickelt werden. Mein Fokus liegt aus persönlicher Vorliebe und als Student der neuen Fachrichtung Digital Media and Experiment eher bei Experimenten mit Raum und digitalen Medien, als beim Grafikdesign.

Er besteht aus Restbeständen an Blumentöpfen und recycelten Verpackungen. Ein großer Styroporbehälter aus der norditalienischen Region "Veneto" stammt vom Markt auf dem Bielefelder Kesselbrink. Blumenerde und Saatgut waren überwiegend zuhause vorhanden: Reste aus einer geschenkten Wildblumenmischung aus dem letzten Straßenwahlkampf, aus einer Supermarktpaprika, alte Blumenzwiebeln. Auch Kaffeesatz wird jetzt zum Auffüllen verwendet.

Überwacht wurde der Fenstergarten seit dem 2. April 2020 von einem Raspberry Pi-Minicomputer mit Kameramodul. Alle 15 Minuten wurde ein Bild erstellt, alle 4 Stunden ein mp4-Video generiert und auf meiner Webseite https://apgw.de/fh/ hochgeladen. Dabei habe ich aus Prinzip Open-Source-Software genutzt. Jede*r kann und darf dies nachbauen oder kopieren.

Die Darstellung der Videos auf der Webseite ist mit einem kurzen JavaScript-Schnippsel umgesetzt, die Tagesliste mit PHP-Code erzeugt.

Bash-Quelltext von timelapse.sh:

Ebenso wie das weiter unten folgende Bash-Script wurde timelapse.sh nach /home/pi/ auf dem Rasperry kopiert. Einmal per Kommandozeile mit "/home/pi/timelapse.sh fenstergarten &" gestartet, läuft es bis der Strom ausgeht, oder das gpu_memory des raspicam-Modul aufgebraucht ist. Einmal crashte das Script ohne sichtbare Merkmale und eine Bildlücke von einem halben Tag entstand. Im Normalbetrieb wird von Endlosschleife alle 15 Minuten ein Bild gemacht.


#!/bin/bash
# free@apgw.de 2020 copyleft
# A script to shoot pics with raspicam
# with intervall for timelapse-video
#
# raspistill has a timelapse mode,
# but is not used here.
# This script creates folder for new takes...
Ganzes Script: timelapse.sh

Bash-Quelltext von makevideo.sh:

Dieses Script kümmert sich um die Videogenerierung aus den Einzelbildern und lädt die Ergebnisse auf die Webseite. Es hat einige Tests gedauert, bis eine passende Methode gefunden war, die sowohl auf der recht schwachen Raspberry Pi 1b-Platine funktioniert, als auch ein Dateiformat liefert, das dann noch im Browser abspielbar ist.

Der Upload auf die Webseite funktioniert passwortlos mit SSH-Key. Dies muss natürlich vor dem Scriptstart eingerichtet und getestet werden.


#!/bin/bash
# free@apgw.de 2020 copyleft
# A script to create and merge videos
# from pics taken with timelapse.sh
#
# ... using ffmpeg on raspberry pi.
# ... intended as daily cronjob.
Ganzes Script: makevideo.sh

HTML und JavaScript für Videodarstellung:


<div class="video-container">
    <video class="distance" src="20200402_rasp_tmlps.mp4" id="myVideo" controls="" autoplay>
    Your browser does not support the video tag.
    </video>
</div>

Nehme Verbesserungsvorschläge für das Javascript gerne entgegen...


<script type='text/javascript'>
function pad(data)
{
    return (data < 10 ? '0' : '') + data;
}
var d = new Date(2020, 3, 2);
var now = new Date();
var player=document.getElementById('myVideo');
function run() {
    d.setDate(d.getDate() + 1)
    var dmonth = pad(d.getMonth()+1);
    var dday = pad(d.getDate());
    var fulldate = d.getFullYear()+''+dmonth+''+dday;
    var ndmonth = pad(now.getMonth()+1);
    var ndday = pad(now.getDate());
    var nfulldate = now.getFullYear()+''+ndmonth+''+ndday;
    var nextvid = fulldate+'_rasp_tmlps.mp4';
    player.src = nextvid;
    if (fulldate == nfulldate) d = new Date(2020, 3, 1);
}
function reset() {
    d = new Date(2020, 3, 1);
    run;
}
player.addEventListener('error', reset)
player.addEventListener('ended', run);
</script>

PHP-Code für Linkliste der MP4-Videos:


<?php
$files = glob("*.mp4");
foreach ($files as $file) {
    print "<li><a href=\"$file\">$file</a></li>";
}
?>