Over recent months, there has been an important advance in opportunities for kids to learn to code and mess around with technology.
The Scratch programming language is a project set at MIT. Scratch programming involves moving images, called blocks, from a pallet into a work area, hooking them together and maybe changing some values attached to them, in order to develop programs that mainly, but not exclusively, manipulate sprites. (See example of code blokcks above.) The project is located HERE. This is a full object oriented programming language with quite a few features that make it very powerful, for a kid’s toy. Continue reading Kids coding and technology advance→
There is really no better time to get a Raspberry Pi. The new Raspberry Pi 3 has features that make it much more useful and fun, including more speed, built in bluetooth, and built in wifi.
The Raspberry Pi is a small computer that, out of the box, lacks storage drive or device, a monitor, a screen, or a mouse, but is otherwise a fully functional computer that can run a normal operating system. It costs very little, so if you happen to have a TV or monitor that can use a component or HDMI hookup, a keyboard, a mouse, and an appropriate microSD card, then you have a computer for $39.99. If, on the other hand, you need to buy those parts and the cables and such, then you have a $200 computer (or more) that isn’t very fast but is still cool. Chances are, though, that you have at least some of these parts laying around.
I’ll make some suggestions below as to how to set yourself up (including the option of buying a kit) but first let me say a little more about why you might want to do this.
Why Pi reason one: A kid
Maybe you have a kid in the house who is old enough to start to play around with a computer, but not old enough to not gob all over it, drop it, or mistake it for a bath toy. With a Raspberry Pi, you are not taking a big risk. First, it is cheap and easily replaced, compared to, say, a laptop. Second, if it does end up in the bath, it is probably easier to dry out than a notebook or desktop computer.
When Huxley was about five, I set him up with a Raspberry Pi hooked to an old TV we had laying around. I bought a new keyboard and mouse for it, and that keyboard and mouse has done a lot of good work since. He learned the basics of turning a computer on, turning a computer off, using the mouse, running some basic apps (like Tux Paint), etc.
Over the next year he continued to use the Pi but also graduated to a laptop his grandfather had laying around. It was a Windows laptop, so I wiped it and installed Linux. Huxley is now able to install software using the command line, and he is about as good at word processing as any average person. He’s pretty good with graphics software as well. At school, he’s been learning a watered down version of the iMac, he can use Windows, and he knows more about the Android and iOS operating systems than most. He turned 7 last week. I owe much of his rapid development to the Raspberry Pi. Also, to Linux; If Linux is one of your first operating systems, you will understand more quickly the things you need to know to make computers bend to your will.
Why Pi reason two: impress your friends
So, here’s the scenario. A bunch of your friends get together now and then at a particular coffee shop, or the cafeteria, or perhaps your family gathers at the cabin, or at a favorite vacation spot. Pretty soon everyone pulls out a device. Most have phones, but here and there a laptop being used by someone who needs to get some real work done.
Well, you need to get some real work done too, so you pull out a box of Altoids, plug it into the nearest TV, sign in via your iPad and, using the iPad’s virtual keyboard, get to work.
A Raspberry Pi can be cobbled together with a number of different bits and pieces, including some interesting options for the computer’s case, to make what is essentially a laptop or a funky desktop. It can work as a “headless” server, so you use a different device to access it.
My most elaborate setup involved a super fast USB stick to run the operating system. The microSD is the usual boot device, but I hacked it to hand the boot process over to the faster USB stick and run the computer from there. An HDMI output ran to a small TV. The Pi was hooked directly into the internet via a LAN cord (there is a plug on the Pi). A powered USB hub allowed multiple additional possibilities. A bluetooth dongle gave the device that capability, and allowed use of a mouse and keyboard. Oh, and I overclocked it. That was a Raspberry Pi 2.
The Pi 3 comes with built in wireless and bluetooth, and is faster and thus not so much in need of overclocking.
Why Pi reasons three through infinity: Projects
The Raspberry Pi is, as noted, a basic computer, but it has a number of pins that give the hardware access to outside thingies. These GPIO pins let you hook sensors or actuators directly to the Pi, so you can build things with a brain. In addition, there is the usual serial (USB) interface.
There are two commonly used machines on which a very large number of Do It Yourself (DIY) projects have been based. A home media center. A garage door opener. A weather station. A personal web server. A remote control camera for security or to watch birds or game. A system for turning on and off all your things, including lights. A customized alarm clock. A bitcoin server. Any one of a number of different robots.
One device is the Arduino Uno R3 Microcontroller, or a related card, the other is the Raspberry Pi. If you look around you will find dozens of other circuit boards that do these things, but none of them have the huge support network, gazillion lines of pre-written code, and myriad bits of hardware designed to be added on to make things happen.
The Arduino controller is, frankly, the better choice of machine for many uses. If you need a smartish machine to do one thing, and only one thing, and that thing isn’t too complicated, a Raspberry Pi is probably overkill and might have some downsides. A controller might even be better designed as hardware goes, as it is real time. Say you are building a model airplane and you want a smart device inside it controlling the various things that make it fly. You will be sending signals via radio to the plane. A controller can be set to cycle rapidly through the communications module to see if there are any instructions coming in, then to various sensor or actuator circuits to acquire information or to set the actuators to do things (change speed, etc.). You can be confident in advance that the controller will focus on nothing other than these jobs, and check each of these inputs and outputs several times (a known number of times) a second.
If, on the other hand, you use a computer — any typical computer — with a normal operating system like Linux, OSX, or Windows, then you can’t be as sure. There can be a software based timer set up in the computer that will theoretically go from sensor or actuator to sensor or actuator, checking the communication module for commands every cycle. But those cycles are virtual. If somewhere along the way a backup program was installed to make a copy of a directory and put it on a USB stick every hour, then suddenly your computer is busy doing something else. If updates are automatic on your setup, same problem. Yes, you can configure a system to not do anything you don’t want it to do, but you might not be perfect in you efforts. In other words, having a Raspberry Pi carry out time sensitive mission critical rapid fire acts is like hiring a potentially recidivistic but reformed fox to guard the henhouse. Yeah, it probably works, but if any chickens are missing …
The Raspberry Pi, running a normal operating system, can do pretty much anything any other computer can do, and might in fact, do any of a number of different things while still carrying out the program you wrote to operate the air plane. But the Arduino controller can only do a few things, and you can’t really accidentally have it programmed to send out bulk emails or get your fur coat cleaned while you are trying to control your expensive model airplane.
So, let’s say I want a device in my garage that has a sensor that tells me if the garage door is open or closed, turning on a light on a second device in my house (connected by radio signal) if the door is open, and allowing me to open or close the garage door by pushing a button on that interior device. That would be easy using two Arduino boards, some sort of sensor, a cheap pair of radio communication thingies, and some lights and resistors. (Plus the appropriate way to close/open the door, for which there are several options.)
Say I want to have a device in the garage that senses if the door is open, has a camera that can be used to check out the garage, communicates the status of the door via the internet, and allows me to remotely open or close the door or look at the camera’s image remotely form anywhere on my smart phone. You can totally do that with an Arduino controller, but that will involve adding a lot of parts and raising the cost, and you may be limited in other ways. A Raspberry Pi would be better for this application.
Say I want the device in the garage to have a movable pointable camera, a temperature sensor, a “door open” sensor, a door close/open actuator, and a way to turn on and off the main garage light. But, I want to control all of those functions from the Internet, and I want the same internet interface to also give me the temperature in my house and provide a view from a camera pointing out the front door. I also want the same system to give me access to my Google calendar.
For that, I’d want the Raspberry Pi running the web server, hard wired, perhaps, into my home LAN, and fitted with a Camera Module and a temperature sensor. I the Garage would be an Arduino with a movable camera and all that other stuff, controlled via the Pi that sits in my house.
And so on.
Very elaborate home automation systems have been built using a combination of various Arduino controllers and a Raspberry Pi at the center of it all.
The Raspberry Pi can run any software that normally runs on Linux, if that is the operating system you install (which is probably the case). Most projects that use the Pi as the central brain use Python, which is an all purpose programming language. The Arduino controller uses a form of C, but it is easy to use and for most functions, there is already code ready to use out of the box or with minor changes. The Pi can have huge programs and handle massive amounts of data, if you have a large enough USB stick or microSD card. The Arduino is very limited in space and memory, though it can be attached, with some extra work, to various mass storage devices.
I think you get the idea.
What kind of Pi do you want?
There are four kinds of Raspberry Pi. The Zero, the One, the Two, and the Three. If you are getting a new one, just get the three. It replaces the one and the two. (The Zero is a whole different thing, for advanced users.)
In order to make a Raspberry Pi work, you will need things like a power adapter, a keyboard, etc. You might want to put it in a case. You will need a microSD card with the operating system on it. Since the Pi is a DIY device, the basic unit comes with none of this and you have to figure it all out yourself.
Or, you can buy any one of dozens of available kits that have some combination of some of the basic parts needed. Kits don’t have a monitor, keyboard, or mouse. The Raspberry Pi comes with the rarely used component jack (the yellow round thing on the back of your TV may work with it) and an HDMI output, for video, and several USB sockets. The PI 3 has bluetooth built in, so you can use a bluetooth mouse and keyboard if you want. The kits tend to have the Pi, an SD card often with the OS preloaded, an HDMI cable, a power supply, and a case. Most kits these days come with heat sinks, which are pretty much unnecessary but cool, that you can glue on to the Pi if you want.
For the more DIY oriented user, the CanaKit Raspberry Pi 3 Ultimate Starter Kit – 32 GB Edition comes with additional parts that will be helpful in building projects that exploit the Pi’s input/output pins, such as LED lights, hookup wires, and resistors, a breakout cable, and a breadboard. The way the Pi is set up, you will want a breakout system to allow you to mess with electronic components more easily and safely (safe for the Pi, that is, with its sensitive computer circuity). If I was going to give a kit to someone who I knew was going to mess around with the hardware, this is the kit I’d probably pick.
The Operating System, which you can download at the Raspberry Pi site and install on the microSD card, also allows for some options. And, it can be a little confusing.
There is a “system” called “noobs” (for Noobie, I assume) which is the easy way to install Raspbian. Or, you can get Rraspbian sans Noob, which is apparently the hard way to install Raspbian. I’ve done both, but I don’t remember if one is actually harder.
Raspbian is the basic OS for the Raspberry Pi, and it is a Linux distribution based on Debian (get it? Raspberry Pi Debian = Raspbian?)
The Raspbian distribution formerly used LXDE as the desktop, a lightweight, not very fancy, stable desktop. But, recently, the desktop was redesigned to be much sleeker and nicer (but still basic and efficient) and has been renamed Pixel. (Pixel as in Pi-something, but also, named in part after the author’s experiences as a young child playing peek-a-poke in Basic on his IBM clone.)
You can also install a version of Ubuntu Mate. I’ve done that. I don’t recommend it. The Pi is not meaty enough to pretend to be a normal desktop computer when saddled with the extra overhead. Pixel is the way to go. But it was fun to play around with. Another option is the OSMC, or Open Source Media Center, if you want to use the machine as a media center. There are others. I’ve no experience with them, so I can’t tell you much about them. But I can tell you this very cool thing: You put the OS on the microSD, and put the microSD in the Pi, and that is what determines what OS you are using. So, you can swap between operating systems but just swapping cards. How cool is that?
One especially advanced but seemingly widespread use of the Pi is to build a gaming device. You install some software. Then, you install the bios of one or more gaming systems. Then you install the games that go with that gaming system. Obviously, you will only install systems and games that you already own, and not find anyplace on the Internet to download them. Then, you have all those old console games on your Pi. You’d probably buy some game controllers to hook up to that device, and you’d probably run it on your TV.
All the information you need to make all of this work can be found either on the Raspberry Pi site, or at a destination linked to from that site.
Raspberry Pi Cases
As noted, you can use the Raspberry pi as a regular, low power but usable, computer and at the same time make a cool case for it. This is a bit like having a laptop that you carry around, but instead of a laptop, it is a box of Altoids. Or some LEGOS.
Instructions to make the Altoids Pi case are here.
There are a gazillion projects on line that use the Raspberry Pi. Here, I’ll give you just a few examples. Most of the examples use Raspberry Pi 1 or 2 (probably, 2 is the most common) and in most cases you’ll want to use a 3. So, the best way to get good instructions for a project is to look at a few examples and hopefully among them will be one that uses the Pi 3.
Here is a somewhat slow but a good start on a PIrsonal Assistant. You can make this run faster if you tweak it (and use the Pi 3):
Do you know what Tor is? If not, maybe find out. Given the current political climate, it may become more important. Anyway, you can make a Tor Router.
There are many picture frame projects out there. Just search for Raspberry Pi Picture Frame.
Here is a system that controls your lights using voice commands.
If it was me, I’d skip the voice feedback. The detailed instructions are HERE.
At first I thought this Pi controlled espresso machine would be dumb, because really, what can a computer to do make an espresso machine work better. Then I looked more closely at it and realized this is a thing.
Stratux looks interesting. I remember my uncle, a Franciscan missionary who would stop by now and then on his way to this or that remote place, invented something like this back in the 60s. Stratus is a device you use to identify aircraft in your vicinity, using the plane’s ADS-B broadcasts.
I’m not going to point to a particular media streaming project. There are many, many such projects and it all depends on what you want to do. Just do a search for using the OSMC system on Pi. Or, just a simple music streaming machine.
Same with console gaming projects.
People make Minecraft servers. Generally, if there is anything you might like to dedicate a computer to, that is on all the time, the Pi may be the way to go. It is very low power demanding, and cheap enough that you can dedicate this card to that one purpose, leave it running, and give it just enough maintenance to keep it from being coopted by nefarious hackers.
A print server, a file server, a local web server for your own uses, a system that puts your google calendar or other stuff on a TV screen (or other screen) for your convenience. Each of these idea has 20 or 30 iterations out there.
I hear someone is working on an “Election Converter” that runs on a Raspberry Pi 3. I’d send you a link but the instructions are written in Cyrillic.