Last week I received two Raspberry Pis in the mail from AdaFruit and just now have some time to play with them. The Raspberry Pi is a minimal computer system that is about the size of a credit card. In the embedded systems community, the excitement is for obvious reasons, but I strongly believe that such a device can help collect and use data to help us make better decisions because not only is it a computer, but it is small and portable.
For development, Raspberry Pi can connect to a television (or other display) via HDMI or composite video (the “yellow” plug for those still stuck in the 1900s haha). A keyboard, mouse and other devices can be connected via two USB ports. A powered hub can provide support for even more devices. There are also various pins for connecting to a breadboard for analyzing analog signals, for a camera or for an external (or touchscreen) display. An SD Card essentially serves as the hard disk and probably a portion of the RAM. The more recent Model B ships with 256MB RAM. Raspberry Pi began shipping in February 2012 and these little guys have been very difficult to get a hold of. I finally got tipped off as to when more became available by following the Raspberry Pi subreddit. Raspberry Pi was originally not designed with geeks in mind. In fact, they were originally designed to teach school children about computers and programming.
The figure below shows the size of my Raspberry Pi versus the size of the credit card I purchased it with (just kidding). The price is also small, at about $35 depending on where you buy it!
So what can you do with it? I imagine almost anything a computer can do. Just remember that you are limited by lightweight CPU, power restrictions and potential heat issues. Raspberry Pi does allow outputting high definition video though. I have not done enough testing to check these though.
Here are some generic ideas:
- Realtime informational displays of data and graphics on a large display.
- The Raspberry Pi conforms to some standard that allows it to be mounted (with assistance) to the back of an HDMI display.
- Use the RPi as a dedicated system for pulling data from other systems, doing some lightweight processing (or pull results from another system) and then display the results.
- Small, portable data collection and transmission devices.
- Raspbery Pi can be connected to AC power of course, or using a MicroUSB to USB cable, similar to those used to charge Android devices.
- Connect a small (or regular sized) wireless adapter, or 3G/4G dongle for data transfer.
- Connect a Bluetooth dongle for communication with other data collection devices (think GPS receivers etc.).
- Connect an IR receiver via USB for remote control.
- Connect a USB battery backup for times where AC is not available (5V) such as in the field, or when an automobile does not provide power.
- Development of data-driven “fat” clients.
- Use Raspberry Pi to make automated decisions using machine learning using your favorite development tools and statistical libraries including R. Obviously, mileage may vary. We are not talking about 8-core Xeon CPUs here…
- For use as a “motherboard” (pun?) for collecting and analyzing analog signals using a separate breakout board for Raspberry Pi.
It is important to understand that hardware compatibility is more hit-or-miss than it is with a standard desktop or laptop. Certain chipsets must be matched, and drivers must be compatible with the ARM architecture. To research which items to purchase, I took a look at the RPi Verified Peripherals wiki page.
A similar platform I was eyeing was the Arduino. The biggest win of the Raspberry Pi over Arduino (I believe) is that Raspberry Pi is a mini-computer that can run a standard garden-variety operating system (well, Linux), whereas Arduino is a platform for collecting and transmitting analog and digital signals using its own software.
So, what do I plan to do with my Raspberry Pis? It is kind of secret… OK, not really, but I don’t want to write about it until I have something to show! What will you do with yours?