Skip to main content
Praxis

Raspberry Pi - GIF-Kamera

Das Raspberry-Pi-Projekt liefert zwar nur eine Spaßfunktion: Doch da die Raspi-Kamera ohnehin nicht in Konkurrenz zu "seriösen" SLRs steht, darf man ungehemmt in bunten Animationen schwelgen.

Bauteile:

  • Der aktuelle Mini-Computer „Raspberry Pi 3 Model b“: um 40 Euro
  • Kameramodul v2, um 30 Euro
  • Gehäuse: ab 10 Euro
  • Speicherkarte des Typs "Micro SD": um 7 Euro
  • Akkupack zur mobilen Stromversorgung: um 25 Euro
  • Einige Drähte
  • 1 Taster, der den Schaltkreis schließt. Es kann ein Klingelknopf, ein Kippschalter oder jeder Taster verwendet werden, der einen Stromkreis schließt.
  • 1 Widerstand mit zehn Kiloohm

Die Teile werden gemäß Anleitung in FOTO HITS 1-2/2017 zusammenfügt und verschaltet. In zirka einer halben Stunde ist die Kamera bereits betriebsbereit.  Nachfolgend ist der Code zu finden, mit dem sie GIF-Animationen schießt. Dieser lässt sich mühelos ändern, um das Ergebnis zusätzlich mit Effekten aufzupeppen.

Eine professionell aussehende Kameraversion beschreibt ein Artikel in FOTO HITS 4/2017. Sie wartet mit einem Spezialgehäuse, blinkendem Auslöser und mehr auf. Deren Betriebssystem lässt sich wie in FOTO HITS 5/2017 beschrieben installieren. Nachfolgend findet man eine vereinfachte Fassung für die Basisausstattung aus Raspberry Pi, der Kamera "V2" und dem selbst gebasteltem Auslöser. Download des Codes: gif_simple.py per Rechtsklick und "Speichern unter".

#!/usr/bin/env python
import picamera
from time import sleep
import time
import RPi.GPIO as GPIO
from os import system
import os
import random, string
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
########################
### Variables Config ###
########################
num_pics = 8 #Number of pictures to take in Gif
gif_delay = 15 #How much delay in between those pictures (in milliseconds)
camera = picamera.PiCamera()
camera.resolution = (540, 405)
camera.rotation = 90
camera.brightness = 70
camera.image_effect = 'none'
print('System Ready')
def random_generator(size=10, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for x in range(size))
randomstring = random_generator()
print('Gif Started')
for i in range(num_pics):
    camera.capture('__image4gif{0:04d}.jpg'.format(i))
filename = './gifs/' + randomstring + '-0'
print('Processing')
graphicsmagick = "gm convert -delay " + str(gif_delay) + " " + "__image4gif*.jpg " + filename + ".gif"
os.system(graphicsmagick)
os.system('rm __image4gif*.jpg')
print('Done')
print('System Ready')

Bildeffekte einfügen

Das Skript lässt sich so anpassen, dass die Bildergebnisse sogleich mit Farbeffekten versehen werden. Beispielsweise bewirkt die Zeile

camera.color_effects = '128,128' 

dass ein Schwarz-Weiß-Bild entsteht. Noch einfacher machen es einem die vorgegebenen Filter, von denen 21 bereitstehen. Statt

camera.image_effect = 'none'

kann man 'negative', 'solarize', 'oilpaint', 'cartoon' und weitere einsetzen. Diese lassen sich mit

image_effect_params = 

weiter verfeinern. Die möglichen Parameter erläutert etwa die Website  picamera.readthedocs.io (im unteren Viertel der Seite).