Raspberry Pi KidKomputer
SmartiePi: First Computer for 4-6 Year Old
Original: 30 January 2023
Last Update: 30 April 2023
Background & Capabilities
Overview
In Process ....
The goal here was to build an educational, 'First Computer' for the grandkids. This one targets age range of 4 to 10ish, with a complete starter system - keyboard, monitor/sound, mouse and a safe operating environment that will introduce personal computer via educational software/apps.
Basically a step up for our grandkids from the good old CutiePi musicbox. SmartiePi will run as stand-alone system or as CutiePi upgrade w/ addition of monitor & keyboard/mouse.
As always ... recipes are basically notes that I use for rebuilds and such, but may be useful to others.
Level of Difficulty & Prep Time
Approx an hour or so to set up.
Relatively simple setup. No programming but some configuration file editing and Linux terminal interactions. Familiarity with RaspOS or Linux would be handy.
Hardware
Built using mostly spare parts ... except for Pink Mouse/Keyboard
Original i RPi3 Model B w/ Heatsinks and 2.5A PS*- $42 in 2017
Cheap little Case for RPi 2 (or 3)* - $4.59 in 2021
Short (7-inch) HDMI Cable* - $5.87 in June 2021
Small TFT LCD HDMI Monitor w/ Speakers.* - $68.79 in July 2021
Cute/Pink Wireless Keyboard Mouse Combo,* - $20 in July 2021
32g Micro SD
*Note: Affiliate Links, I may get kickback from Amazon if you click/buy!
Software
Raspberry Pi OS - Standard, 32-bit download is fine
Scratch Programming Environment for Kids
<More as I stumble upon kid-friendly software>
Step By Step
Stock 32-Bit RaspOS - Raspbian GNU/Linux 11 (bullseye) - on 32g sd using RPI Imager
// Much improved! It has been a while since I fiddled with GUI RaspOS.//Initial Boot with Monitor/Keyboard attached for guided setup followed by reboot - approx 10 mins
// User/password, localization and updates handled @ initial boot - even Bluetooth Mouse/Keyboard pairing! //Couple of touch-ups via raspi-config utility (gui version is fine for these)
Via Preferences->Raspberry Pi Configuration:System Tab->Change Hostname, Boot to Desktop, Set Auto Login and Splash Screen
Display Tab->Screen Blanking
Interfaces Tab->SSH & VNC will be handy in this world
Performance Tab->no changes (yet!)
<OK - go ahead and reboot>
Software installs ... I do these via ssh (Preferences->Add/Remove Software would also work)
sudo apt-get install joe // My goto editor //
sudo apt-get install gcompris // Educational Software for ages 2-10 ... Initially the main program on SmartiePi //
sudo apt-get install scratch // Programming environment for ages 8-16 ... one step ahead! //
Couple more tweaks ... again via ssh
fix slow/sporadic (albeit cute) mouse
edit /boot/cmdline.txt and append usbhid.mousepoll=0 (I think this lets device choose poll rate - odd/age old issue on RPi)VNC Server: Set up to use VNC over Remote.it - VERY handy
Setup a limited RaspOS user for the grandkid - again via ssh. Auto-Login one user initially but option to create multiple age-based environments in future
Create user w/ home directory -> sudo useradd -m <grandkidname>
Set password-> sudo passwd <grandkidname>
Set/append groups (I think these will be enough) -> sudo usermod -a -G audio,video,games <grandkidname>
Shutdown and Reboot on target RPI/Monitor/Keyboard/Sound
Via GUI/Desktop
Choose Audio device (if necessary) - We have a cute little hdmi monitor with built in sound
Run/Test Gcompris the first time. Menu->Games. It will download whatever it needs - music, sounds, etc. Try a game or 2 to test sound/music and check
Season Desktop to taste via <right-click on desktop> Desktop Preferences. Unicorn wallpaper, menu bar, whatever. Each user's desktops can be unique
Adjust menu bar panel as needed <right-click on menu bar> Panel Preferences. Clock & Sound in panel is probably enough.
// I ended up auto-hiding the panel initially - Desktop icon only //Add Gcompris to desktop (right-click-> add to desktop)
Eliminate unnecessary or dangerous RPi menu items via Preferences->Main Menu Editor.
// VERY Limited set of menu options initially for grankids (e,g, no internet, no admin - see note on Alacarte below! //Programming -> Scratch
Games -> Gcompris
Preferences -> Keyboard & Mouse
Final touchups: change wallpaper in system greeter (login screen) and autologin a grandkid user for now (this may change if there are more than one users!)
Set greeter background image (wallpaper) in /etc/lightdm/pi-greeter.conf
Change default autologin user in /etc/lightdm/ligntdm.conf
Also ... Remote.it is VERY useful with remote devices and grandkids! See https://www.remote.it/getting-started/raspberry-pi
Reboot-A-Roooo! To get the witches out and to ensure all is well
******
Important Note! Alacarte is a HANDY COMMAND! It is the RaspOS GUI Main Menu Editor! Select Run menu option and enter "alacart" to Edit Menu
******
Touch-ups & Tweaks
(April 2023 Work in process)
DOS Box for some good old Kid Games
From unrestricted (superuser) account
Updated everything first (Its been a while)
sudo apt update
sudo apt upgrade
Install dosbox
sudo apt install dosbox
Find a couple of good games
Search the Wayback Machine (aka Internet Archives) - https://archive.org/details/classicpcgames
Install into dosbox directory. Typically unzipping, restore directory structure so you can host multiple games
Initial run of game appears to create the dosbbox config under /home/<user> ...
for example /home/<user>/.dosbox/dosbox-0.74-3.conf
Season to taste: I changed ours to start in fullscreen mode, for example: fullscreen=trueCreate Desktop Shortcuts for the games ... they look a little like this
[Desktop Entry]
Name=Word Rescue
Comment=Play Word Rescue using DOSBox
Exec=sh -c "cd /home/xxxx/Public/dosbox/WordResc && dosbox onerun.bat"
Icon=/home/xxxx/Public/dosbox/WordResc/icon_wordrescue.png
Terminal=false
Type=Application
Categories=Games;
Launching via Desktop Shortcut will pop up a dialog asking how to start the program ... to disable/skip this edit preference in Pi file manager (of all places)
In Pi File Manager: Edit->Preferences and set the following option:
X Don't ask options on launch of executable file<I think that is it ... but this little note was left half-baked ... we'll see when I try this again>