Monday, August 25, 2008

Arduino! Make me breakfast!

When I was younger, maybe when I was watching the Jetsons, I had a dream that someday, food would be super cheap and always perfect. Because we'd have robots do everything delicate work that only the world's finest chefs were capable of. The cool part was that you wouldn't have to pay robots to work and they could cook for you anytime you wanted. With dreams like these, it's no wonder I was more of a husky kid.

With the Arduino, I've put together what I hope will set in motion the R&D that will make my dream a reality. I decided to start with the first meal of the day, and the most important one I don't have on most days. To be honest, I’m usually running out the door in the morning, and I don’t have time to sit at the stove cooking a real meal and making watching the coffee maker for 15 minutes (that’s about how long it usually takes me).

So I hooked up a coffee maker, and two electric stove surfaces to the RelaySquid. Then I ran the RelaySquid with a slightly modified version of the BitDJ code, which I edited to make it time the signals to the RelaySquid to turn on the bacon hotplate for 7 minutes, followed by coffee for 2 minutes, and then the egg for 7 minutes (the coffee and egg run in parallel to start). The end result is crispy bacon that’s had a chance to dry out a little, coffee that’s not too hot, and a fresh hot egg!

To start out, I put together the device. I used a TouchShield on the top, with a small prototyping area so I could place down some LEDs (I’ll talk about those later). Then I put the Arduino on the back, and a Lithium backpack on the back too.

Here’s a picture of the controller, assembled:

The circuit is actually embarassingly basic… the TouchShield controls the Arduino, and tells it to turn on or off pins numbered 4, 5, 6, and 7. These pins are connected with wire to the RelaySquid. Arduino pin 4 is connected to the RelaySquid port 1, which is then connected to the coffee maker. Arduino pin 5 is connected to the RelaySquid’s port 2, which controls the egg hotplate, and pin 6 is connected to RelaySquid port 3, which controls the bacon hot plate. I had a toaster on the system for a while, but then I realized toasters are already easy enough to use!

I bought really low-end coffee maker and hot plates from Home Depot:

That’s all… the rest is source code, which you can find here

I took some videos too. When I started cooking:



A few minutes in:



All done!

Don't be a rectangle...

...Be a circle! Meet the RelaySquid. It's a circular PCB with four relays that each switch an extension cord on/off , all of which can be controlled by an I/O board like the Arduino.

Not to be confused with any other type of squid:

There's also a plug that goes into the wall to power each of these outlets, as well as pins that connect directly to the Arduino to control each of the relays, in addition to powering the circuit itself.

It's super easy to get up and running, even if you're new to the Arduino. The pins are arranged as follows:

Just plug G into the Power GND pin on the Arduino, and V into Power 5V on the Arduino, and then connect your Arduino pin to a relay pin. Once you start switching your pins on and off, you can hear the relays clicking!
Here's a quick video I made to demo the project. I'll post some code later today.


Why I like Make

Wow... I can already tell this is going to be a busy week for blog posts and projects. There's just so much to catch up on.

I can't believe it's Sunday night returning from vacation, and I'm literally glued to browser reading Make. The magazine is pretty inspirational to guys like me (I guess you'd call me an engineer, turned wannabe artist designer, turned hobbyist). If you haven't read it, I recommend it, and you can usually find it in Barnes & Noble. I've even started to leaf through Craft magazine, and that means I might have to start sharing some of the electronic clothing I've been making lately (but that's a longer story for another time).

But onto the good stuff... Who doesn't enjoy Make blog? I just spent the last 2.5 hours on there, browsing through all the ridiculously cool ideas everyone has out there. It's also worth noting that I'm pretty sure Philip (the guy who writes the blog) is an all-knowing genius. I don't know anyone else who picks up the kinds of projects he does from the far reaches of the net galaxy.... impressive.

On another note, I've also noticed a recent trend towards posting videos on Make blog with vimeo instead of youtube. I just tried it out, and I'm already convinced... cool stuff! Here are a few videos I've been waiting to upload of projects I made (I'll be sure to talk about how I made them later this week):


DJ Light Show with the RelaySquid from Matt Bitz on Vimeo.


Sonar Light DJ with RelaySquid from Matt Bitz on Vimeo.

Anyway, the best part of Make blog is the fact that they archive all the past posts in a really linear way, so it's easy enough to quickly flip through everything you missed over the last couple days (or week in my case). Thanks, Make!

I'm back!

Wow, that was pretty crazy! I'm finally back from vacation, and got a chance to get caught up on all kinds of stuff. Like links :)

I just stumbled across this video by Ladyada (looks really cool, and way to go with the high quality camera - I'm so jealous!). Also, that's a really cool opening animation they found.

I also finally got caught up on some emails, and lots of people emailed in saying thanks for the comparison article, but also, some corrections. Thanks a lot - I was hoping to make people's lives a little simpler by understanding which boards work with shields. Actually, if you interpretted the stars as performance or price, they're completely reshuffled. For instance, some of the boards are definitely cheaper than others. Of course I'll always favor the original Arduino, but that's just me :)

Finally, I got a chance to upload some videos and new changes to the web site that I've been really slacking on, but over the next couple days I'll polish it up, and hopefully that'll make the rest of the website easier to use. I hope it works!

Also, Justin's really excited because all the new PowerSquid's just came in, and he's going to write up a little post about them...

Sunday, August 10, 2008

Arduino Hardware Spinoff Comparison Guide

The Arduino platform is great for many things, but recently there's been a large number of spin offs, especially at the low-end of the spectrum. New entrants like the Sanguino, and the Skinny have come on to the scene to supplement older spinoffs like the Boarduino, Freeduino, and the Bare Bones Board.

This is all terribly confusing, so I've tried to write a little run down of each of the major spinoff core boards, and how they compare to the original.

(EDIT: Paul made a really good point - this review is especially written with a perspective on how well the spinoff boards interface with different shields out there. Actually, each one has it's own special niche right now that it's meant to serve. On the other hand, I think shields are really cool, so this is written from that "editorial bias" - ha!)

Arduino and Arduino Diecimila
Score: ***** (5 out of 5 stars)
The original Arduino, easy to program, comes pre-assembled, and is pin-compatible with all major shields available from liquidware, ladyada, and libelium. It's assembled, works out of the box, and can start running sketches and programs almost immediately. It's a blast to program, and downloading programs to it is really easy. By comparison, this board is a couple bucks more expensive than the other boards, but since it's pre-assembled, it's more than worth the few extra pennies. The biggest downside is that the name, "Diecimila" is perhaps one of the hardest words ever to spell (luckily Google is nice and usually suggests the correct spelling)!

Freeduino
Score: **** (4 out of 5 stars)
An early spinoff from Arduino, this project wanted to keep all the benefits of the Arduino without paying name royalties to the Arduino founders. Consequently, they came out with a cheaper, lower end board that retained most of the features of the Arduino. Most notably, this board is also pin-compatible with the Arduino, so it works with all shields. The downside, of course, is that the builders were a little design-challenged, so the board doesn't look as "finished" as the original Arduino.

Skinny
Score: ***+ (3.5 out of 5 stars)
A newer version from the guys over at Sparkfun, the Skinny is a curious little device. It doesn't support auto-reset programming, so programming the device might be a tad bit more complex than others on this page. Also, it's a slightly different form factor, that comes without pin towers, so a small amount of soldering is required. Personally, the red color is a little prettier than the blue of the Arduino, so that's a plus, but the downside is that it doesn't support any shields out of the box. It remains to be seen whether it would work with shields after a little soldering. The jury's out still on this one, but it could be a promising device if someone can find a way to make it support shields.

Boarduino
Score: ***+ (3.5 out of 5 stars)
A version of the Arduino that only plugs into a bread board. This board is meant to be a basic, entry level board, which typically comes as a kit. Unfortunately, I'm a beginner, so it took me a while to solder the thing together, but for others, here's a link to the do-it-yourself soldering instructions (thanks Jimmy). This version works well if you're interested in doing old-school breadboard lab-type projects on a budget, but for other new projects, the Arduino works better for me... Lastly, I give this one a slight edge for its slim form factor, which works well on breadboards, it's native habitat!

Bare Bones Board
Score: *** (3 out of 5 stars)
An interesting entrant into the mix, this one comes a little cheaper than the Arduino, but the funny thing is that it costs almost as much as the Arduino when fully assembled. The downside is that although it's about the same size as the Arduino, the pins are in completely different locations, so none of the shields made will work with this board... That's unfortunate :(

Sanguino
Score: ** (2 out of 5 stars)
Sold only as a kit (yet another kit!), the main purpose of this board was to introduce a more powerful board based on a bigger Atmel. However, the thing is quite big (maybe a little unweildy), and requires assembly as well. Gaging from the pictures, this one probably takes a few hours to assemble, which likely isn't worth it for the marginal increase in power. If it were up to me, I'd hang tight for the upcoming higher powered Arduino from the Arduino.cc core team, currently being designed by David Mellis!

Friday, July 25, 2008

What are you making with the TouchShield?

I've been really busy over the last few weeks helping out everyone with specific questions on how to make this, how to code that, etc. I'm curious, though, what's everyone making with them?

Has anyone written any cool games?

Let me know!

Tuesday, July 22, 2008

Grocery shopping as it applies to DIY electronics

Has this ever happened to you? It’s a typical Sunday afternoon. You just got out of bed, and you’re absolutely starving. You go to open up the fridge…and all that’s left to greet you are half-empty jars of condiments. Though the prospect of eating peanut butter straight from the bottle entices you for a split second, you soon resign to the fact that it’s time to go grocery shopping again. So what do you do now?

Option A: You go straight to the store and buy everything that you’d ever consider eating…immediately. This usually works out to be some variety of junk food, snacks, maybe some TV dinners for good measure. But soon enough, you’ll find out that eating an entire bag of potato chips in one sitting just isn’t quite the same as eating dinner. This has been me on occasion, but I try to avoid getting that desperate.

Option B: You pull out a small sheet of paper and start writing down stuff you need to fill up on. Milk, eggs, bread, you get the idea. Then you get all this stuff, and the rest of the week you find yourself relegated to making “whatever’s in the fridge”.

Option C (and this is my big revelation): You make a list of all the meals you think you’d want to eat this week. It doesn’t have to be detailed, and you’ll probably have some guesswork mixed in. But all the important stuff is there. Let’s say you want some tacos this week. So you write down “Tacos”, and underneath, shredded lettuce, cheese, taco shells, ground beef, seasoning, and whatever other ingredients you want to add to your homemade tacos. And you do the same for all the other meals you want to have this week—you make a list of the ingredients and make sure you’re organized about getting it. You’ll probably grab a few random things along the way, but at least you know what you’ll be eating this week.

I’ve walked through all these options at one point or another. But ultimately, I’ve settled on the last one—it’s changed the way I buy, how much time I spend shopping and also has the added benefit of making sure I’ve got what I need to make a real meal when I’m hungry. So rather than just buying random ingredients (milk, eggs) or a finished product (TV dinners, or go to a restaurant), I’ll buy the ingredients that I need for a particular meal. I enjoy cooking, I like making things my own way, and I don’t feel like shelling out triple the price plus tax and tip to get my food. It’s just not cost effective, and I don’t get the gratification that I get from making what I want, how I want it, right when I want it.

Believe it or not, there is a point. As someone who’s pretty handy with things, you’ve probably said something like, “I know just the thing that would make this [gadget name here] totally awesome!”. And then you proceed to take it apart, solder random crap to it, reprogram it, and voila! A modded gadget. Well, what if I told you that you wouldn’t have to spend a ton of money to get the finished product…that you were just gonna crack open and mod anyway? What if there was a place where you could go to figure out the parts (ingredients) for your project(meal), and then you could purchase exactly those parts you need, with the project in mind? And then you could build what you want, how you want it, right when you want it?

So that’s what we are. On the one end, you’ve got the restaurants that give you the finished product and make it how they want it, and charge you a ton plus tax and tip…for something you could do yourself a lot cheaper. In our techie world, the restaurants are all the companies that build the finished product, like Apple or Sony. On the other end of the spectrum, you’ve got the people who sell the raw ingredients, the Intel, AMD, Asus. The Makes, Liquidwares, and Sparkfuns of the world are like the grocery store where you can find your ingredients. And some can even help you out finding exactly those recipes and ingredients- I mean, parts and components- for the projects on your shopping list. Figure out what you want to make, design it, and you can buy exactly what you need to make it yourself, just how you’ve always envisioned it. And doesn’t it feel good to build it yourself?

Sunday, July 20, 2008

QuickLinks: TouchShield Core Code

Wow! A lot more people are writing in with cool little projects using the TouchShield. If you're working on something fun too and want to share, just shoot me an email over at inthebitz@gmail.com!

I'm doing my best right now to organize all the source code samples, and then I'll upload them all to a central spot here on the site so everyone can have easy access to them. I'm almost there...

In the meantime, since lots of people are asking, the easiest way to grab the latest version of the TouchShield's core is over on the liquidware.org site, under the TouchShield project, "Code" section, and the file called touch-007.zip (in the spirit of the upcoming Bond movie, of course).

Ok, ok, so that's not necessarily intuitive, so for mere mortals, here's a quick link.

Thursday, July 17, 2008

Tri-State Buffer 101

Tri-State Buffers are a common form of logic for many bus applications. The tri-state obviously stands for three states, which represent the 3 possible out put states: high, low and floating.
  • High is logic 1
  • Low is logic 0
  • Floating is not controlled by the buffer (Z)

During the floating state the Output is not being controlled in anyway by the input signal.

There are two inputs and one output.
  • Input Signal - is the logic level that is forwarded to the Output signal
  • Input Control Signal - determines if the Output Signal is equal to the Input Signal or if the Output Signal is floating

  • If the Input Control Signal is logic level High (1) the Output Signal is equal to the Input Signal
  • If the Input Control Signal is logic level Low (0) the Output Signal is in a floating state




Wednesday, July 16, 2008

Why is open source hardware important to the US economy

Open source hardware is about empowering individuals to create their own products. It encourages a new behavior, called builder-consumer that fulfills the theoretical / philosophical “long tail” of consumer devices. Meanwhile, it has two (un)intended consequences: first, it is encouraging engineering education by making electrical engineering product design technology accessible to a far larger audience, and second, it is creating a newly empowered consumer who is no longer bound to traditional product hype-launch-consume expectations. The net is a fulfillment of a traditional market void in consumer products that in theory could up to double the current consumption of consumer products. In practice, because the source of the product can come from remixed products, and because open source consumer devices do not always reflect new sales (some of them compete against existing products), doubling product consumption is clearly an exaggeration, but the potential may still be strong enough to create a new market.

Friday, July 11, 2008

The Re-Emergence of Do-It-Yourself

Clive Thompson says in a recent article called How DIYers Just Might Revive American Innovation (in Wired), "when we stop working with our hands, we cease to understand how the world really works. You see this on a personal level. If you can’t get under the hood of the gadgets you buy, you’re far more liable to believe the marketing hype of the corporations that sell them. When things break, you toss them and buy new ones; you accept your role as a mere consumer."

It's a great point. Most people these days are indeed just consumers. In line with this phenomenon, though, Matt identified a new group of consumers he calls the "builder-consumer" You see them around you. Builder-consumers are those folks who buy parts or mainstream products, then hack them to do what they really want to do. Look at the multitude of home-grown projects, ranging from “modding” your car to display engine stats as you drive, to writing software that’s leaner, more user-friendly and functional for running your iPod than the hulking straitjacket that Apple likes to call “iTunes”.

So why are builder-consumers/DIY making a comeback?
  • Sometimes it’s just cheaper: In an economic slump, it can be cheaper to do things yourself than to go with a pre-packaged solution
  • Customization: In many cases, there’s no product to do exactly what you want to do- DIY enables full customization, meeting the so-called “long-tail” of consumer demand
  • Being handy with stuff: Back in the day, people used to know how to fix things, make tweaks, figure things out, MacGuyver-style

The kicker: Now these folks can find each other- and solutions to their questions- in online communities.

Tuesday, July 1, 2008

Physical computing with BitDJ

I just got back from a really fun road trip out west, and saw a lot of really cool things, like wild animals, trees (which don't really exist in New York City). It really got me thinking about *real* physical computing, I also had time to upload some other videos I'd taken that I hadn't uploaded yet.

Speaking of physical computing, a lot of folks have been asking about the BitDJ program that comes pre-installed on every TouchShield. "What can I do with it?" Well, the general idea was to make a portable physical computing application to demo the ideal combination of the Arduino with the TouchShield... like this:




You might also have discovered that if you boot up BitDJ, you can go to the system menu, and turn on inter-screen fading (which looks really cool with the hardware in-out soft fading, kind of like an Apple laptop's pulse button).

Enjoy!