2012-11-16

Arduino Odd Couple

I recently got an arduino. An arduino is a simple CPU on a circuit board with various inputs and outputs that you can connect wires to, and a simple operating system that lets you control how its inputs and outputs should behave.

In other words, if you build a machine of some kind, the arduino lets you control it with software, instead of having to design complex electronic circuits. Software is better because it's easier to change and develop than real circuitry. Arduino makes everyone an inventor.

My friend Tony came over a couple days ago, to explain the arduino and how it works, and to lead Will and me in a 'hello world' arduino programming project.

It was so great! First of all, the software installed on my desktop computer without too much of a fuss. Then when I connected the arduino via a USB cable, and ran the 'arduino' developer tool, everything just worked! I could edit code and run it on the arduino with a single step. Just edit and click. Boom!

A few months ago, I tried to start writing android apps, and the experience was utterly different. The android development environment was very difficult to set up, and then each app had to be organized in a very constrained way, and the whole thing was just really uphill all the time. With arduino, I had a working application within minutes. Albeit, just a blinking LED.

Having an arduino, and knowing that programming it is as easy as pie, I'm starting to daydream about what kinds of inventions I may want to make. Nowadays there's really no limit to the type of machine anyone can construct. Retail fabricators will make any metal parts I want, all I have to do is send them the 3D specifications, which are easy enough to create on my computer using free software. The question is, what do I want to make?

For years I've dreamed of building a lockpicking device. Back at Google, there were all sorts of employee social groups, and I helped found one for lockpicking. We'd meet up once a week, and pick locks from a big heavy box of them I kept by my desk. It was fun! The principles of lockpicking are fairly easy to grasp, and I always thought an automatic picker would be a straightforward design project. And I don't mean that weird contraption that just drums the pins until the cylinder turns. I mean a real picker that actually picks the pins themselves.

So, that would be a cool project. Or I could do a more traditional (in hacker circles) project like a 3D printer or a CNC device. Those are very cool, and there is definitely room for new designs and new ideas, like a clay pummeling device, that would reproduce 3D objects in clay.

Or I could do some variant of a pick-and-place machine, which would build electronic circuits. I love that idea because, if combined with a 3D printer, it has the potential to be a truly self-replicating machine, that could take raw input materials and just output a fully constructed copy of itself.

But those are big projects, and I've only just started out. So then I think, maybe I should begin with a small project. Of course, my initial intention is to go through all the sample projects that came with the arduino, and build them each in turn, and play around with making changes and whatnot. But even after that, a relatively small project might be best.

So then I start thinking about what kind of small projects to do. Sew LEDs into my clothes, and have the arduino light me up in lovely moving patterns? Make a hat that squirms around on my head? A mapping device that measures the dimensions of any room it's in, and feeds the data back to my computer?

I just don't know. But the daydreaming process is so pleasant and enjoyable!

By contrast, when I ran to my roommate Will and told him how excited I was about the arduino, he said, "I think arduino is silly. You should be programming the raw microcontroller."

Huh? Did my dear friend Will just seriously suggest that I take a plain CPU - not even a motherboard, but just the chip itself - and try to program it with no operating system running on it, and no computer attached? Yep. That's what he suggested.

I told him, "why do you suppose we aren't doing that already? There are all sorts of microcontrollers we could harvest from junk devices here in the house. Why haven't we been harvesting and programming them all this while? Isn't it because its really really really really hard and something only insane, freaky, gifted people would do?"

That's Will though. He'll make these pronouncements as if they make sense. In some cases he really is joking, but in other cases he's not. And unfortunately, it means that all his suggestions have to be either taken with a grain of salt, or else scrutinized really carefully. I mean, he could never program a raw microcontroller. It's completely beyond either of our skill levels.

I remember one time I was considering getting a hard drive, or more RAM, or something like that for my desktop system, and I asked him what he thought I should get. He said, "I'd wait on it if I were you. The technology's going to get much faster."

It sounded like it made so much sense. Until I thought about it. Oh! Of course the technology is improving. If I wait to buy the thing I want, it'll still be the case that I could wait for a faster version. Will wasn't advocating waiting for a particular iteration of the technology that he expected to arrive soon - he was advocating permanently waiting. When I realized this, I started calling him on those kinds of pronouncements, and he'd then respond by saying something like, "yes, I don't think it's ever a good idea to buy more RAM. You do it when you have no choice. If you have any choice at all, you shouldn't do it."

So, there's clearly a philosophy at work. But it's not the philosophy of helping me get the best product on the market. It's more of a philosophy of nay-saying every idea that isn't his own. He suggested I not get RAM because he himself had no immediate need of RAM, and that was how he assessed my request for advice. He thought the arduino was silly because he himself had no immediate plans for it.

He's not always that way. Sometimes I'm able to sort of wrangle him into considering a project as something actually worth participating in. And then he's great! He has ideas, he solves problems, and acts like a normal creative person. But he apparently sees everyone else as if they're just himself, in a different location. I'm overstating it, but that's how it appears sometimes. I wish he could have an attitude more along the lines of, "I don't know what you're working on or why it's good, but I'd love to participate and find out!"

No comments:

Post a Comment