May 4, 2022
Description
I modified the original Simpsons TV by buba447 to accommodate a 3.5 inch screen by Waveshare since the screen he used is no longer available. The rest of the parts, except for the potentiometer, are the same as the original build, although I included the original volume knob in the files so the original potentiometer should work as well.
I reinforced the main body so it is less flimsy, changed the speaker grill on the back, added tabs to center the 40mm speaker, and added some vents because it gets a little warm with the bigger screen (and I used a raspberry pi model A to make it easier to get audio output).
Some slight cleanup will likely be required for the parts to fit well, especially if your first layer prints too close to the bed like mine. In case you use Windows 3D Builder, I included all the parts in the 3mf file to make editing easier. The only part that needs support is the front panel under the legs.
build guide: https://withrow.io/simpsons-tv-build-guide
Here are the parts I used different from the original build:
screen: https://thepihut.com/products/3-5-ips-dpi-capacitive-touchscreen-display-for-raspberry-pi
screen documentation: https://www.waveshare.com/wiki/3.5inch_DPI_LCD
potentiometer: https://www.amazon.com/gp/product/B071WW6VN8/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1
import RPi.GPIO as GPIO
import time
import os
os.system('sudo echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power')
GPIO.setmode(GPIO.BCM)
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while (True):
input = GPIO.input(26)
if input != False:
os.system('sudo echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power')
else:
os.system('sudo echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power')
time.sleep(.3)
import os
import random
import time
from subprocess import PIPE, Popen, STDOUT
directory = os.path.join(os.path.dirname(os.path.realpath(file)), 'videos')
videos = []
def getVideos():
global videos
videos = []
for file in os.listdir(directory):
if file.lower().endswith('.mp4'):
videos.append(os.path.join(directory, file))
def playVideos():
global videos
if len(videos) == 0:
getVideos()
time.sleep(5)
return
random.shuffle(videos)
for video in videos:
playProcess = Popen(['omxplayer', '--no-osd', '--aspect-mode', 'fill', video])
playProcess.wait()
while (True):
playVideos()
Category: ElectronicsLicense:
Creative Commons — Attribution
10