Fotolijstje upcyclen

      Reacties uitgeschakeld voor Fotolijstje upcyclen

Een dun e-paperscherm kan niet alleen tekst, maar ook (in grijstinten) afbeeldingen weergeven. Prima geschikt dus voor het upcyclen van een oud houten fotolijstje !

e-paper

Achter het glas van dit fotolijstje zit een 7,5inch e-paper scherm van Waveshare. Het laat een serie figuren uit retrogames zien. Alleen het usb-snoer verraadt dat er een Pi Zero W in zit. Ook zonder stroom, is het scherm nooit leeg.

Doel van dit project

Een leuke toepassing van een 7,5 inch e-paperscherm is om het samen met een  Pi (Zero) in een fotolijstje te monteren, zodat het iedere dag een ander plaatje laat zien.
Digitale fotolijstjes lijken alweer passé, maar houten fotolijstjes zijn nooit weggeweest. Die zien er ook veel sfeervoller uit en de keuze is enorm. Het nadeel is alleen dat je voor elke foto een apart lijstje nodig hebt, én genoeg ruimte om ze allemaal neer te zetten of op te hangen.
Met een goedkoop e-paperscherm en een Raspberry Pi (Zero) maak je in een handomdraai een uniek digitaal fotolijstje dat er volstrekt niet digitaal uitziet!

Wat heb je nodig:

  • houten fotolijstje (13×18)
  • Ikea Bås vitrinekistje (13×18)
  • 3 kleine hoekijzertjes
  • 7.5inch HD e-Paper HAT van Waveshare
  • Raspberry Pi (Zero W)
  • snufje Python
  • klontje Cron

Hoe doe je het:

Zorg dat je een nieuwe Pi-OS in de light- of desktop-versie op een microSD-kaartje hebt staan, met ssh geactiveerd en wpa_supplicant.conf bijgewerkt met de juiste wifi-gegevens. Sluit het scherm aan op de GPIO van de Raspberry Pi (Zero W), met de meegeleverde jumperkabels of rechtstreeks met de pinheader (zie de online-handleiding). Maak via ssh contact met de Pi vanaf een andere computer.
Download en installeer nu de Waveshare-software en democode van Github. In de directory Examples kun je vervolgens het voorbeeld Python-bestand vinden. Test daarmee het scherm.

Fawn

Fawn uit Leisure Suite Larry.

De plaatjes

Het scherm heeft naast voordelen, goedkoop, superplat, verbruikt geen stroom (behalve een beetje bij het wisselen van de beeldinhoud), ook nadelen: de weergave is alleen in zwart-wit en grijstinten. Daarom is niet iedere foto of afbeelding geschikt. Het origineel moet namelijk een goed contrast hebben. Het beste werken tekeningen en cartoons.

Het voorbereiden van de plaatjes is niet moeilijk. De software van Waveshare zorgt automatisch voor het renderen. Je kunt dus gewoon plaatjes in kleur of grijswaarden gebruiken (.jpg). Maak de grootte 800 x 480 pixels (de resolutie van het scherm).

Als thema kozen we voor plaatjes van bekende games (promo-art en fan-art). Het resultaat is een artistieke fotogalerij die nooit saai wordt.

digiframe4

Have a drink!

Code

Voor de Python-code kun je twee kanten op gaan: ofwel je maakt een script dat continu draait en alle plaatjes na elkaar laat zien in een oneindige lus, of je maakt een script dat  eenmalig de gewenste afbeelding op het scherm zet en zichzelf vervolgens afsluit. Om het makkelijk en flexibel te houden, hebben we gekozen voor de tweede optie.

Omdat onze Waveshare-driver op het moment alleen Python 2.7 ondersteunt gebruiken we dus de oude Python-versie. De naam van het afbeeldingsbestand komt als argument achter het commando te staan:

python showpic.py pic01.jpg
#!/usr/bin/python
import sys
from PIL import Image
from waveshare_epd import epd7in5_V2

epd = epd7in5_V2.EPD()
epd.init()
epd.Clear()

directory = "/home/pi/Picshow/Pics/"
filename = sys.argv[1]
file = directory + filename
picture = Image.open(file)

epd.display(epd.getbuffer(picture))

Cron voor de tijdaansturing

We willen het plaatje iedere dag van de maand wisselen. Dus op de eerste van iedere maand begint de cyclus opnieuw.
In de cron van user Pi zet ik voor ieder van de in totaal 31 scripts een aparte regel:

0 0 01 * * python Picshow/showpic.py pic01.jpg
0 0 02 * * python Picshow/showpic.py pic02.jpg
0 0 03 * * python Picshow/showpic.py pic03.jpg
....
0 0 31 * * python Picshow/showpic.py pic_31.jpg

Dit betekent: start op minuut 0 van uur 0 van dag 1 (2, 3, etc) het commando ‘python …. ‘. Dus precies om twaalf uur ’s nachts wisselt het beeld. Je kunt daar natuurlijk ook elk ander tijdstip van maken.
Het voordeel van deze opzet is dat cron zelf de juiste dag en tijd in de gaten houdt, zolang er maar internetverbinding is voor de tijdsychronisatie (UTP), of de Pi voorzien is van een klokmodule (RTC).

Montage

Als de code getest is, kun je het fotolijstje in elkaar zetten. Haal de achterplaat van het lijstje af en verwijder de steun die eraan vast zit. Maak de flexkabel naar het driverboardje van het scherm los, zodat het scherm los is (zoals het in de doos zat). Bevestig de driverboard en het kleine board aan de buitenkant van de achterplaat (zie foto) en doe hetzelfde met de Raspberry Pi.
Trek de beschermfolie van het scherm af (via het gekleurde hoekje) en leg het scherm op de glasplaat in het lijstje. Maak met strookjes dun karton een soort passepartout om het scherm heen, zodat het precies in het midden zit en de kleine flexkabel aan de onderkant naar buiten kan uitsteken. Plak die strookjes met plakband aan elkaar zodat ze niet verschuiven.
Leg nu de achterplaat terug in het lijstje, waarschijnlijk moet je er nog een uitsparing in maken om genoeg ruimte te hebben voor het flexkabeltje. De achterplaat hoeft niet meer met de standaard buigklemmetjes vastgezet te worden.
Verbind het kleine flexkabeltje met de rest en koppel een usbkabel aan de Pi, die lang genoeg is.

ikea

Dit oude vitrinekastje van IKEA heeft de perfecte maat voor ons fotolijstje. Onderaan zit een knopje om de Pi netjes af te sluiten.

Ikea-hack

Als laatste kan het vitrinekastje van de Ikea gemonteerd worden. Haal daar het kartonnen achterplaatje uit en leg het met het glas naar boven op de achterplaat van het fotolijstje. Via de gleuf die in het hout van het kastje zit kun je de usb-kabel naar buiten leiden, eventueel de gleuf groter maken.
Zet het kastje met de ijzeren hoekjes aan drie kanten vast aan de houten rand van het fotolijstje. Gebruik het vierde hoekje eventueel als steuntje aan de onderkant van het kastje zodat het in de juiste stand staat.    

Extra toepassingen

De Pi heeft maar 1 keer om middernacht iets te doen, dus je zou hem de rest van de tijd voor heel andere dingen kunnen gebruiken. Als je in het fotolijstje een Pi 4 zet kun je het lijstje naast de tv zetten, aansluiten met hdmi en er een (verborgen) mediacenter van maken. Je kunt het digitale fotolijstje gebruiken voor alles waarvoor je genoeg hebt aan een headless Raspberry Pi (Zero): netwerkmonitor, NAS of fileserver, webserver, weerstation, basisstation voor diverse sensoren, MQTT-broker, etc.

Links

Waveshare wiki
2,5″ e-paper HAT
E-paper message board