Maak van de Raspberry Pi een digitaal fotolijstje

Door: Koen Vervloesem | 18 augustus 2014 08:08

How To

Inhoudsopgave

  1. Inleiding
  2. pagina 2
  3. pagina 3

Toe nu toe hebben we de Raspberry Pi vooral ingezet voor allerlei servertoepassingen. In deze how to gaan we creatiever aan de slag: we sluiten het kleine computertje aan op een schermpje en zetten het op die manier in als een digitaal fotolijstje.

We laten zien hoe je je favoriete foto's op het schermpje krijgt, zodat je ze altijd in de woonkamer kunt bekijken. Die foto's zet je bijvoorbeeld op een usb-stick, maar de Pi kan ook automatisch foto's van je netwerk halen of zelfs van websites downloaden. We tonen hoe je dit alles in elkaar knutselt. We gaan ervan uit dat Raspbian al op Raspberry Pi draait.

Overigens kun je je Raspberry Pi ook gebruiken als printserver of RSS-machine.

01 Scherm

Om ons fotolijstje te maken, gaan we een speciaal schermpje op de Raspberry Pi aansluiten, op de analoge video-aansluiting. Dat schermpje vereist een eigen voeding en wat tussenstukjes. Dat is het enige speciale dat we aan de hardware veranderen. Maar dit is niet verplicht: je kunt alle software-gerelateerde stappen in de workshop uittesten zonder speciaal schermpje. Sluit de Raspberry Pi dan eerst op een tv of een HDMI-computerscherm aan. Daardoor hoef je je maar op één ding tegelijk te focussen en kun je een apart schermpje desgewenst ook later aanschaffen.

02 Foto's op usb

Voor de eenvoud beginnen we met het scenario dat we foto's op een usb-stick zetten en die op het scherm willen te zien krijgen wanneer we die in de Raspberry Pi steken. We gaan ervan uit dat de usb-stick één partitie bevat die is geformatteerd in het FAT32-formaat van Windows. We gaan er ook van uit dat u maar één usb-stick tegelijk op de Pi aansluit. Daarna installeren we met het commando sudo apt-get install usbmount het programma usbmount, dat bij het aansluiten van een usb-apparaat automatisch het bestandssysteem in Raspbian aankoppelt.

03 Fotodirectory

De schijf moet wel zo aangekoppeld worden dat de gebruiker er toegang tot krijgt. Voer daarom de opdracht sudo nano /etc/usbmount/usbmount.conf uit (dit opent de teksteditor Nano) en voeg een regel toe met FS_MOUNTOPTIONS="-fstype=vfat,uid=pi,gid=pi,umask=007". En op de regel die begint met MOUNTPOINTS=" plaats je vóór /media/usb0 de directory /home/pi/pictures/usb. Sla dit op met Ctrl+O en sluit af met Ctrl+X. Maak die directory met de opdracht mkdir -p /home/pi/pictures/usb en sluit de usb-stick aan. Met de opdracht mount verifieer je of de stick aan de juiste directory gekoppeld is.

Tft-schermpje

Voor deze workshop hebben we een aantal onderdelen gekocht in de webshop Kiwi-electronics.nl. De belangrijkste component is het schermpje, een NTSC/PAL tft-scherm van 3,5 inch met een resolutie van 320 bij 240 pixels, dat op de composiet-uitgang van de Raspberry Pi past. Wie een groter scherm wil, moet eens kijken op de website www.adafruit.com, waar nog heel wat andere uitvoeringen te vinden zijn. Let wel goed op welke kabels of andere componenten je bij een scherm nodig hebt.

Andere componenten

Het schermpje komt met een kabel, maar die kabel heeft een mannelijke RCA-aansluiting en onze Pi ook, dus we hebben een koppelstuk nodig. Ook een voeding moeten we zelf voorzien: het schermpje kan overweg met 6 tot 15 V, dus normaal werkt elke standaard 12V-voeding. Ons schermpje heeft echter geen normale voedingsaansluiting, maar slechts twee draadjes, dus we hebben ook hier een koppelstukje nodig, met een terminal block.

04 Automatisch inloggen

Wanneer de Pi opgestart is, vraagt hij je om in te loggen. Als je van het apparaatje een fotolijstje wilt maken, wil je onmiddellijk foto's zien zonder te hoeven inloggen. Start daarom Nano met de opdracht sudo nano /etc/inittab en zoek de regel 1:2345:respawn:/sbin/getty --noclear 38400 tty1. Vervang die door 1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1. Druk op Ctrl+O en Ctrl+X om het bestand op te slaan en af te sluiten, en herstart de Pi. Die zal nu na alle opstartmeldingen een opdrachtprompt (pi@raspberrypi ~ $) tonen, want de gebruiker pi wordt automatisch aangemeld.

05 Fbi

Om nu in plaats van de opdrachtprompt foto's te tonen, gebruiken we het programma fbi (framebuffer image viewer). We installeren dat met de opdracht sudo apt-get install fbi. Om ervoor te zorgen dat fbi automatisch uitgevoerd wordt als gebruiker 'pi' zich aanmeldt, voer je het commando nano ~/.bashrc uit. Helemaal op het einde van het bestand ~/.bashrc plaats je de volgende regel: fbi /home/pi/pictures/**/*. Druk op Ctrl+O en Ctrl+X, en herstart de Raspberry Pi. Na het opstarten krijg je op je scherm een van je foto's te zien.

06 Slideshow

Om een slideshow te laten zien van al je foto's in subdirectory's van de directory /home/pi/pictures, moeten we op het einde van het bestand /.bashrc een aantal opties aan het programma fbi doorgeven (zie ook vorige stap). Met de optie -t (gevolgd door een getal) geef je op hoeveel seconden pauze er tussen de foto's blijft. Met -a schakel je autozoom in, zodat elke foto het hele scherm inneemt. Met -u worden de foto's in willekeurige volgorde getoond. Met -noverbose voorkomen we dat de bestandsnaam getoond wordt. De regel wordt bijvoorbeeld:

fbi -t 10 -a -u -noverbose /home/pi/pictures/**/*

07 Nieuwe foto's (1)

Onze Raspberry Pi werkt nu als een fotolijstje, maar foto's toevoegen is nogal omslachtig. Je moet de usb-stick dan eerst uit de Pi trekken, in je pc steken, bestanden kopiëren en de usb-stick terug in je Pi steken. Daarna moet je je Pi herstarten omdat fbi de nieuwe bestanden niet ziet. De oplossing: we laten fbi automatisch opnieuw opstarten als de usb-stick opnieuw aangekoppeld wordt. Gelukkig is dat een functie die usbmount ondersteunt: alle scripts in /etc/usbmount/mount.d worden bij het aankoppelen van een usb-stick uitgevoerd.

08 Nieuwe foto's (2)

We gaan er voor de eenvoud van uit dat je slechts één usb-opslagapparaat op je Pi aansluit. Dan is ons script vrij eenvoudig. Maak een nieuw script aan met de opdracht sudo nano /etc/usbmount/mount.d/10_fbi_reload. Voeg in het bestand de regel pkill -t tty1 toe en daaronder de regel exit 0, sla het op met Ctrl+O en sluit het af met Ctrl+X. Maak het script nu uitvoerbaar met de opdracht sudo chmod +x /etc/usbmount/mount.d/10_fbi_reload. Zodra je nu je usb-stick opnieuw aankoppelt, wordt de gebruiker 'pi' afgemeld en terug aangemeld, waardoor fbi opnieuw de lijst met foto's inlaadt en de nieuwe foto's toont.