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!


Ted Carnahan said...

I have to admit, this is pretty cool. I dream about a robotic kitchen too. While this is really fun, the fact that you have to get the eggs and bacon out makes this pretty hands on. If you just left it in the pan overnight with a timer to start it in the morning, you'd end up with a robotic case of food poisoning. I guess the next step is to find a way to keep the food cold overnight, then switch into cooking mode...

KLP said...

@Ted: I'm envisioning a bacon printer of sorts ...