ScottTV - a Simple Media Player for My Autistic Son





Introduction: ScottTV - a Simple Media Player for My Autistic Son

Hi all,

I want to show you this media player for my son Scott.

He has autism, so the challenge was to make it simple, robust and easy to clean.

I could not find a commercial solution, so I build this device with 6 Big Buttons. The media menu shows a preview of 6 cartoons. If the button next to the preview is pushed, this movie is played. Now all the buttons are offline for 5sec.

If you push any of the 6 buttons, the movie stops and the player jumps back to the main menu.

It's based on a raspberry pi B+


Step 1: Woodworking

1x 800mm x 1250mm 18mm multiplex plate

2x 80mm x 1250mm 18mm

4x 80mm x 764mm 18mm

1x wood strip +- 1600mm 10mm x 10mm

2x wall rail for the monitor vesa support

Cutting a hmn ole in the wood plate. I took the dimensions of the LCD screen and I added 1cm on each side. Drilling 48mm holes for the buttons and test if everything fits.

Fill all the irregularities with wood paste

On the bottom 2 cut outs for the foot bar

Step 2: Paint Job

After sanding the whole thing, I sprayed a few layers of gray ground paint.

All painted with red paint. I used a small projector to put an Image of Shin Chan on the front. Then I drew the picture and colored it with Acryl colors.

Now 2 layers of transparent protector paint

Step 3: Tech Inside

6x PiezoButtons from my other instructables :

1x 20 inch monitor

1x USB speakers

1x RaspberryPi B+ 700Mhz with 16Gb Sd and 16Gb Usb stick

1x 5V 4A Power supply

Take apart cheap USB powered Speakers, so you will get an amplifier and 2 Speakers and all the wiring you need.

I build an adaptor circuit to connect the 5V buttons to the 3,3V Gpio's of the raspberry. The buttons are connected each to an transistor. The transistor pulls the gpio down to GND.

All inputs are connected over diodes to a buzzer so each time you push a button you have a feedback.

For the power, I used an old 5V 4A power supply. I cut an OGT cable in 2 parts and connected them to the power supply. The micro USB is for the raspberry and the USB port is for the speakers.

All the cables are hot glued in the box

The Speakers are mounted inside, so they can not be destroyed. I drilled 2 holes in the wooden board so that the sound will go downside.

Step 4: Raspberry Pi Software

You need Python with RPi.GPIO plugin

I use arch Linux as operating system. It's lightweight and just console based.

To playback the videos in the console in overlay mode, I use the omxplayer.

The main-menu is just a one minute looped Video created in Sony Vegas and Gimp for the still images.

The software is written in Python3.x. Then main program "" is starting the menu.m4 and then checks if a button is pushed. If you push a button it stops the menu.mp4 and calls "" Here the selected movie (01.mp4 - 06.mp4) is started. When you push now a button, the movie stops and returns to the script "". When no button is pushed and the movie comes to his end, it returns to "" to.

In here the movie menu.mp4 is started again.

My two scrips are here

Don't judge too hard, because my main programming language is :)

Step 5: Last Details for the Enclosure

3 Wood disc colored and painted with transparent protection paint.

In the front I drilled 9mm holes. For the moment these discs are just turning around, but I will add some cool features on it later on.

With black power fix, I clued a 8mm Plexiglas sheet for the Screen protection. Let it dry over night with weights on it.

Furniture Nail feets on the bottom of the construction

To mount it on the wall, I used 2 wooden boards. Fix them to the wall and screw the ScottTV on it

And the best part: Scott loves it.


  • atomicthomas made it!


  • Remote Control Contest 2017

    Remote Control Contest 2017
  • Arduino Contest 2017

    Arduino Contest 2017
  • LED Contest 2017

    LED Contest 2017

We have a be nice policy.
Please be positive and constructive.


Questions & Answers


Your project inspired me to make one too. Mine is also kid friendly, but it has 250 awesome book videos on it.

I used a makeymakey to make an button input box. I mapped the keys using this web site:

Directions are included, but you need x for stop, enter for play, + for up volume, and - for down volume. I bought these buttons in different colors:

I drilled 1.25inch holes in an ikea plastic box and wired the buttons to the makeymakey. I also drilled a .5 inch hole for the makey makey usb cord. I pulled the cord through the box and tied it into a not, so it wouldn't get pulled out. After all that, I glued the box closed.

I then setup a first addition raspberry pi with kodi (original skin). I got a 32 GB thumb drive and filled it with scholastic book videos. Here is the thumb drive:

Scholastic book videos are videos made from great kids stories in published books--Elephant and Piggie, The Gingerbread Man, Cinderella, etc. I also got video off of youtube. Here is were I got the most of the best video stories:

After plugging the thumb drive into the raspberry pi, I moved all the videos into favorites and turned on the thumbnail function so kids could see the movie selection. I went into appearance in settings. I switched into advanced setting level. I then edited the home menu. I removed everything except favorites. I then renamed favorites to Books. I turned kiosk mode off, and add, and sub menus. I basically made changes until the only thing left was favorites in the home menu.

I hooked everything up to an old HDMI TV. The raspberry pi boots up into a home window with the word Books. Click the a green button and then you see an array of 250 book videos. My 3 year old daughter has used it and has not been able to make it crash. The thumbnails take a moment to load and some of the thumbnails need to be adjusted, but besides that, it works perfectly.

I plan on attaching the raspberry pi to the back of the TV. The controller is connected via a usb cord. I'll attach the box to the wall next to the wall mounted TV.

Why would i get an: AttributeError: 'module' object has no attribute 'run' ?

Hi I am new to python too,but it seems that there is a problem with an import module.


This is great! My wife work with autistic children, she would be interested in this.

I'm wondering how easy would it be to modify the code for a single button action. Where one video plays as a default on launch, then when a button is held down it activates video2 - then back to video1 on release?

Which one of your .py would I try to tweak to do this? Thank you!!

the selects the movie. it sends the variable 1 to 6 to

so the line with the menu.mp4 would be the first movie and if you send 1 to callvid it's the 01.mp4. it will jump back to menu.mp4 if you push the button again.

Thanks! I've been reading your code for the past 30 minutes and I think i understand it (i'm new to python). The only thing I am looking to tweak is the type of trigger behavior. Im not sure if this is a function of the gpio or of the script. essentially as the button remains grounded I need movie 01.mp4 to play, then when un-grounded revert back to menu.mp4. thanks again, this is an awesome project.

Nice and clean, good job! ?