I had the idea to mount a screen in our living room to display our images from your world-tour. I did not want to spend too much money and for a test I used an old screen I have around.
Initially I tried with an “old” Lenovo SL500 laptop running Ubunut 20.04. I tried many picture viewers as I wanted to have a smooth transition between the images. I had an old Raspberry Pi around, but soon I figured out that that this was really too old, as I was not able to upgrade the release to a current version. With that I’ve order a Raspberry 4 with 4GB of RAM.
I found a genius who did all this already.. Wolfgang Männel from https://www.thedigitalpictureframe.com/ . He runs a blog where he explains everything step by step and this was really helpful.
So I installed the latest Rasparian (https://www.raspberrypi.org/downloads/) from the main Rasberrypi.Org site.
Then I installed Pi3D, this brings a nice little script which will be our picture-viewer. I followed the instructions from Wolfgang to set up everything as required.
After no time, I was able to view my pictures!
I wanted to do some little modifications to my show:
- New image every 60s
- Smooth fade of 10s
- Shuffle all pictures at start
- Shuffle again once all have been on display
- Enable the keyboard, to cancel the show if needed (I’m still in development mode…)
This is what I ended up with
Material:
- Raspi 4
- Screen
- HDMI cable
- 4500 pictures from https://www.we-go.ch/
Add-On’s
I use PiHelper, to turn on/off the screen, as we don’t want the screen to run during our meals 😉
NextsSteps and ideas
- Larger 4k screen
- Display the current time on the screen
- Display the City/Location on the screen based on exif data of the image
My PictureFrame.py settings:
##################################################### # these variables are constants ##################################################### PIC_DIR = '/home/pi/Pictures/AllPictures' FPS = 20 FIT = True EDGE_ALPHA = 0.125 # see background colour at edge. 1.0 would show reflection of image BACKGROUND = (0.2, 0.2, 0.2, 0.6) RESHUFFLE_NUM = 1 # times through before reshuffling FONT_FILE = '/home/pi/pi3d_demos/fonts/NotoSans-Regular.ttf' #FONT_FILE = '/home/patrick/python/pi3d_demos/fonts/NotoSans-Regular.ttf' CODEPOINTS = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ., _-/' # limit to 49 ie 7x7 grid_size USE_MQTT = False RECENT_N = 1 # shuffle the most recent ones to play before the rest SHOW_NAMES = False CHECK_DIR_TM = 300.0 # seconds to wait between checking if directory has changed ##################################################### BLUR_EDGES = False # use blurred version of image to fill edges - will override FIT = False BLUR_AMOUNT = 12 # larger values than 12 will increase processing load quite a bit BLUR_ZOOM = 1.0 # must be >= 1.0 which expands the backgorund to just fill the space around the image KENBURNS = False # will set FIT->False and BLUR_EDGES->False KEYBOARD = True # set to False when running headless to avoid curses error. True for debugging ##################################################### # these variables can be altered using MQTT messaging ##################################################### time_delay =60.0 # between slides fade_time = 10.0 shuffle = True # shuffle on reloading date_from = None date_to = None quit = False paused = False # NB must be set to True after the first iteration of the show!