I’ve only recently come to join the Raspberry Pi party, a little bit of a late arriver, but what I have discovered is that there is a huge, enthusiastic and very talented movement behind the whole thing. After a great chat on the phone a few weeks ago with Alan O’Donohoe @teknoteacher, the founder of the Raspberry Jam movement, I decided it was time to go along to my first jam and see what it was all about.
My friend Michael @mjszpakowski has a great tee-shirt, that says “The first rule of computer club… don’t talk about computer club”. I love this tee-shirt, and I know where it’s coming from. Over 30 years ago when I was at school and helped run the Kingsmoor House Computer Club in Harlow with the then school science technician, I’ve realised that funny as it is, this is now an out dated concept. Back in the 1980′s, being a geek was indeed something you didn’t really want to shout about at school unless you wanted to be branded a “boffin” or other such words. Never really bothered me. But, one of the (many) things that has come from the new energy of the Raspberry Pi communities is the fact that at last, it’s cool to be a geek, and it’s ok to advertise it.
I decided to take along the school science tech from a school I am working with as a STEM Ambassador at the moment, as I saw this as a great opportunity for him to get to know some people in the community that might help, and also to get ideas for his pending launch of an after school Pi club.
The host of the day was @PeterOnion, who I rather cheekily from the first moment called “the bearded one”. Peter works at the national museum of computing, and amongst other things, looks after their Elliot 803 machine – more on that in another post.
The format was beautifully simple – turn up, drop your stuff on a table, sit down for a bit and Peter introduced the club, what it was aiming to do, and said “go and mingle and see what everyone else is doing”. This open format struck me as being really great, because it gave us all maximum time to mingle and see what projects everyone had been working on, get ideas, share ideas, talk about collaborations, and (like I always do) drink cold tea because I’ve spent too long nattering.
There were some interesting projects – Raspberry Pi in a box with a webcam and GSM modem, a £1 8inch flat LCD TV glued to a box with a Pi inside it, @RasPiTV showing his Wii remote interface and how he runs from a battery, someone using the Pi as a “presenter box” for use in Museums showing slideshows, and a MIDI based keyboard input interface for use with people with disabilities, to name but a few.
I didn’t really have anything to show off myself, no geeky projects, no circuit bending, no great software systems (strange that, since I’m a software engineer), so I wasn’t quite sure what to do or what I could offer. It turns out, I spent the rest of the day just showing people simple bits of python, flashing an LED on my attached GertBoard, and talking about using the Pi as a prototyping platform for product development. I’m still amazed today writing this post as to how much mileage I got out of showing lots of people how to write a simple Python program flashing a little LED on a board – such a simple idea, but there were lots of opportunities to talk about how it could be used to prototype sensor interfaces and all sorts. You’ll find the program at the end of this blog post.
Discussions in particular rested around finding ways to communicate to various sensors – I2C and SPI were mentioned many times, and post-event I found this great instructables article explaining how to get I2C working on the Pi.
Really, the key message I was trying to get across was “try something, anything” and “start small and build on it”. The LED flashing program below is very tiny, but by adding print statements we could see how it was possible to get the program to “tell a story” while it is running. The next progression might be to use the I2C python module to talk to a sensor, printing what it is doing as it goes along. From there, it’s a small increment to get it to show readings from a temperature sensor once a second. Another small increment and instead of writing to the screen, write it to a file (That’s only about 3 more lines of Python), and straight away you’ve built a data logger product. Add my 13-line Python web server, and you’ve got a web connected sensor.
I also showed people a couple of small books I’ve found useful myself:
Python for Kids, by Jason Briggs. This is a beautifully illustrated but well paced book, in my opinion suitable for both kids and adults. Jason has chunked the chapters at very logical points, each chapter introducing one key concept, some experiments to try, and then a couple of exercises for further study. Each chapter can be worked through in a single sitting, and you get something useful at the end of it. You could almost sit a kid down at a Raspberry Pi with this book and let them get on with it, and they would pop out the end a few weeks later being quite a good programmer.
Python Phrasebook, by Brad Dayley – As I have limited shelf space at home, I’m always on the look out for books thinner than an inch that get straight to the point, with relevant, working, and simple examples that I can just cherry pick from when I’m in a rush and need to get something going. This is a great little pocket book that often ends up in my coat pocket and is already well-thumbed.
Ok, so here it is. Here is the program that I spent nearly 3 hours talking about to lots of people:
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) def on(): print("LED on ####") GPIO.output(25, True) time.sleep(1) def off(): print("LED off ####") GPIO.output(25, False) time.sleep(1) GPIO.setup(25, GPIO.OUT) #pin22 works while True: on() off()