Bionic Arduino – Introduction to Microcontrollers with Arduino

Bionic Arduino

Bionic Arduino is a set of four 3-hour classes in November 2007 hosted by Machine Project and taught by Tod E. Kurt. It is an introduction to microcontroller programming and interfacing with the real world using the Arduino physical computing platform. It focuses on building new physical senses and making motion with the building blocks of robotics, using Arduino as a platform.

In the class, participants are shown and experiment with the Arduino’s capabilities and learn the basics of common microcontroller interfacing, such as: digital output to control lights and LEDs, digital input to read switches and buttons, analog output to control motor position or LED brightness, and analog input to read sensor inputs.

The class assumes no previous electronics knowledge, though it does assume a little programming knowledge. No soldering is needed during the class, as all circuits are built with solderless breadboards.

Class Notes

Arduino Sketches Used in Class

Processing Sketches Used in Class

Parts Suppliers, New

  • SparkFun — Arudino board and shield, and many other neat gizmos.
  • Jameco — General electronic parts, easy-to-use, also has computer parts.
  • Digikey — Exhaustive parts supplier. Cheaper than Jameco usually, has more variation, more hard-to-find parts.

Parts Suppliers, Surplus

112 Replies to “Bionic Arduino – Introduction to Microcontrollers with Arduino”

  1. Hello,

    I am eager to try and connect the Wii Nunchuck to my Arduino Mini, and have it control a motor, but have very little experience. I guess my first question is: If I have a MOSFET (nte 2398) and I want to control the motor, is there a simple wiring diagram for this? Also, will you be teaching any workshops soon in the LA area?

  2. Thank you for your quick reply. :-) I tried to fetch an min and max value, but the values I got where in the same range whether I accelerated the nunchuk to the left or to the right. I read on some site that the idle value is 500, 300 is a sure left, 700 is a sure right…

  3. Hi Alexander,
    You are correct. The output of the nunchuck can be 10-bit (0-1023) but for most purposes an 8-bit number (0-255) is easier to deal with. You can see the code to get the 10-bit number here: http://www.windmeadow.com/node/42

    To determine left/right tilt, look at the numbers from nunchuckprint and see how they move. You’ll see that one number has middle value that shifts from a min to a max, that’s the tilting from one direction to the other.

  4. Hello. I downloaded your sketch for the nunchuck. But I get only values between 0 and 250 for x,y,z acceleration. Is this okay? I heard that one get values between 0 to 1000. How do I know if I accelerate the nunchuck to the left or to the right? I have not altered your code NunchuckPrint. I’d appreciate any help. Please. Sincerely, Alexander

  5. Hi Gareth,

    Thanks, I’m glad you’ve found them useful.

    The speed of the serial port should not effect any of the sketches I’ve presented. You have to make sure to match the speed in the Arduino application too. Since it defaults to 9600, perhaps this is what you’re seeing.

  6. Hiya Tod.

    Love this series – it’s really helped me explore the Arduino.

    I think there’s a mistake in the PiezoKnock sketch. You call Serial.Begin with a value of 19200. This led to some strange output on my system. I stuck 9600 in there, as per usual, and everything was fine.

    All the best, and thanks again,

    Gareth

  7. Hi Ketil,

    Thanks! Tom’s “Making Things Talk” is very similar to the book I would’ve written about Arduino. In fact, if you thumb through my “Hacking Roomba” book, you’ll see that many of the projects are similiar to what Tom had, but using the Roomba as the common device being controlled.

  8. Hi Tod,

    What a fantastic site. Thanks for sharing all this information. As an aspiring programmer of microcontrollers this is a great starting point.

    I have Tom Igoes books “Physical Computing” and “Making Things Talk”. I would love to add “Bionic Arduino” to my collection. Do you have any plans of publishing such a book?

    Peace

  9. HA!!!! All good! working fine now! Just did all your class circuits! :)

    great stuff

  10. Hi GMacArch,
    I don’t use Windows much, but in my little time with it, all I did was follow the instructions here: http://www.arduino.cc/en/Guide/Windows
    That is, all I did was download the Arduino-win zip file, unzip it, and double-clicked on “Arduino.exe”. I’m not sure what “run.bat” does.

    The above probably isn’t too helpful. I’d recommend posting your question in the Arduino forums. Lots of eyeballs to see your problem. :)

    Good luck

  11. Hi Tod, excellent site and lessons! Helping me remember a lot of high school physics i had buried away in the memory banks! :)

    I’m doing an interactive installation as a research project, and have bought myself an arduino so i can use sensor readings through max.msp to control some video/sound. I’m using Windows XP sp2 and cannot for the life of me get the arduino environment to run. I’ve noticed in various forums many ppl with the same problem. It doesn’t run.
    I get the error “the system cannot find the path specified”
    After various trials with the run.bat file, trying to point it to the java directory, or copying the java files from c:program files\java to arduino folder, i get the error: “Exception in thread “main” java.lang.NoClassDefFoundError: processing/app/base”

    Any ideas?! I REALLY want to start playing with it!

    Thanks,
    G

  12. Hello again, Tod.

    Thanks for your quick reply with pertinent info. I’m familiar with Lady Ada’s site – I just haven’t visited it lately, but I will now.

    JimGf

  13. Hi Jim,
    Playing audio is right on the edge of what’s possible with the tiny microcontroller in an Arduino. But it is *just* possible. Lady Ada, who makes lots of neat Arduino kits is working on an Arduino shield that takes an SD card and plays WAV files. Here’s a pic of her work in-progress.

  14. Hi Tod,

    I just came across your site and it’s fantastic! I’m starting to look over your class notes on Bionic & Spooky Arduino.

    I have a question about using the Arduino for generating sounds. One of your projects has it play mp3’s (or wmv’s), but it looks like those are played by the computer and just triggered by the Arduino.

    My question is, is it possible to have several short sounds stored in the Arduino’s memory and have it play those back from the Arduino itself (no computer involved, except for programming the Arduino of course)? And to have each sound triggered by a different input. I’m thinking of using something like that for a Halloween display.

    Thanks in advance.
    JimGf

  15. Hi Bryan,
    I think it should work fine at 3.3VDC. In fact, the Wii Remote & Nunchuck’s I2C connection is supposed to be 3.3V and just happens to work at 5V with no problem.

  16. Hi, Tod.

    I’ve tried the arduino-nunchuck setup as per your instructions on the Bionic Arduino, and it works fantastic!

    btw, I have one newbie question on the voltage input to the nunchuck.
    May I use 3.3VDC ports of Arduino Diecimila insead of 5VDC?

    Thank you for your wonderful lectures

    Bryan

  17. Thanks for the headstart with Arduino! And the tips about Wiimote I2C. I’m working on a robot car. And Arduino is so much easier and cheaper than what I was originally doing (Phidgets, Gamepad Hacks, etc).

Leave a Reply

Your email address will not be published. Required fields are marked *