Praxis

Raspberry Pi - GIF-Kamera

Raspberry Pi

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.

GIF-Kamera
Die schlichte Fassung: Die Kamera steckt im Gehäuse, dahinter ist der große Touch-Screen angebracht. Der Taster wurde mit drei Drähten (einer mit Widerstand) mit der GPIO-Leiste des Raspberry Pi verbunden.

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".

Raspberry Pi GIF-Animation
Die fertige GIF-Animation lässt sich noch mit Filtern aufhübschen, die etwa die Farben intensivieren.

#!/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).