Ambient Light TV with a Raspberry Pi and a Webcam (Part1)

After finishing my Arduino 8×8 Led Screen, I got a Raspberry Pi. This is what I made with it! A 50 Pixel RGB ambient light rig for my TV.

The colors are sampled from the edges of the TV screen using a webcam. After sampling from the captured frame, each RGB led is updated with the appropriate color on screen. Watching movies and playing games with it turned on is awesome!

The initial prototype used an Arduino. The color sampling was done on the PC and sent to the Arduino with serial output. However, with that setup I could only use it when my computer was the input feed (cloned monitor to TV). I also managed to break my Arduino, so that forced me to use the Pi instead.

With the webcam approach, I can use it with any feed: cable TV, XBox, Apple TV, Steam Big Picture and the Raspberry Pi itself. I briefly looked into HDMI splitters and frame grabbers but that was all way too expensive.

I took a load of work in progress pictures while making it, I’ll post those in part 2. Overall it took about 6 weekends to complete, over a period of 7 months.

Read part 2 here!

Arduino 8×8 LED Screen

Last year (March 2012), one of my colleagues at work was showing off his awesome automatic driving RC car project. He introduced me to Arduino and showed me where to get it. I got the SparkFun Arduino Starter Kit with a multimeter. It comes with lots of little components and a bunch of tutorials.

The tutorials were a great start, but honestly I quickly got bored. For me, the best way to learn is to just get my hands dirty and think about issues as they occur. YouTube is full of great Arduino projects, so I quickly found something I wanted to make: A 8×8 LED screen that I could potentially expand and make mini games for. At this point, I probably couldn’t even explain what Voltage, Amperage or Resistance was, but I’d just learn on-the-go.

I found a similar project on Instructables so it was easy to figure out what components were needed. I ordered them from various websites like: Hobby Tronics, Cool Components and Rapid Online.

Here are some work in progress shots. It took about 2 months to complete, but most of that time was spent waiting for components to get delivered.

After all the soldering, most of the work was C++ code, but for me that was the easy bit! You can browse it on GitHub if you’re interested.

ArduinoLEDMatrixSmall

And there you have it, a retina display for the Arduino! (viewing distance 100 meters). Finally getting it to work was an awesome awesome feeling :)

Eventually, I wanted to expand the screen to a 24×16 matrix (adding 5 more of the same blocks), but noticed I was going to need a separate power supply. All the power was currently coming directly from the Arduino, which is just enough to drive 64 leds. Adding more, would mean I needed to change the circuit layout, or add a whole new breadboard.

So I decided to park this project and move on to more exciting things. It was a great learning process though, 10/10 would recommend!

Blender Keyboard Shortcut Explorer

I’ve been learning Blender on and off lately, and one thing I learned early on is that shortcut keys are super important in Blender. It has been difficult to memorize the ton of shortcuts without looking at user made cheat-sheets and keyboard layouts. But most of them are never up to date with the latest version so I usually have to resort searching community forum posts.

Last weekend I was messing around with python in Blender and I saw that it was possible to access all the keyconfig data. I exported all the data to JSON and had fun making a html keyboard that had all the shortcuts on it. It even updates live with modifier key presses on the keyboard. Yay!

Check it out here: http://waldobronchart.be/blenderkeyboard/

blender-shortcuts

It’s a lot easier to keep up to date with the latest Blender because of the awesome data-driven-ness of it.

Depending on community response, I’m thinking of adding things like: search functionality, export custom key configs, upload code to Github and release it as a plugin for Blender.

Doomsday special post

I’ve been too busy to post on my blog, but that’s a good thing because…more time for making and doing and learning! But on a special day like this, when the world is about to end, it makes a lot of sense to post what I’ve been up to.

So this year, I did a better job of doing some of the things on my ever growing “things I want to do”-list. Among those things are: got back to drawing a bit, got some clay and modelled some heads, learned basic electronics with Arduino, made a 8×8 LED screen from scratch, got a Raspberry Pi, did some modelling in Blender, HTML5 and canvas drawing, first official game release (CSR Racing!), got a DSLR for amateur photography, got back to doing life drawing sessions, travelled to Vietnam and China for 2 months, made an ambient-lighting for my TV, got back to basics and refreshed my C++ and finally learned a bit about Linux.

There’s lots I want to show off with, but I’ll split it up into healthy little chunks.

So… late last year I decided I was going to improve my drawing skills. The plan was to draw every day for at least an hour. Surprisingly I managed to keep it up for two months (give or take). And, contrary to blank-paper-thoughts, I almost always produced something better than the day before. A good confidence boost fo sho! It’s not mind blowing stuff, but it feels good to be drawing a bit more again.

With some help from the art crew at Boss Alien, I also found life drawing sessions right here in Brighton. It turns out there are daily sessions in the building right next to where I live! Whenever I feel arty, I just cross the street to find a room full of other arty feeling people. I just love Brighton for this. We also ended up going to a monthly life drawing session next to work at The Marwoods. The atmosphere there is really great, two hours of peaceful concentrated drawing with nice music in the background. Check it out!.

I recently also stumbled onto a painting package called Artrage. Unlike Photoshop, it’s main focus is on painting and drawing on a simulated canvas. It gives you a set of real life tools like a paint tube, a pallet knife for some smearing, some pencils and brushes. I’ve been using for a bit and I really like it so far. It’s great that I don’t spend as much time setting up brushes as I usually do in Photoshop…and it has got a proper color picker. If you haven’t heard of it yet, get your hands on the demo version.

I’ll post a follow-up with pictures from China and Vietnam.

Have a great New Year, y’all!

“Edit with Intype” in context menu

I recently started using Intype instead of ugly old Notepad++. A feature I’ve been missing though, is the “Open with Notepad++” context menu option, but it turns out it’s quite easy to add one!

All you have to do is add a few registry keys. Save the following to a .reg file, change the paths appropriately and run it:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\Edit with Intype...]
"Icon"="\"C:\\Program Files (x86)\\Intype\\intype.exe\",0"

[HKEY_CLASSES_ROOT\*\shell\Edit with Intype...\command]
@="\"C:\\Program Files (x86)\\Intype\\intype.exe\" \"%1\""

To any Intype devs reading this, can you please please add a drag and drop feature? Thaaaaanks!

Edit 10/03: Yay! Drag and drop feature added!