The Raspberry Pi is a small (around the size of a credit card), cheap (about $US 35) and versatile (it runs Linux and a wide range of free open source software) computer. Although it is not the first of this type of device it has certainly captured the attention of a lot of people in a very short amount of time.
This post tries to explain the Raspberry Pi in the bigger picture - what it's for, what the intentions behind the project were and how it has the possibility of ushering in a sea change for education.
What is the Raspberry Pi for?
To clear up any misconceptions the Pi is not immediately useful straight out of the box; at a minimum you are going to need a power supply (a micro-USB cable and a USB charger), a USB keyboard and mouse, something to display output on (any TV or monitor that has a HDMI input) and an SD card (at least 2Gb in size, preferably 4Gb or more).
The Pi doesn't come with a case either but you don't really need one (just be careful not to let any metal objects or surfaces short out the connections). If you do want a case for it there are plenty to choose from (a google search should bring up the available options for you). There's also a nice cardboard case (appropriately called the 'Punnet') you can print, cut and fold.
The recommended operating system for the Pi is Linux, the Raspberry Pi foundation makes a number of distributions available for download on their site. A good starting point is the Raspbian distribution which is based on Debian. Using Linux opens up a range of free, open source software for you to use from office suites, CAD programs and programming environments to a range of games and utilties.
The Pi is quite usable as a general purpose computer (although it is a little slow by modern standards). If you are looking for something to use to learn Linux or as a cheap computer for younger children it's a good option to consider. This applies to schools that are looking to reduce their computing budget as well.
One of the big advantages of the Pi over other systems is the IO interfaces it makes available - making it far easier to interface to electronic projects than a full sized desktop or laptop. The Pi provides direct access to a number of GPIO (General Purpose Input/Output) connections through a 26 pin header connector. You can design your own interface board to drive lights, motors or servos through this connector or use an existing design such as the Gertboard or my own motor controller.
The IO capabilities of the device, combined with the low power levels required, make the Pi very suitable as a controller unit for many projects - fixed and mobile. The FishPi is a good example of a mobile project, this uses the Pi as the heart of an autonomous boat with the stated goal of being 'able to cross the Atlantic unaided, and take scientific measurements while doing so'.
The Motivation Behind the Pi
The best description of why something like the Raspberry Pi was needed is given by the Raspberry Pi foundation itself ...
The idea behind a tiny and cheap computer for kids came in 2006, when Eben Uptonand his colleagues at the University of Cambridge's Computer Laboratory, includingRob Mullins, Jack Lang and Alan Mycroft, became concerned about the year-on-yeardecline in the numbers and skills levels of the A Level students applying to readComputer Science in each academic year. From a situation in the 1990s where mostof the kids applying were coming to interview as experienced hobbyist programmers,the landscape in the 2000s was very different; a typical applicant might only havedone a little web design.Something had changed the way kids were interacting with computers. A numberof problems were identified: the colonisation of the ICT curriculum with lessonson using Word and Excel, or writing webpages; the end of the dot-com boom; andthe rise of the home PC and games console to replace the Amigas, BBC Micros,Spectrum ZX and Commodore 64 machines that people of an earlier generationlearnt on. The Raspberry Pi Foundation
It would be easy to slip into grumpy old man mode and whinge about the 'good old days' when if you wanted to play a game on your computer you had to type in the BASIC code for the game from a photocopied magazine page and then debug it before you could play but I'm going to restrain myself.
Those days (the 80's, not really that long ago) certainly weren't good on a number of levels; to start with computers were very rare in most places and quite expensive as well. Outside of major cities there were very few (if any) shops that sold software (and specifically, software that worked on the type of computer you had).
Almost every machine available at the time came with a programming manual which contained tutorials and a reference for the version of BASIC that was built in to the machine (and with very few exceptions BASIC was the only language you had available). If you wanted your computer to do something more interesting than play your small collection of tapes over and over again you had to learn how to write your own programs (and what was available through libraries, subscription or newsagents were magazines devoted to programming).
Although this was immensely frustrating at the time (no instant gratification here) the payoff was well worth the effort. The end result was a generation of self taught programmers who often (myself included) went on to university to learn the more formal aspects of programming. This is the group that hit university or the work force in the 1990's that was mentioned above. For many of us (myself included) the programming side of things became 'the game', writing my own software became a far more interesting and challenging task than playing games written by someone else.
Modern computers (and operating systems) don't have these limitations; computers , and software for them, are readily available from a wide variety of sources. For almost any task you can think of there is most probably a software package you can buy (or download) that will fulfill your need. The need to learn to program has gone. In general this is a good thing - computers are far more accessible (and more immediately useful) than they ever were; the downside is that the impetus to learn more about how they work has gone.
From what I understand (and unfortunately I can't find a reference to this at the moment) the original design for the Pi involved it booting directly into a Python prompt - in a manner similiar to 80's eras computers booting into BASIC prompt - and forcing users to learn how to program to do anything useful with the device.
Why the Pi is Important
The Raspberry Pi is certainly not the first of this type of device (the BeagleBoard is a much earlier example) but it certainly is one of the cheapest (and has a much easier learning curve) compared to the alternatives. Getting a Pi up and running took about 15 minutes (that included the research into what I needed to download, downloading it and putting it on an SD card), getting a base BeagleBoard up and running took me a few hours (and required compiling many parts of the base system - a skill not most people have).
As a cheap alternative to a desktop system (that can still run common desktop applications) the Pi is a great alternative for schools (for around $US 100 you can get everything you need as a desktop - excluding a display) and for people on a tight budget. If that's all you want though there are other options available - there are a number of USB stick sized computers running Android (or Linux). At the moment Android may not be the best choice as a general purpose operating system but with the recent announcement of Microsoft Office for Android that may change in the future.
What makes the Pi different is the combination of features in a single device;
- It's a physically small, cheap general purpose computer with a wide range of software immediately freely available which makes it a very budget friendly choice.
- It has a range of interface options (USB, RS232, I2C, and SPI as well as general purpose single bit input/outputs) which makes it a very useful host machine for electronics experimentation.
Although, like any other general computer, it boots into a full operating system rather than directly into a programming environment the fact that it is so visually different will change the perception of the device from a black box into something that is meant to be programmed and modified.
With the corresponding price drops and increased availabilty of complementary technologies such as 3D printing (reasonable quality printers are now available for around $US 500), electronics (both in component and module form like the Arduino and it's associated shields) as well as the programming environments and design tools needed to develop projects.
It is quite possible to set up a full lab (including 5 or 6 Raspberry Pi's, a 3D printer, breadboards and a collection of modules and components) for around $US 2000. Although this is not an insignificant sum it is certainly within the reach of a dedicated group of people (or a fundraising drive by a Scout group or school).
Perhaps the biggest immediate impact of the Pi is the fact that it starts people thinking about all these possibilities and hopefully encourages people to act upon them.
Will It Make a Difference?
Despite the huge popularity of the Raspberry Pi (over 500,000 sales so far world wide) it's still unclear what impact it will actually have. Many of those who purchased it initially are the standard set of early adopters - people who were already interested in technology to the extent that many of them already either had experience with Linux, knew how to program, were electronics hobbyists or a combination of the above. There are also a large number of customers simply using the Pi as a cheap media center (using Raspbmc) or as a gaming platform (using MAME and other tools).
More importantly, and even though the price is substantially lower than what was previously available, it is still out of range of a large portion of the population (even in first world countries). Many, if not the majority, of those already buying the Pi are people who have the disposable income to spend on something that would still be considered an accessory rather than an educational necessity.
What I have not seen a lot of, and something that is going to need to develop, is a more structured approach to bring the Pi and other technologies listed above into schools. This is not simply the commercial approach of packaging the technology together and selling it as a bundle (which would certainly be beneficial and avoid the complexity of sourcing all the different parts from different vendors) but would involve the preparation of lesson plans as well as training for teachers and educators allowing them to integrate these things into the whole curriculum rather than being a separate, specific subject.
Schools in more affluent areas have a great advantage as they are more likely to be able to utilise a pool of parents who already have the skills (and the money) to assist the school in developing such a program. Schools in disadvantaged areas are less likely to have this resource available to them - it would be nice to see volunteer groups form that can help schools in this situation by providing exposure and education to the teachers themselves. The formation of an education ecosystem in this way could make a huge impact.
The Raspberry Pi is not even a year old at this stage so it is a bit early to tell what impact it is having. The potential is great but time alone will tell what, if any, difference it will make.