|Product Performed to Expectations:||9|
|Specifications were sufficient to design with:||10|
|Demo Software was of good quality:||9|
|Product was easy to use:||10|
|Support materials were available:||8|
|The price to performance ratio was good:||10|
|TotalScore:||56 / 60|
Arrival of the Raspberry Pi In a Box , initial findings
Chapter 1 Now What ?
Chapter 2 Taking Command
Chapter 3 Scratch
Chapter 4 Turtles
Chapter 5 Python
Chapter 6 Minecraft
Chapter 7 Sonic Pi
Chapter 8 GPIO
Chapter 9 – JukeBox
My Overall first impression SUMMARY, the Adventures in Raspberry Pi book has a ton of relevant information, the chapters ordered in a logical progression.
The chapter topics geared to younger audiences with fun cartoon helpers , relevant examples, and direct straightforward explanations of keywords.
After reading and doing the book’s raspberry Pi adventures, I can summarize the experience as “Great Googily Moogily that was really fun ! “ It is thoroughly enjoyable and I learned a lot.
This book is good for new users, explaining basic terminology and gradual easy steps. The content may be tough for an eight year old to follow, but a eleven year old or so could dig right in ( in my humble opinion).
The Raspberry Pi case can be taken apart several different ways to allow access to the insides for whatever project you're working on.
Road Test Details:
The book is a bit out of date with regard to screen shots of the menus and programs, but that seems to be the norm anymore as things change so fast.
It didn’t include the Preferences menu with the Raspberry Pi Configuration GUI , and my baseload used mu and Thonny Python rather than Python 3 IDLE.
Chapter 1 includes the RPI basics command line, menus, proper shutdown of the Raspberry Pi, and about using Win32 disk imager to make backups. A great suggestion.
Chapter 2 – essential for command lines. Excellent chapter
Chapter 3 – Scratch. I basically knew Scratch, but I learned more of programming blocks and had FUN doing the adventures.
I tend to skim over things that I’ve seen before, but not this time. I was riveted. See my screen capture and video.
Video link: https://youtu.be/GSWQF5pCmuw
Chapter 4 – Turtle graphics. A cute simple sneaky way to teach the concept of variables and loops, and again is a ton of fun. No skipping examples, they are too engaging.
Moving onto Python had a roadblock, no IDLE in the Menus.
I kept trying to reinstall Python until I found this Forum advice on getting Python IDLE to show up in GUI menus: https://www.raspberrypi.org/forums/viewtopic.php?t=245120
The advice worked ! The adventures rolled on, my adventures looked like the book.
Video link: https://youtu.be/V8MaUNY6hkM
Chapter 5 Python - A very good introduction to python. The adventure games are a very fun way to learn code and spark the creative imagination.
Python 3 IDLE is in the NOOBs baseload, but doesnt show up in the RPi menus. Go to LXTerminal and run sudo apt install idle Then it will appear in the programming menu list.
The handle_room function is introduced. I got carried away with the descriptions , badgering and trolling the user (me). As the textual adventure built up in complexity, I need to sketch a storyboard / map / flowchart to keep the code development organized. I wish this chapter introduced flowcharting ( or one lines) as a way to plan out the game and routes, thats how I planned it out.
Chapter 6 Minecraft - This is the largest selling video game ever. The allure still escapes me, but my kids loved it. The Creeper is everywhere. Its very important to bookmark the page 132 Table 6.1 Minecraft Pi Controls.
Chapter 7 Sonic Pi - Sonic Pi section is another unique way to use coding concepts to do something fun musically.
Sonic Pi adventure exercises are hard to put down.....then I found some more online examples hehehe
A music teacher can use a Pi as an instrument of learning (pun intended).
Nintendo Mario Program played using Sonic Pi, my video: https://youtu.be/HCTm2RkL3bQ
Chapter 8 GPIO – a surprise ! page 179 shows a parts list and places to order them.
Its OK, I’m a road tester, and have my own stuff on hand. Page 190 shows mapping an input from the keyboard, now we’re talking !
This topic is always confusing because the GPIO pins can be defined 2 ways.
GPIO will also be a challenge, to be successful, the case needs taken apart. Hopefully its not a big deal for the youngsters.
Difficulty level also depends who you have helping.
Anytime I work on a project using real IO , I always make a IO map. It helps in programming, in wiring, and in troubleshooting.
An example video of the GPIO Adventure, a 10 LED bar strobing when the Pushbutton input is pushed.
The scan LED loop continues as long as the pushbutton is held down, see video here : https://youtu.be/lGuy86hV4jo
Chapter 9 - THE BIG ADVENTURE ! Building a RPi Juke Box.
9. Part 1: The LCD Screen
Adafruit has nice tutorials and example code on this matrix LCD
to see Nokia 3310 wiring diagram to the RPi, loaded Fritzing tool to the Raspberry Pi sudo apt-get install fritzing
install driver libraries:
The Hello World is provided from a sample program named pcd8544_pillow_demo.py
9. Part 2: Downloading and playing MP3s
I choose to use personal mp3s rather than download music from freemusicarchive.org
The Book suggested to create a music directory, however the NOOBS installation creates one already.
When Transfering mp3 files from my PC to the RPi using WinSCP – My HOSTNAME had underscores & didn’t work correctly. Shortened to raspberrypiBox
NEED SSH turned on to connect with WinSCP to transfer mp3 files.
The mp3 file names can’t have spaces or punctuation characters when using LXterminal commands to run VLC.
once I broke down and connected via wifi, scrot command could be used to get screen captures and transfer back to my W10 PC rather than taking pictures with a camera.
9.2.a Next Problem : Following the example Page 208 in the book to run Write a JukeBox Python Program
Figure 9-7 on page 211 ( calling VLC inside Python ) the first line of code is import glob, random, vlc
On RUN, python throws a ModuleNotFoundError: No module named VLC however VLC is installed and works from its GUI.
solution: From LXTerminal type: pip3 install python-vlc refer to: https://discourse.psychopy.org/t/no-module-named-vlc/6546
9.2.b Next Problem : Following the example Page 208 in the book to run Write a JukeBox Python Program
Figure 9-7 on page 211 ( calling VLC inside Python ) the second line of code
if len(sys.argv) <= 1:
print ("Please specify a folder with mp3 files")
If the user enters $ python3 jukebox1.py as indicated in step 11 on page 211 sys.argv will always be 1 , the jukebox1.py program will always exit
solution: The proper LXTerminal command is $ python3 /home/pi/Documents/jukebox1.py /home/pi/Documents/music
9.2.c Next Problem : Following the example Page 208 in the book to run Write a JukeBox Python Program,
the code will appear to not work, but does work .....if enough description is provided in the print statement
When the button is entered in the keyboard it has to be entered with quotations to work.
refer to lines of code
button = input ("Hit a Button" )
if button == "1"
print ("pressed play button")
solution: Change the code button = input ("Hit a Button" ) to button = input ("Select a number from 1 to 4 , type in quotation marks around it before pressing ENTER" )
Even tho the command line error message said connection refused, the audio files still played.
Chapter 9 Part 3 - Controlling Jukebox with pushbuttons.
Because I used a different LCD display that the book listed, my GPIO assignments and wiring are different, from the Adventures in Raspberry Pi book.
Again, this project shows why doing a IO map for maker projects is so handy.
As the project gets built, it is so easy to see what IO spots are available,and keep the list updated as features get added.
Part 3 GPIO buttons patched in the jukebox1.py easily, no problems with part 3 at all !
I do suggest to the authors to include a schematic of of a push button using a pull down resistor.
Chapter 9 Part 4 - The Fabulous Finish Displaying Jukebox info on the LCD screen.
Since I'm using a matrix LCD screen ( a screen that can do graphics ) alot of my code is different than the book.
I enjoyed alot of adventure rewriting the python code to use digitalio library rather the GPIO library, and creating variations of LCD screens.
For example to display splash screen RPi JukeBox , and then display PLAY, PAUSE, BACK, FWD when those buttons are pressed.
I thought this was a fun and meaningful project for learning python.