Raspberry Pi Video Player for Children
Intro: Raspberry Pi Video Player for Children
A Pi-based portable video player, featuring a touch screen, Arcade buttons and a kid friendly, Python-based GUI.
The build consists of:
- Raspberry Pi B+
- ELI70-CR touch screen from FDI
- Adafruit Powerboost 1000C
- 4 x 18650 3.7v 5000mAh Li-ion batteries
- 12v boost converter
- HDMI splitter
- HDMI Panelmount
- USB panelmount
- Switch
- 1 set of laser cut parts for enclosure (Attached as a .zip file)
STEP 1: Enclosure
The enclosure for this player is laser cut from 6mm mdf.
Due to a lack of my own laser cutter I used Ponoko, with amazing results!
If I had my own Laser Cutter I would be able to refine my case design and also create some great enclosures for many of my other projects I have ongoing. I find that a lot of my projects fall at this hurdle, and remain uncompleted due to lack of suitable case.
A Laser Cutter would increase my productivity more than you could ever imagine!
I have attached the files for my enclosure as a .zip attachment for your perusal - I would love to see someone make one of these!
STEP 2: Fit Buttons & Screen
Screw the Arcade buttons in place and fit the 7" Touch Screen. This particular screen is the ELI70-CR by FDI - I love it!
In order to reduce stress on the screen's PCB i cut some rubber tubing to fit between the screw hole and the board; this filled the few mm gap and prevented me from over tightening the screws and cracking the board.
The buttons were simply a case of fitting and tightening the plastic collar on them. These particular buttons were extremely cheap; the plan is to replace these buttons as soon as they start becoming faulty with some higher quality ones. I would also aim to get shorter buttons; the length of these ones actually take up a lot of space in the case and make it difficult to fit components.
STEP 3: Stuff It!
Fit the components into the lower section of the case:
- The Raspberry Pi
- Wifi dongle
- memory stick
- Panelmount USB port cable
- HDMI Splitter
- HDMI panelmount
- 4 x 3.7v Li-ion batteries in parallel (I purchased a battery holder from EBay in Parallel configuration
- 12v Boost converter
- Adafruit Powerboost 1000c
- Power switch
STEP 4: Cut Holes for Internal Components
In order to charge the batteries via the powerboost, access the panelmount HDMI & USB ports holes must be cut for access.
These will be added to future versions of the design files so they will be pre-cut, like the switch.
STEP 5: Wire It!
The buttons have all the grounds soldered to the ground GPIO pin on the Pi, and then each one is wired to the GPIOs. No need for a resistor on them; the python code used to read them uses the Pi's built in pull up resistors.
Batteries are soldered to the battery inputs of the 1000c, with the USB out powering the Pi.
The 12v boost converter is wired to the raw battery outs on the 1000c, then to the screen.
The power switch is also wired to the powerboost; shorting the Enabled pin to ground switches the circuit off, so the switch is in the 'off' position when on and in the 'on' position when off. If using this Powerboost circuit try and buy a blank switch to avoid confusion :-)
STEP 6: Cross Fingers and Switch On!
Hurrah! Fingers crossed the Pi should boot.
For the Pi image I used the supplied Raspbian one from FDI; it is configured for optimum use with their screen.
FDI are brilliant for support, and also provide a config file that can be dropped into any OS, meaning you can switch any of your projects to this screen with minimal fuss!
STEP 7: Software: Under Development
Currently I am developing some Python code to generate a kid-friendly interface.
You can track my progress on that over on my Github:
https://github.com/CraigHissett/PiVidPlayer
Until I have it up and running the FDI image comes pre-installed with a Python-based GUI for omxplayer; I am currently using this with my player until my interpretation is up and running.
It is called TBO Player, by Github user KenT2; you can download it from here:
https://github.com/KenT2/tboplayer
Once installed, configure your Pi to run tboplayer.py on startup by editing your /etc/rc.local file and adding the following line at the end:
"sudo python /WhereverYouInstalledTBOPlayer/tboplayer.py"
The software I am working on is very similar, in essence - it is going to be a GUI for omxplayer. Mine will also capture button presses from the arcade buttons and use these commands to change playlists and toggle play/pause and skip videos.
STEP 8: Summary
In Summary I am delighted with the end product; the Player resides in my son's room and he uses it to play his favourite videos on the little projector on his ceiling :-)
I will update this instructible as and when progress is made.
Feel free to ask as many questions as possible!
28 Comments
JaanT1 4 years ago
craighissett 4 years ago
It was perfect for my son at the time, and was a perfect stepping stone to using a tablet.
The buttons were brilliant for small hands, and the software was nice and simple to maintain and build upon.
I'd love to have another go at this software one day; I'm a software developer now and I'd love to write a better application for it.
I look forward to seeing details of your build - give me a shout if you need any ideas or help!
JaanT1 4 years ago
ChristopherC358 4 years ago
Thanks a lot for sharring this !!
I want to make something a bit different for my autist daughter.
I want to have button with pictures of movies on each. When she put the button the movie start, and when she put the same it stop. When she put an other button same thing appen.
She's disable and why that way she could choose herself what she want to watch.
But i don't now anything about program, so maybe i can ask to somebody, somewhere on the web ?
King regards
Chris from France
CarlC76 6 years ago
I am new to Pi and Python, where does the code got for the buttons when using tboplayer?
craighissett 6 years ago
Hi buddy, thanks for commenting!
I used TBOPlayer as a makestop while creating my own
software using OMXPlayer, a commandline based player:
https://github.com/CraigHissett/PiVidPlayer
The basic script (configured to run on startup by adding a
command to the /etc/rc.local file) enters a button loop, and when a button is
pressed carries out that requested function.
Paperwelder 7 years ago
craighissett 7 years ago
Of course, that is certainly an option. You would just need to modify the code to monitor for keyboard presses rather than changes in state on the GPIO pins.
atomicthomas 8 years ago
Nice project. Very simple and easy to use.
I made a kid friendly movie player too. My project uses books that have been converted into movies. My students can select from over 300 different books. I use KODI to run things. For stability, I built a controller--It allows me to limit what kids can do and makes everything much more stable. I also heavily hacked the KODI preferences to help control user input. You can take a look at it here:
https://hackaday.io/project/15239-making-books-acc...
In my search for a kids friendly video GUI, I've looked at a lot of devices:I-pads and other tablets, consoles, dvd players, etc--No device seems specifically designed for kids.
ceafin 8 years ago
> "Batteries are soldered to the battery inputs of the 1000c, with the USB out powering the Pi. The 12v boost converter is wired to the raw battery outs on the 1000c, then to the screen."
The 12v boost converter is wired in parallel to the battery as it is to the 1000C board? Wouldn't this power the screen even when the 1000C board was switched off? I am probably missing something here. Could you please elaborate? I have having a similar issue powering a 7" TFT (non touch screen) along side my RaspPi with a 1000C board.
Please and thank you!
craighissett 8 years ago
craighissett 8 years ago
The switch on the power boost cuts power to both the 5v and raw outputs, so both the screen and the pi are powered off.
Hope this helps!
ceafin 8 years ago
https://www.amazon.com/gp/aw/d/B01INC50WE/ref=psd_mlt_bc_B01INC50WE
ceafin 8 years ago
...sorry, I'm kind of dense, and I don't want to blow the few things I bought with my pennies. thanks!
ceafin 8 years ago
miraheng 8 years ago
craighissett 8 years ago
wholebean 9 years ago
craighissett 9 years ago
The buttons were an Ebay cheapo job:
http://www.ebay.co.uk/itm/10Pcs-Classic-28mm-Round-Arcade-Push-Button-For-Arcade-Mame-USB-PC-Joystick-DIY-/181878692436?hash=item2a58d09a54
They are really, really cheap - but they feel it too. The plan with these was to test and make sure the whole thing works, then replace with better buttons as and when they go.
Try and get the shortest buttons you can; the button length does have a big impact on what space you have inside the enclosure!
Ah, I would love to see someone else put one of these together - can you access this from my dropbox?
https://www.dropbox.com/s/tp3o0m6boeecb1n/Pi_Video_Box%20v1_0%20P3%20Inkscape.svg?dl=0
wholebean 9 years ago
I ran your SVG through Scour and got on Ponoko to look at material options. Does 50USD/32GBP sound about right for the fabrication cost for MDF?