Developing Physical Controllers For The Uninitiated

[Dave] hosted a one day seminar at the Illinois Institute of Technology which focused on rapid electronics prototyping for those with little prior experience blinking those LEDs. As the defacto standard for novice prototypers it’s no surprise that he gave an Arduino to each team to use as the controller-computer interface. He started the day by getting the Firmata package up and running. Firmata is a set of libraries that make communications between software and a microcontrollers simple. In this case, each team developed a Flash game that used data from the Arduino as a control.

Several rudimentary games resulted from the day. We’ve embedded video of two of them after the break for your enjoyment. Lion Vs. Pig uses potentiometers, a distance sensor, and an arcade button to play a game of cat-and-mouse (well, Lion-and-Pig really). The other is Kick the Cat, a game that uses a flex sensor and force sensor combination as input. This is something of a virtual mini-basketball game that uses a springy material to launch a virtual feline at a target.

These teams already had a background in code, but the hardware was a new endeavor for them. Arduino helps to break down this cross-over barrier and we think this will result in more people to contribute to open source projects, and falling hardware prices due to a larger volume of demand.

[vimeo=http://vimeo.com/8542167]

Lion vs. Pig

[vimeo=http://vimeo.com/8542148]

Kick the Cat

29 thoughts on “Developing Physical Controllers For The Uninitiated

  1. ugh… why does there have to be so many dumbed down projects!? I’m pissed off at the “Make your own ____ kit without soldering!” type of stuff that’s becoming more prelevant. You know how I learned to solder? A 20 radio shack soldering iron, $10 worth of parts and some band-aids! Instead of ruining Hack-a-day by making it a newb site, show some great projects. Besides, there’s already a magazine for people with no skills, Make.

    1. so, dingus, actually you are jaleous that you had to solder and other people dont.
      You know what pisses me off? remote controls for TV: you know how i watched tv when i grew up? had to turn various knobs and trim an antenna, but now everyone is just a newbie using a remote control without knowing anything about VHF, UHF and have no idea where their relay station is.

      The thing with an arduin is that many people now use microcontrollers when they didnt do that before. There are moms using lilypads to put something together for the clothes of their kids. people making stuff for their homes or garden who would never have done so. yet, there seem to be elitists here who feel those people are in some way inferior because they dont know how to program C or because they don’t solder? or are done too quickly?
      Now let me criticize ‘C’ programmers: lazy bastards. You know, in my day I had to use an 8051 and write assembler programs. Then you really know how things work instead of using ‘C’ and ‘be done with it’.
      Bunch of elitist whinies

  2. @matt so what platform do you use? I don’t care what year it is. Does that make it obsolete? You have to start somewhere. The educational documentation for Stamps is second to none.

  3. I don’t get all the elitists hating arduino for being easy to use. It’s like me hating people who depend on the unreal engine to write games. Just because they don’t code a game engine from scratch like I did does not mean they cannot create some quality games.

    If you were abused and neglected as a child, would you want every other child on the planet to be abused and neglected? Would you think less of the children who were not abused? Would you think less of the people who cared enough to help those children?

    bonus points to anyone who noticed me comparing coders to children.

  4. “Does that make it obsolete?”

    Pretty much, yes. I have worked with these for nearly 20 years now, and they really haven’t changed much aside from the crap you can plug into them.

    I don’t give BASIC Stamp flak because it’s very basic, more so than the Arduino. It’s very old, and is not nearly as widely-used or suggested to newcomers.

    I’m not saying Arduino has no use, I’m saying it’s not the right thing to be telling mc builders/programmers at every chance you get to use in lieu of learning actual mc construction and programming skills.

  5. “It’s like me hating people who depend on the unreal engine to write games.”

    I hate on these people too. I didn’t go to school for years and years to use other people’s software to make games.

    If you’re going to write a game that is truly your own, don’t just skin someone else’s engine, learn to make your own.

  6. I don’t understand all of the hate for arduino. Most people learned to ride a bike with training wheels. If you were going to learn to play guitar, you wouldn’t start off with a Les Paul. Most people’s first car isn’t a shiny new sports car.

    Jumping straight into C and interrupts and configuring timers and constant arrays of pointers to functions is daunting. But if an intermediate step exists that allows people to get their feet wet in embedded development, when they otherwise might not have, whats wrong with that?

  7. @M4CGYV3R

    No point skinning a cat with a rock when a knife makes it easier. As long as you get the desired result, who cares how you got it?

    That being said, it is important to be aware that you can also skin the cat by taking it to a butcher.

    (all comments must now be metaphorical)

  8. well actually I DID just jump “straight into C and interrupts and configuring timers and constant arrays of pointers to functions”, it’s not that hard. My only materials were a used textbook on C, and the devkit for my microcontroller of choice (Silabs C8051F340). It’s very easy to develop firmware for these chips by just reading some example code, read the datasheet, etc. BTW I’m 21 years old, CS student at the University of Texas.
    I like how the Arduino makes things simple, but, as is clear in most Apple products, simplicity can be very limiting. As well as making you a lazy programmer

  9. That’s why I believe you should just learn once, instead of learning one platform, discovering its limitations, then having to re-learn something else.

    Do it once, do it right. Learn the full C programming language, learn to program a PIC/8051/ARM/whatever, and be satisfied that you’ve learned an actual skill instead of something anybody could do in 5 minutes

  10. I think its ok to learn how to use an arduino..
    I bet the people that took this course could connect and program everything in the scheduled time.

    personally I prefer to build my pic circuit because I like to learn about it and fiddle with my design. But you cant beat an opensource controller.

    I give this post a thumbs up. I like the fact that they did something with flash… Its nothing new.. but I bet some viewers will be spark to create some more hacks to be posted later on.

  11. Alright, I guess I’m on the “Arduino Hater” side of the fence, so here is my view.

    The Arduino platform is nice to learn how electronics work, if you set a pin high, and test with a multimeter, you notice 5v on that pin, etc. You can be blinking LED’s in a few minutes. It’s also nice for a quick and dirty “can I do this?” type project, where you just want to see if it can be done. Or more importantly, it is good way for someone with no experience to get their idea into a working prototype.

    The reason I “hate” Arduinos, is because people don’t use them to prototype. They just put the whole Arduino into the project and call it a day. I don’t even use the Arduino to prototype, I use PIC and a breadboard, but this is because I have a background in programming. I love C and ASM, so I’m comfortable prototyping with them. That said, I would encourage others to start with an Arduino if it makes them happy, but to clean up the project and implement just the AVR chip instead of the whole arduino.

    1. Fortunately we live in a free world where people can do with an Arduino what they want and the opinion of elitists with ‘a background in programming’ doesnt mean shit.
      Maybe a lot of people arent interested in programming and just want to build something that works. You dont even ‘use the Arduino to prototype’ coz oh dear, you use PIC and a breadboard. oh WOW, I am impressd (not).
      So people just put in the arduino and ‘call it a day’? without grabbing a solder iron and programming a chip? How dare they chose the easy way and be done with it

  12. @Spork

    good one! Arduinos are for prototyping. If you found out that everything wil work as desired, put together the “real” hardware.

    That is the next step! Don’t get stuck in the eternal prototype stage!

  13. While I would agree that the over-abundance of Arduino specific projects seem to have over taken the site. They are not without Merit. I’ve always been interested in hardware/software, but never had the forward knowledge of what EXACTLY was at the heart of most modern robotics projects, until I heard the word Microcontroller. I started my discoveries with PIC WebServers, but never really understood the basics of C programming, let alone ease of development that came with Arduino. It wasn’t more than 3 months after playing with the Extruder Controller from a RepRap, that I decided to move beyond the Arduino and design my own board specific to whatever projects I wanted.

    And using the Arduino as an instructional platform is a very good start to the MCU novice. In that its development IDE+User base/tutorials are very numerous and helpful. As well as easy to understand. Much nicer than just throwing some ATMEGA168 TQFP’s at someone and saying get crackin’…

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.