An Introduction to the Arduino Uno

Arduino

I have always had an interest in the world of electronics and ended up working in the technology realm because of it. My experience with the Leo Villareal exhibits really inspired me to explore that interest further. In my exploration I took a look at micro-controllers, prototyping and the Arduino.

From the site (www.arduino.cc): “Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists and anyone interested in creating interactive objects or environments.” I couldn’t have summarized it better myself. This community of hackers, so-to-speak, have come together to build a small but very robust and capable platform that can be used as the core for just about anything you can imagine.

The project was started in 2005 and was borne out of the desire to enable student-built interaction design projects without incurring the costs associated with other prototyping systems available at the time. Since then the line of controllers has been expanded and the integrated development environment has evolved and matured into a fairly popular, stable platform for building projects. As of the time of this writing, there are 19 different Arduino boards and shields supporting different processing capabilities (8/16/32-bit) as well as different interfaces (USB/Serial/Ethernet/Wireless/Bluetooth). There are also dedicated shields for interfacing the controller with motors, light sensors and SD cards. Check out this link for the most current listing of available boards and shields.

I wanted to play around with the platform and try some things out, so I did some searching to find vendors who sold these boards and came across the SparkFun site. This company offers a wide variety of products that you can use to build and/or enhance any electronics/prototyping project you may be working on. Not only do they stock and sell Arduino products, but several others as well. They’re like RadioShack on steroids – with better prices!

Now because the Arduino is an open source project, you can buy all the parts necessary to build your own board from scratch.  This requires some basic electronics and soldering skills and is a relatively easy venture.  However you can also buy the complete boards from several online venues.  This not only saves you time and effort, it is also a reasonably inexpensive way to jump in and start playing around with the platform.  The cost of the boards range from $20-$60 for the various configurations available, and of course you can spend a lot more for shields and other custom components.

While poking around the SparkFun site I found a kit, which is called the “Inventor’s Kit“, that includes not only an Arduino board but also several other components that you can use to build various simple and easy projects. In addition, they’ve include diagrams that you can use to build the projects as well as a “starter” guide that describes what the projects do and contains the code required to get the project up and running. The cost of the kit is $100 and is well worth it for anyone wanting to jump in and start putting things together.  I figured this was the best bet for me and proceeded to order the kit.

The Inventor’s Kit Unveiled

I didn’t have to wait too long before the shipment from SparkFun arrived at my doorstep.  There is no doubt I was very much looking forward to receiving the package and getting started with my tinkering.  I hurriedly brought the package inside and proceeded to open it as a young child opens their presents on Christmas day.  There it was in all its glory.

SparkFun Inventor's Kit

SparkFun Inventor’s Kit

I opened up the box and emptied the contents out onto my counter.  Behold the Arduino Uno in its neat little origami package.  I was definitely impressed at the presentation, especially considering the nature of the project and it being open source.  The first thing I did was pop the Arduino out of its package to get a peek at it first hand.

 

The Arduino Uno - Unveiled!

The Arduino Uno – Unveiled!

After admiring the Arduino for a moment, I went through the rest of the contents of the Inventor’s Kit, looking at each item and laying them out before plowing into the included circuit examples and the documentation provided by Oomlout.  You’ll find the following list of items in the kit – plenty to get started on your way to building projects using the Arduino Uno.

 

  • Arduino Uno (likely the SMD version rather than the DIP version)
  • Base to mount your Arduino and the included breadboard
  • Clear Bread Board
  • 74HC595 Shift Register
  • 2N2222 Transistors (2)
  • 1N4148 Diodes (2)
  • DC Motor with wires
  • Small Servo with attachments
  • 5V Relay
  • TMP36 Temperature Sensor
  • Flex Sensor
  • Softpot
  • 10K Trimpot
  • Photocell
  • Red and Yellow LEDs (10 ea)
  • Tri-color LED
  • Piezo Buzzer
  • Buttoms (12mm – 2)
  • 330 and 10k ohm resistors (1/6w ~ 50 ea)
  • Male Headers
  • Jumper Wires
  • 6′ USB Cable
  • Printed 36-page Oomlout manual
  • 12 color circuit overlays
SparkFun Inventor's Kit Contents

SparkFun Inventor’s Kit Contents

As you can see, quite enough to get started with many basic projects, and an excellent start to your learning with the Arduino board.  The kit provides a great way to introduce yourself to the useful nature of the boards, and better yet the example circuits require absolutely no soldering!

 

Arduino Mounted with Breadboard

Arduino Mounted with Breadboard

 

 

 

 

I got started right away, putting the breadboard and Arduino on the included holder.  I then downloaded the development environment which can be found here.  The download may take a bit, depending on your available bandwidth.  Be prepared to wait a couple of minutes – the entire download package is around 90MB.  The extracted files will take up approximately 250MB of disk space.

 

Connecting the Arduino

Connecting the Arduino

I then connected the USB cable to the Arduino and my PC and watched the status LED light up and heard the familiar tone from my computer affirming the connection of my new USB device.  Now, if you’re plugging your Arduino Uno into a Windows based PC (Windows 7 in my case), you will have to install the drivers provided with the development environment download.  You can get the exact instructions from the Arduino site, linked here.

 

 

 

First Arduino Application - Fading LED

First Arduino Application – Fading LED

With drivers installed and everything connected up, it’s time to start putting stuff together!  I started with the very first example, labeled CIRC-01 and titled “Getting Started Large Blinking LED”.  I took the circuit overlay and tacked it down to the breadboard using the male header pins provided (after cutting the strip down to 4 sets of 2 pins).  As you can see from the following picture, this circuit is really easy to put together.  The code provided in the example is also very concise.

 

 

 

 

With a single LED circuit up and working, I went ahead with the next sample project.  This next project involved controlling a bank of LEDs (8 of them to be exact).  This circuit is a little more complicated but still very simple and easy to follow.  The code is also a little but more complicated, and opens up the path to more complicated options.  I ended up fooling around with this code a bit to change the behavior of the bank of lights.  I had them fading in sequentially so they looked like landing lights on a runway.

Another Arduino Program - Playing with Lights

Arduino - More LightsArduino - More Lights Arduino – More Lights

Now having some comfort in building circuits and programs with the Arduino, I skipped around a little but and did a couple of the other more advanced projects.  I went to the last one in the kit I got, labeled CIRC-14 and titled “Fancy Sensing Soft Potentiometer”.  This circuit, again, is relatively simple and I really like working with LEDs that change colors.  The code for this example is more complex, and by now you’ve seen that the more complicated the function of the circuit, the more complicated the code that goes along with it.  Here you can see two different states I’ve captured, based on where my finger is on the soft-pot.  These things are pretty sensitive!

Arduino - Flexible Resistors and Lights, Part 1

Arduino – Flexible Resistors and Lights, Part 1

Arduino - Flexible Resistors and Lights, Part 2

Arduino – Flexible Resistors and Lights, Part 2

 

 

 

 

 

 

 

 

The last example that I have pictures of is the example that utilizes the shift register to address 8 LEDs using only three output pins in the Arduino.  Therein lies the beauty of using a shift register in this case – if we directly controlled the LEDs power state from the Arduino, we would be limited by the number of available pins supporting the functions we want to use (ie the digital versus analog pins).  However with the shift register, all we need are the data, latch and clock pins.  We can even chain several shift registers together to further expand the number of discrete components that can be controlled using the same set of pins on the Arduino.  The two pictures below show the circuit in action.

Arduino - LEDs and Shift Registers, Part 1

Arduino – LEDs and Shift Registers, Part 1

Arduino - LEDs and Shift Registers, Part 2

Arduino – LEDs and Shift Registers, Part 2

 

 

 

 

 

 

 

I continued on with my experimentation and implemented several of the other example circuits provided in the documentation and the kit.  In every case I took the basic application and tried to modify the code to change the system behavior, all the while learning the basics for creating Arduino sketches and getting them loaded for execution on the board.  I had a lot of fun learning in these exercise and am certain anyone else with basic mechanical/technical skills could pick one of these up and start to learn too.

Based on this experience I came up with several other projects I’d like to bring to life.  I also found several open source projects that leverage the Arduino platform to do some really cool stuff.  In fact, my next article focuses on one such project, where I’ll show you how I put together a Quadcopter using the open source AeroQuad project as my reference.  And there are several other similar types of platforms upon which you can build anything you put your mind to, whether you have experience with the Wiring/Processing development used by the Arduino, or C# which the Netduino boards use, or finally Java based code which is used by the Android prototyping platforms.

The possibilities are endless – you just have to jump in with both feet and start having some fun!

Leave a Comment

You must be logged in to post a comment.