Arduino: What-IS-it?


CREDITS: Arduino.cc and Scott Daniels and Terry King

(NOTE: There may be many unfamiliar words here! The small green arrow means the word is a Link to WikiPedia or other definitions).

Arduino is a tool for making computers that can sense and control more of the physical world than your desktop computer. Arduino is a small circuit board with an Atmel MicroController chip and other parts. See examples HERE. Arduino is intended for use by both non-technical people with no previous programming experience and seasoned pros who love to tinker. Arduino was developed in Italy by Massimo Banzi and a group of people who believed Hardware and Software should be "Open Source" and available to everyone. If you wish to get more of the flavor of Arduino and the people behind it, watch this 15-minute TED Talk by Massimo:


Arduino is a "Rapid Electronics Prototyping Platform" which consists of two main parts:
  • HARDWARE: An Arduino Open-Source Microcomputer board
  • SOFTWARE: The free Arduino IDE that runs on PC, MAC, or Linux

Arduino is great with other Rapid Prototyping technologies like 3-D Printers and Laser Cutters. Many MakerSpaces are featuring Arduino with other tools and technologies.

Arduino can be used to quickly develop Interactive Objects, taking Inputs from a variety of switches or sensors, making Decisions, and controlling a variety of Outputs such as lights, motors, sounds, etc. This is called Physical Computing.
tumblr_l024vhU59F1qz9m0ho1_500.jpeg
NYC Resistor: Arduino Art Show, with Eric Mortensen

Arduino is intended for use by non-technical people with no previous programming experience to make their own InteractiveObjects, Art Installations, Intelligent machines, Robots, Weather Stations and 100's of other projects. See many Arduino Projects HERE:

Arduino was used to create the colorful lighted coat in the photo at the right. Arduino projects can be stand-alone, or they can communicate with software running on your computer via USB or to other devices via Ethernet, Radio or the WWW. Arduino projects can become part of the Internet Of Things.

Arduino hardware and software is Open Source, and the designs and software are available to be copied and changed. You could build your own Arduino-compatible version, or buy one of dozens of "OtherDuino" boards for less than $20. See a comparison of Arduino UNO and some derivative boards HERE.

Starter Kits An "Arduino Starter Kit" with an Arduino-compatible board, cables, a number of input and output devices and a "Breadboard" for making connections in Prototyping are available for less than $35.

ARDUINO HARDWARE


Arduino original boards, and updated compatible boards:


There are over 100 "Arduino Compatible" microcomputer boards. They may be physically different in size and details but they all have these components:
  • An ATMEL ATMega Microcontroller chip such as a 328, 1280, 2560
  • A Programming Interface (Usually USB) connecting to a personal computer running the Arduino IDE software
  • Power inputs from USB, Batteries or plug-in power supplies
  • External connections to various Input and Output devices


A look at some Arduinos and "OtherDuinos"


On the left is the current most-common Arduino board from the originators of Arduino at Arduino.cc which is called the "Arduino UNO R3". More Info Here:

On the right is one of the dozens of "Arduino Compatible" boards, the "YourDuino RoboRED". More Info Here: These boards may have added connectors, new features or extended capabilities.
RoboRed-Annotated-600.jpgArduinoUno_R3-450.jpg

What's on an "Arduino Compatible" Microcomputer Board?

  • An ATMEL Microcontroller chip (the 28-pin oblong in the lower right).
  • A USB Connector (The silver square at upper left)
  • A USB Interface chip (The UNO and YourDuino examples use a small square microcontroller chip)
  • LEDS that show when Power, TX (Transmit), RX (Receive), or L (Pin 13) are active.
  • Connectors for external devices:
    • Digital Input/Output pins 0 to 13 (right to left, at top)
    • Analog Input Pins 0 to 5 (left to right, at bottom)
    • NOTE: The YourDuino adds two groups of 3-pin connectors to make it easier to connect devices like servomotors, electronic sensors etc.
  • external image arduino_uno_test.jpgAn External Power connector (lower left), along with voltage regulator circuits. The YourDuino RoboRED provides much more 5V current.
  • A RESET button to restart whatever program is loaded on the board.

How BIG are these?? About like the photo at right:

Other types and sizes of Arduino Compatibles




ARDUINO SOFTWARE:


Physical Computing is quite different than writing software for personal computers where the only physical inputs are the Mouse and Keyboard. With Arduino you can connect and control literally hundreds of different devices, and write software that creates new Intelligent Devices. We can see how this goes together here:
ArduinoArch1-900.jpg
SENSOR INPUTS: On the left are examples of some of the Input Devices you can connect.
ACTION OUTPUTS: On the right are examples of Output Devices you can control.
SOFTWARE BEHAVIOR: Here is where you write software (called SKETCHES in Arduino) that makes decisions about what things are sensed with Input Devices, and what actions will be taken with the Output Devices. This may be as simple as sounding a buzzer when a switch is closed.

The Arduino IDE (Integrated Development Environment)

This is the free software you will use to create the Behavior of your project. Here's what it includes:
  • An EDITOR to create and edit the text of your software Sketch. It actively highlights Keywords in the language so typing errors are more obvious.
  • A VERIFY system that runs through your Sketch, verifies that there are no errors, and then compiles it into the machine language program that can be Uploaded to your Arduino board over the USB cable. (This is often called MAKE in other systems, and actually is quite complex, running system preprocessor, compiler, linker etc. "Under the covers").
  • An UPLOAD system that communicates with your Arduino Board over USB, loads your program into Arduino memory, and starts your program running.
  • A SERIAL MONITOR window that allows you to receive and send messages from programs running on your Arduino board. This is often used for testing and "debugging" programs.
  • Many EXAMPLE software Sketches that show how to use many different devices and techniques.
  • A LIBRARY system containing many prewritten sections of software.
  • A FILE system to save and retrieve Sketches.
  • A HELP system that includes the entire Arduino Reference document.

IDE-Example1.jpgArduino IDE Screen:


On the right is an example of the Arduino IDE window:
  • The example text is from a Sketch controlling 4 relays which control higher power devices like room lights, motors etc.
  • The top menu has File, Edit etc.
  • The Button Menu has Verify (check mark), Upload (right arrow) etc.
  • At the bottom you see the Verify result and how much of your Arduino memory was needed. This lower window also displays error messages.
More details of using the IDE are in another section of the ARduinoInfo.Info WIKI.

The "Arduino Language":


If you haven't written "code" in any computer language yet, you'll have to get used to writing very specific commands to get things done. But Arduino gives you many easy to use commands. To turn an LED ON for example, you'd write something like:
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
and to turn it off again, you'd write:
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW

Now look closely at those lines:
  • The Gray sections on the right (after "//") are only COMMENTS to tell the reader what the programmer intended, or explain things. They are ignored by Arduino
  • The command ("digitalWrite") is highlighted. If you misspelled it, it would just be black.
  • There are special words you'll need to learn like HIGH and LOW.
  • Each command ends with a SemiColon character. This is required to show the end of a command.
Verify is Fussy, Fussy! If you misspell something, forget the ";", or use unknown words, it will put out Error messages and try to tell you which line is the problem.

Lots more about using the IDE and writing software Sketches on other pages of this WIKI.

Arduino Libraries:

When you start writing Arduino software Sketches, you are not in a room alone. You are in a Library, with many pre-written examples that make it easy to use more complex functions like connecting to the Internet. Here are the Standard Libraries that come with the free IDE software install:

  • EEPROM - reading and writing to "permanent" storage
  • Ethernet - for connecting to the internet using the Arduino Ethernet Shield
  • Firmata - for communicating with applications on the computer using a standard serial protocol.
  • LiquidCrystal - for controlling liquid crystal displays (LCDs)
  • SD - for reading and writing SD cards
  • Servo - for controlling servo motors
  • SPI - for communicating with devices using the Serial Peripheral Interface (SPI) Bus
  • SoftwareSerial - for serial communication on any digital pins. Version 1.0 and later of Arduino incorporate Mikal Hart's NewSoftSerial library as SoftwareSerial.
  • Stepper - for controlling stepper motors
  • WiFi - for connecting to the internet using the Arduino WiFi shield
  • Wire - Two Wire Interface (TWI/I2C) for sending and receiving data over a net of devices or sensors
One of the greatest advantages of Arduino is the worldwide community of thousands of people who are using it. Arduino enthusiasts who have figured out how to do more complex things have shared their work by creating Contributed Libraries. Some of the categories of libraries are:
  • Communication (networking and protocols):
  • Sensing:
  • Displays and LEDs:
  • Audio and Waveforms:
  • Motors and PWM:
  • Timing:
  • Utilities:

See the details on the Arduino site here: And when you figure out something cool that other people could use, see the Tutorial on that page about writing your own libraries.

To Be Done: Kicker with a few example projects, kids doing stuff...

READY TO START WITH HANDS-ON LEARNING? (CLICK HERE!)

From Scott:

If you are new to the world of microcontrollers, the Arduino is the best place to start. Since it is the most popular platform, the community at large is really active. That makes support easy to get and finding the information you need is even easier. Add to that great support is the large eco-system surrounding it, and you just can’t go wrong with the Arduino.