Richard Rixham introduces Arduino, an open source hardware and software platform that allows users to build physical computing devices ranging from flashing lights to robots. Arduino uses an inexpensive microcontroller board and IDE to make programming in C/C++ accessible. It has digital and analog pins that can interact with sensors and actuators. Common Arduino models include the Uno, Mini, and Mega. Shield add-on boards provide extra functions like wireless connectivity. Example projects and resources for learning more are provided.
2. Who am I
• Developer working in the Air Transporation
Sector
• Playing with Arduino since early 2009
• Organiser of Sheffield Arduino Hackers
Network (SHACKNET)
3. What is Arduino
• Arduino is Lego turned up to 11
• Open Source hardware platform
• Open Source software and libraries
• Physical Computing, allowing interaction with the environment
• Build anything from a flashing light to robots that can interact with
the internet
• Inexpensive and FUN
4. What is an Arduino
14 Digital Pins (6 PWM)
Reset
USB Connector
External
Power
Supply
Power Pins 6 Analog Inputs
Power LED
ATmega AVR
TX/RX LED
5. Arduino Specification
• Microcontroller ATmega 168/328
• Clock Speed 16 MHz
• Operating Voltage 5V
• Digital I/O Pins 14 (6 provide
PWM output)
• Analog Input Pins 6
• Flash Memory 16 KB (Atmega168) or 32 KB (ATmega328) of
which 2 KB used by bootloader
• SRAM 1 KB (ATmega168) or 2 KB (ATmega328)
• EEPROM - 512 bytes (ATmega168) or 1 KB (ATmega328)
• Provides I2C and SPI
6. Other flavours of Arduino
Arduino Mini
Arduino Nano
Arduino Lilypad
Arduino Pro
Arduino Pro Mini
Arduino Mega
Arduino Fio
Arduino Bluetooth
And many Clones
7. Arduino Shields
• Shields are boards that can be plugged in to
provide additional capabilities
• Examples
Xbee – Wireless connectivity
DMX – Control lights
Ethernet, GPS, Bluetooth
• Shieldlist.org
8. Programming Arduino
• Language based on C/C++ linked to AVR-libc
library
http://www.nongnu.org/avr-libc
• Open Source Libraries (LCD, string)
• Official IDE written in Java
• Runs on Windows, Linux
and MacOS
9. Programming Arduino
• Uses other editors such as Eclipse with
Arduino Plugin
• RAD – Ruby Arduino Development
10. Hello World
int ledPin = 13; // LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}