Interactive Floor Projection Displays

A little more sophisticated than this...

A little more sophisticated than this…

This weekend we went to the The Tech Museum of Innovation, aka “The Tech,”  in San Jose.1 We had a great time and saw a lot of amazing things.  (Also, a lot of people greeted me as “Bender!” because I was wearing the Bender hat my wife knit for me.)

One of the coolest things we saw was an interactive floor projection display entitled simply “Social Circles.”  A projector in the ceiling created a white rectangle on the floor – with a multicolored border.  When you step onto the display, you have to cross through a colored bar along the border.  Once inside the display, your feet are surrounded by a small circle of light – the same color as the bar you passed through.  As you walk (or run!), the circle follows you around.  When someone else is on the display (with their own circle) and is close to you, your circles will join for a moment into a larger circle of a combined color.  As you separate, your circle will retain it’s inner color – but will have a border color that is your original color on one side and the color of the person whose circle you combined with on the other side.  As you go along and interact with more people, you can gather more and more colors onto your outer ring.

It was awesome and awesome.  Kids were running across, crashing into one another, chasing everyone else, collecting colors, and trying to avoid gaining colors.

This gave me SO many ideas on how to turn this kind of a display into an interactive game/project that I want to learn how to build one of my own.  After doing some minor internet research I’ve found a few resources – some a lot more user friendly than others.  There are some commercial, some semi-commercial, and some open source ways of creating a floor projection display.

One system, created by Proximity Labs, involves a stage with RFID sensors and slippers with embedded RFID tags.  Some systems use Kinects or cameras in conjunction with projectors, some only use Kinect cameras, one seems to use the tracking of QR-code like tags, others seem to use proprietary 3D scanners, and some don’t seem to show much of what’s under the hood.  Two of the more promising ones are the Open Source Computer Vision ((Or, OCV)) project and the UbiDisplays project.2

The difficulty with OCV project is that it seems to be geared towards vision in robots, which isn’t really what I was interested in.  Rather than giving a robot sight, I’d like to create a way to track and interact with multiple people using, ideally a webcam, and a projector.  I’m not even that interested in fine grain detection, so much as tracking the location of people across a display area, and integrating their movements into the scene.

Starting from what I have now, which is a lot of interest and enthusiasm for the project but little knowledge of how to make it happen, it looks like the UbiDisplays system might best suit my needs.  This system seems like it incorporates a Kinect to take inputs and then manages all of the interactions through the use of web based logic3 or possibly through some Flash animation.  I just don’t know if it is capable of handling multiple sources of input (more than one person).  The Po-Motion system is a commercial product that seems like it might also be an interesting way to go – as long as the product allowed the purchaser to create their own custom interactions/games.

All other things being equal, I would prefer to go with an open source solution – but as long as I can create what I want without restrictions, I’m happy to pay for the software.

SO, is this something you know anything about?  Do you have any suggestions on where I could start?

Default Series Title
  1. Photo courtesy of Carbon Arc []
  2. One interesting possibility is a display which uses edge IR LED’s to detect motion – I just don’t know if it would work at all for this kind of a project. []
  3. HTML + javascript and CSS []

Upcycling Plastic Bags into Fabric

Releve Design - How to Fuse Plastic Bags

Releve Design – How to Fuse Plastic Bags

Last year was our family’s second time at the East Bay Mini Maker Faire.  October in Oakland tends to be a really rainy time – and the last few EBMMF’s are no exception.  The rain didn’t seem to dampen the crowds or diminish attendance, but it did make the experience a little more trying.  ((Don’t get me wrong – I love Maker Faire, even little ones.  But, the EBMMF has been a tough one to love.  There are small with tight quarters inside classrooms or open spaces outside – in the rain, there were long lines for the very few food options, and most of the vendors ran out of food really early on))

So, the point behind this post – I learned something really awesome I’ve been looking forward to putting to use.  Some ladies, unfortunately I don’t recall who, were teaching people how to fuse plastic bags into a fabric.  The basic process was shockingly easy – layered sheets cut from plastic shopping bags are ironed together between protective layers of paper.  This one site has a good detailed description of the process with lots of tips and suggestions.

I’d love to make a bag, backpack, project enclosures, package linings, maybe a kite, and/or parachute using this stuff.

RepRap Wally: Turtles all the way down

A plastic Wall-E

A plastic Wall-E

RepRap Morgan was recently awarded the Gada prize, which was the first time I had seen a “SCARA arm1 robot.2 Reading Hackaday lead me to read about RepRap Wally, another SCARA based robot.3 Anyhow, My favorite part about this robot is that it boasts it can print parts for larger versions of itself.

While building more 3D printers is, perhaps, a noble goal – democratizing production and all that – actually working to churn out parts is a dull business.  On the other hand, the idea of a robot capable of building increasingly larger iterations of itself is incredibly amusing.  As is the idea that a robot could build smaller and smaller versions of itself.4

Of course, this then makes me think of a chain of robots – one set making ever larger and another set making ever smaller robots… robots all the way down.

  1. Yes, I know that’s redundant []
  2. Photo courtesy of Haceme un 14 []
  3. Watching this orange plastic robot in action, it’s easy to imagine they gave it the name “Wally” for looking somewhat similar to Disney’s Wall-E. []
  4. Of course, smaller versions would really only be more useful if they printed with greater precision []

What are the minimum parts necessary for an Arduino?

Outside a MintDuino, a book is a man's best friend

Outside a MintDuino, a book is a man’s best friend

It was hard for a beginner like me to imagine that an Arduino actually requires a whole lot less than all the stuff you would see on an Arduino Uno.  Assembling a MintDuino – and slowly pulling parts out to see what was really necessary – helped me understand what was truly critical to its operation.

Inside a MintDuino, it's too dark to read...

Inside a MintDuino, it’s too dark to read…

I found it useful to know what the (near) minimum necessary components of an Arduino were so that I could build a small project directly around just the chip and whatever critical parts were absolutely required to run the circuit.1 I wanted to build the circuit as small as possible – not to save on parts or cost, but to make sure everything could fit into an Altoids tin.23

As a side note, there is a very definite monetary benefit to figuring out how to build a minimal Arduino compatible device.  A brand new Arduino will run you about $30 – whereas soldering a chip into perfboard with the least amount of parts required would probably only cost you about $9 or less if you source the pieces carefully.  While an actual Arduino form factor makes a lot of sense when you’re using off-the-shelf shields, it’s not nearly as important when you’re building a very simple or completely custom project that you don’t intend to take apart.  And, when you’re talking about leaving a chunk of electronics in a project, it’s a lot easier to leave $9 in parts inside rather than a $30 Arduino board.

Here’s what I found to be the (near) least number of parts and (basically) the smallest configuration for the programming MintDuino:

The (almost) minimum you need to upload an Arduino sketch

The (almost) minimum you need to upload an Arduino sketch

This is the “almost” minimum since the configuration above includes (1) a red power indicator LED and a 220 Ohm resistor and (2) a red wire, another red LED, and another 220 Ohm resistor for running the “Blink” sketch.  Once you remove those parts, you could still upload a sketch to the Arduino – but it wouldn’t be able to do anything.  You’ll notice that this configuration doesn’t even include the usual reset button for the Arduino.4 It’s not pictured, but you’d also need a way to communicate with the Arduino, such as a USB cable plus FTDI Friend or FTDI cable.

Here’s what I found to be the (near) least number of parts and (basically) the smallest configuration for running a sketch on the MintDuino:

The (almost) minimum you need to run an Arduino sketch

The (almost) minimum you need to run an Arduino sketch

Again, I’m qualifying the statement with an “almost.”  This nearly minimum configuration above again includes a red wire, another red LED, and another 220 Ohm resistor for running the “Blink” sketch.  You could remove all of these parts and connect whatever else you wish the Arduino to do for you.  While the power LED indicator is useful to know that your project has power, I could see some situations where you wouldn’t want it – such as for a project that needs to work in the dark without drawing undue attention to itself.

Besides fiddling around yanking parts out of my MintDuino to see what would happen, I also found some interesting tidbits about building a minimum possible Arduino.  If your project is tight on space or you are tight on parts or budget, you might find some of the following useful:

I’m still very new to this whole Arduino thing, so if you notice something wrong here, please let me know so I can fix it.

My very next Arduino project is going to be something that fiddles with my television’s IR (infrared) control codes.  You can expect some definite wackiness soon…

Default Series Title
  1. Since I wanted to include a picture of the MintDuino inside and out, I couldn’t help putting a spin on this classic Groucho Marx quote. []
  2. I ended up using the Mintduino tin – and actually recycling some of its packaging into the project as well []
  3. What project am I referring to? Stay tuned… []
  4. I discuss this more below, but I don’t think you need the crystal and two capacitors for the “external clock” functions of the Arduino if all you’re doing is uploading a sketch. []

Arduino Adventures: What I learned building a MintDuino

A MintDuino

A MintDuino

My first real foray into tinkering with an Arduino began a few weeks ago with a MintDuino.  About two years ago I contemplated trying one out, but I never pulled the trigger.  This was due to a combination of decision paralysis, a very short attention span1 , and a plethora of other projects that were always vying for my2 attention.

Overall, I think this was a good place for me to start learning about Arduinos.3 The nifty thing about the assembly tutorial for the MintDuino is that it takes you slowly through the creation of an Arduino.  I learned a surprising amount from assembling this little breadboard Arduino – more so than I ever did by just making an LED blink on a regular Arduino Uno.

  • The first thing the tutorial does is show you how it converts the power from a 9 volt battery into the 5 volts that an Arduino would use.  I found this incredibly useful.  Even if I had stopped reading the tutorial at Step 7, I would have learned that with some capacitors and a “voltage regulator,” I could create a system for converting power from a 9 volt battery into something I could use in a different project.  Sure, I didn’t learn how these parts made that happen, but this was something I could put to use immediately, if I so chose.
  • The second thing the tutorial takes you through, at step 9, is adding a “crystal.”45  This wasn’t particularly useful to me – except that now I know how the Arduino is able to keep time.  While doing some ‘net research on what constitutes a bare-bones minimal Arduino, I discovered that it is possible to omit the crystal and two capacitors in favor of the chip’s internal clock.
  • The third thing I learned from this tutorial, at Step 12, is what appeared to be the bare minimum MintDuino setup required to run a program that was loaded onto the Arduino’s chip.6 Now, it’s possible to remove several more pieces and still have a working Arduino.  If you just had to have an Arduino with an absolute minimum of parts (I’ll get to why later) you could pull the red LED, the 220 Ohm resistor, the black wire going to the red LED.  The result would be a pretty minimal Arduino that didn’t have a status/power LED, but could blink a single green LED.  Remove the green LED, the red wire going to it, and the 220 Ohm resistor going to the green LED, and you have a really stripped down Arduino – that can’t do anything.  But, if you were to design your own Arduino project, you could build this minimalistic Arduino, add connections to whatever additional parts you needed, and solder it all together.
  • By the time I got to Step 17, I learned the connections to the ATmega328 necessary to program the chip with an Arduino program.7  This was interesting to me because it meant that any circuit that I wanted to design, but still have the capability of reprogramming at a later date, would have to have these connections.  However, it would probably easier to add a 28-pin socket or 28-pin ZIF socket to your project so you can remove the chip, reprogram it, and replace it without much fuss.  ((I mean, why add a bunch of wires you only need for reprogramming to a project when you can add a little socket?))

Overall, tinkering with a MintDuino taught me quite a lot about Arduinos.  Staring at an Arduino for the first time out of a box, it’s a little daunting.  There are a ton of little surface mount parts and pins and I had no idea where to start.  I had made an LED blink – but that didn’t seem to do much for me.

Having assembled a MintDuino, I already knew what a bunch of the parts already did – so I could focus on building on my knowledge from there. Having the breadboard handy meant it was easy to connect more wires and try out other sketches and configurations.  Lastly, I went back over my work from the first time I built the MintDuino and rewired it so that the little red, black and green wires didn’t have any slack.  This let me see better which wires when where – which meant I could concentrate on working with the other pins.

I mentioned earlier why I was interested in finding out the absolute minimum amount of parts necessary to operate an Arduino.  Well, more on this in the very next post…

Default Series Title
  1. Oh!  A squirrel! []
  2. Oooh!  A shiny! []
  3. I say “start” because my prior experience with Arduinos consisted of just putting shields on Arduinos and uploading sketches. []
  4. I don’t know why they call it a crystal – it just looks like a little bit of metal with two wires sticking out []
  5. I’m just kidding.  I’m guessing they’re using a quartz crystal – similar to quartz watches – as a timer/clock.  For those of you who aren’t familiar with quartz watches – they keep time by applying a little bit of electricity to a piece of quartz and counting the vibrations of the crystal. []
  6. The Arduino’s chip is called an ATmega328 []
  7. Or, in Arduino parlance, “sketch” []

Arduino Adventure Series – The Adventure Begins!

Arduinos, Arduinos, Arduinos... where to start?!

Arduinos, Arduinos, Arduinos… where to start?!

A few weeks ago I started fiddling with an Arduino in earnest.1 I’ve built things using Arduinos before, but each time all I did was slavishly follow a tutorial as it took me step by step through a process.

Just as a child memorizes the Pledge of Allegiance, committing to memory the right sounds in the right order, I had a grasp of the assembly – but not the underlying meaning.  Sure, I built a MakerBot Cupcake CNC (“Bender”), a MakerBot Thing-O-Matic (“Flexo”), an Egg-Bot, a Polargraph/PlotterBot, and an IoT Printer.  ((FYI, my MakerBot Replicator 1 is named “HedonismBot“))  However, I have only the dimmest understanding of how the things I did actually created the things I ended up building.

However, I want more – there are several ideas I would like to create using electronics.  One is a sonic screwdriver flashlight.  Another is device for … shall we say…2  interfering with television infrared codes.3

My goal for this series of posts4 is to document my triumphs and failures playing with an Arduino.  I think it’s time to get started on that next post now…

Default Series Title
  1. Photo courtesy of Arkadiusz Sikorski []
  2. Mu-ah-ha-ha!!! []
  3. Nope, not a TV-B-Gone []
  4. I know it’s ambitious to call a post the “first” post – but dammit, a man’s got to dream []