Home 
 Map 
 ⇑ 

 ⇐   March 15th, 2015   ⇒ 

Copyright 2015 Michael Anttila

I finally got my hands on a Raspberry Pi computer! For those of you who don't know what this is, it is a computer that is the size of a credit card, but has all of the functionality of a regular desktop PC.

Well, it is a little underpowered compared to a full PC, but it still has all the basics: HDMI video+audio output, USB ports, network port. It even has composite video and analog audio output ports. Instead of a hard disk, it has a slot for an SD card (like in many digital cameras). The real killer feature is the price: $35 for the motherboard. That makes it the cheapest general purpose computer you can buy.

They just came out with the Raspberry Pi 2, so a bunch of people at work got together to do a group buy. I've been on a fairly strict budget for the past few years, so I missed the group buy when the first Raspberry Pi came out. I'm still on a strict budget, so I didn't take part in this group buy either, but my coworker Nick had his old Pi from the first batch that he was willing to lend me. In the end, he wound up buying a Raspberry Pi 2 and selling me his old one (motherboard + case) for $20.

Normally I wouldn't break my budget even for such a fantastic deal, but it just so happens our media PC died, and I thought it might be interesting to see if I could replace it with a Raspberry Pi. We were using our old media PC to watch internet video on our TV. It turns out that the Pi is not quite powerful enough to run a full browser with all the plugins required to watch video, but it is powerful enough to stream audio+video from my PC.

For those of your interested in such things, here are the details. For everyone else, skip to the next paragraph. Here is what I did to turn the Raspberry Pi into a wireless video streaming device:

So now when Angela and I want to watch an episode of The Voice, we just fire up Open Broadcaster, load CTV.ca in a web browser, set it to full screen, and it gets streamed over to the Pi, which plays it back on our TV and stereo system. OK, it's a bit more painful than that, but it works well enough that we won't have to buy a new media PC for a while.

There is another project that I've been wanting to work on for a while, but I had no idea how to start until just a few months ago. Growing up as a Star Trek fan, I've always wanted to give voice commands to my computer from anywhere in my house. The main application I want is to be able to request any music from my library no matter where I am. For example, if I'm folding laundry in the family room and feel like listening to The Prodigy, I want to just call out to my computer to play it for me instead of having to bring all the laundry over to where my CD collection is.

For years I've been wondering how to accomplish this. After all, writing voice recognition software is difficult, and wiring my entire house with microphones seems incredibly expensive. But technology has a way of accelerating exponentially and a few months ago I realized that I now carry a microphone in my pocket. Not only that, but this microphone is equipped with built-in voice recognition and is connected to the computer network in my house. Also, over the last couple of years I have completely digitized my entire music collection into MP3 format.

Realizing this, the solution is now within my reach: I just have to write an Android app for my phone that can send commands to my computer. Then I just have to write a program for my computer that can interpret those commands and build playlists on the fly from my music library. The final step in the plan is to plug my computer into a "whole house" FM transmitter so that I can pick up the signal from any radio in the house. I was a little worried that putting an FM transmitter in the basement might not give the best results in terms of range, but that is where the Raspberry Pi comes in.

Once I acquired a Raspberry Pi, I realized that I could have my cell phone talk to that instead, and it is so small that I can put it anywhere in the house. My entire music library fits on a 64 GB thumb drive, and I already owned one of those. The path was clear now, so I spent a few evenings coding up a "proof of concept". Most of you probably saw the video when I posted it a few weeks ago.

Here is how the "Voice Play" system works:

For now, the Raspberry Pi audio output is connected directly to our stereo in the basement because we are using it as a replacement for our dead media PC. In the future, once we get a proper media PC, I'll move the Pi upstairs to a central location and plug it into an FM transmitter.

Just in case anyone is interested in repeating this project in their home, all the source code I wrote is available at https://github.com/MichaelAnttila/VoicePlay. I also have detailed instructions for how to configure everything. I haven't committed the instructions to source control yet, so if you want them, just ask me. At the moment, it's still at the "proof of concept" phase, and can only play one song at a time.

Technical Details: This picture was taken with my 5D Mark II + Tamron 28-75mm at 75mm, ISO 400, f/16 for 1/100th of a second, with the help of my Speedlite 430EX flash.

Comments

Cool! Way better than jetpacks.
-- Alix at 7:41pm, Sunday April 5, 2015 EST

POTW - Photo Map - Home - Feedback

Hosted by theorem.ca