Week 5 Lec2 Introduction to the Arduino and IDE
Week 5 Lec2 Introduction to the Arduino and IDE
Microcontrollers
Week 5-Lec 2
Overview
Background
Microcontroller defined/Why Arduino's?
Types of Arduino microcontrollers
What To Get (Hardware and Software)
Arduino C
Electronic Circuits
Projects
Blinking light(s)
Reading inputs (variable resistors)
Microcontrollers – One
Definition
Programmers work in the virtual world.
Machinery works in the physical world.
How does one connect the virtual world to the
physical world?
Enter the microcontroller.
A microcontroller is basically a small-scale
computer with generalized (and programmable)
inputs and outputs.
The inputs and outputs can be manipulated by
and can manipulate the physical world.
Microcontrollers vs
Microprocessors
Microprocessor is an IC which has only the CPU
inside them i.e. only the processing powers such
as Intel's Pentium 1,2,3,4, core 2 duo, i3, i5 etc.
Microcontroller has a CPU, in addition with a
fixed amount of RAM, ROM and other peripherals
all embedded on a single chip.
Arduino – Official Definition
Taken from the official web site (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.
Why Arduino?
For
whatever reason, Arduino microcontrollers
have become the de facto standard.
Make Magazine features many projects using
Arduino microcontrollers.
Strives
for the balance between ease of use and
usefulness.
Programming languages seen as major obstacle.
Arduino C is a greatly simplified version of C++.
Inexpensive ($35 retail).
Arduino Types
Many different versions
Number of input/output channels
Form factor
Processor
Leonardo
Due
Micro
LilyPad
Esplora
Uno
Arduino Uno Close Up
The pins are in three groups:
Invented in 2010
14 digital pins
6 analog pins
power
https://www.circuito.io/blog/arduino-
uno-pinout/
Leonardo
Compared to the Uno, a slight upgrade.
Built in USB compatibility
Presents to
PC as a mouse
or keyboard
Due
Much faster processor, many more pins
Operates on 3.3 volts
Similar to the Mega
Micro
When size matters: Micro, Nano, Mini
Includes all functionality of the Leonardo
Easily usable on a breadboard
LilyPad
LilyPad is popular for clothing-based projects.
Esplora
Game controller
Includes joystick, four buttons, linear
potentiometer (slider), microphone, light sensor,
temperature sensor, three-axis accelerometer.
Not the standard set of IO pins.
Where to Start
Get an Arduino (starter kit)
Download the compiler
Connect the controller
Configure the compiler
Connect the circuit
Write the program
Get frustrated/Debug/Get it to work
Get excited and immediately start next project
Arduino Starter Kits
Start with a combo pack (starter kit)
Includes a microcontroller, wire, LED's, sensors, etc.
www.adafruit.com
adafruit.com/products/68 ($65)
www.sparkfun.com
https://www.sparkfun.com/products/11576 ($99.95)
Radio Shack
Make Ultimate Microcontroller Pack w/ Arduino Kit
($119.99)
www.makershed.com
http://www.makershed.com/
Ultimate_Arduino_Microcontroller_Pack_p/msump1.htm ($150)
What to Get – My
Recommendation
Required: Good Idea:
Arduino (such as Capacitors
Uno) Transistors
USB A-B (printer) DC motor/servo
cable Relay
Breadboard
Hookup wire
Advanced:
LED's
Soldering iron &
Resistors
solder
Sensors
Heat shrink tubing
Switches
9V battery adapter
Bench power
Arduino Compiler
Download current compiler from:
arduino.cc/en/Main/software
Arrogantly refers to itself as an IDE (Ha!).
Run the software installer.
Written in Java, it is fairly slow.
Visit
playground.arduino.cc/Main/ Devel
opmentTools
for alternatives to the base
Configuring the Arduino Compiler
Defaultsto COM1, will probably need to change
the COM port setting (my work PC uses 7).
Appears in Device Manager (Win7) under Ports as
a Comm port.
Arduino Program Development
Based on C++ without 80% of the instructions.
A handful of new commands.
Programs are called 'sketches'.
Sketches need two functions:
void setup( )
void loop( )
setup( ) runs first and once.
loop( ) runs over and over, until power is lost or a
new sketch is loaded.
Arduino C
Arduino sketches are centered around the pins on
an Arduino board.
Arduino sketches always loop.
void loop( ) {} is equivalent to while(1) { }
The pins can be thought of as global variables.
Arduino C Specific Functions
pinMode(pin, mode)
Designates the specified pin for input or output
digitalWrite(pin, value)
Sends a voltage level to the designated pin
digitalRead(pin)
Reads the current voltage level from the designated pin
analog versions of above
analogRead's range is 0 to 1023
serial commands
print, println, write
Compiler Features
Numerous sample
sketches are
included in the
compiler
Located under File,
Examples
Once a sketch is
written, it is
uploaded by
clicking on File,
Upload, or by
pressing <Ctrl> U
Arduino C is Derived from C++
These programs blink an LED on pin
13
avr-libc Arduino C
#include <avr/io.h> void setup( ) {
#include <util/delay.h> pinMode(13, OUTPUT);
}
int main(void) {
while (1) { void loop( ) {
PORTB = 0x20; digitalWrite(13, HIGH);
_delay_ms(1000); delay(1000);
PORTB = 0x00; digitalWrite(13, LOW);
_delay_ms(1000); delay(1000);
} }
return 1;
}
Basic Electric Circuit
Every circuit (electric or electronic) must have at
least a power source and a load.
The simplest circuit is a light.
Plug in the light, and it lights up.
Unplug it, the light goes out.
Electricity flows from the power source, through
the load (the light) and then back to the power
source.
Basic LED Circuit
Connect the positive (+) lead of a power
source to the long leg of an LED.
Connect other leg of the LED to a resistor.
High resistance means a darker light.
Low resistance means brighter light.
No resistance means a burned out LED.
Connectother leg of the resistor to the
negative lead of the power source.
Let the Good Times Roll!
At this point we have:
Purchased a starter kit, including the Arduino
Connected and configured the Arduino
Connected a simple LED circuit
Let's write some code!
Blink Sketch
void setup( ) {
Connected to
pinMode(13, OUTPUT); one end of
Connected to
other end of
} the circuit the circuit
void loop( ) {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
4 LED Blink Sketch
void setup( ) { void loop( ) {
pinMode(1, OUTPUT); digitalWrite(1, HIGH);
pinMode(3, OUTPUT); delay (200);
pinMode(5, OUTPUT); digitalWrite(1, LOW);
pinMode(7, OUTPUT);
} digitalWrite(3, HIGH);
delay (200);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
delay (200);
digitalWrite(5, LOW);
digitalWrite(7, HIGH);
delay (200);
digitalWrite(7, LOW);
}
So What?
Great. Blinking lights. Not impressed.
Only covered output thus far.
Can use analog inputs to detect a physical
phenomena.
Inputs
Digital
inputs will come to the Arduino as either
on or off (HIGH or LOW, respectively).
HIGH is 5VDC.
LOW is 0VDC.
Analoginputs will come to the Arduino as a range
of numbers, based upon the electrical
characteristics of the circuit.
0 to 1023
.0049 V per digit (4.9 mV)
Read time is 100 microseconds (10,000 a second)
Analog Input
A potentiometer (variable
resistor) is connected to
analog pin 0 to an Arduino.
Values presented to pin 0 will
vary depending upon the
resistance of the
potentiometer.
Analog Input-Application
The variable resistor can be replaced with a
sensor.
For example, a photo resistor.
Depending upon the light level at the photo resistor:
Turn on a light
Increase or decrease the brightness of an LED (or an
LED array)
Mostsensors are simply variable resistors, but
vary their resistance based on some physical
characteristic.
Sensors
Sensors can be both binary or a range.
Usually, sensors that measure a range of values
vary their resistance to reflect their detection.
Arduinos can only sense voltages, not
resistances.
Sensors that only vary their resistances require a
circuit called a voltage divider to provide the
Arduino a voltage.
Common Sensors
Dials on a radio are Infrared sensor &
simply light
potentiometers Hall effect sensor
Temperature
and magnet
Light
Ball tilt sensor (for
Angle
measuring
Switches
orientation)
did the user throw a
Force
switch or push a
button?
Accelerometer
(measures motion
“Competitors”to the Arduino
PIC controller
Microcontroller programmed with C or assembler
Alternatives to the Arduino line
Pinguino – PIC controller
MSP430 – Texas Instruments; $4.30
Others: customs, Teensy, etc.
Netduino
Computers
Raspberry Pi
BeagleBones – TI; has computer and controller
Netduino
Microcontrollerand development tools
created by Microsoft to work with the .NET
Micro Framework.
VASTLY better development environment.
visualmicro.com
Other alternatives
Differences
Pinson a Netduino are 3.3V (not 5).
Netduinos have a much faster processor.
60K of RAM (versus an Uno's 2K).
Largely compatible with the Arduino, but it
is not a drop-in replacement (can fry it).
Raspberry Pi
Low end computer, not a controller
Uses Debian Linux
Arch Linux ARM, Fedora, FreeBSD, Slackware…
Programmed with Python
BBC BASIC, C, Perl
As it is a computer and not a controller, its role in
these projects is different.
Hierarchy: computers control controllers,
controllers control hardware.
Shields
Shieldsare circuit boards that plug into the top of
an Arduino.
They extend the capabilities of an Arduino.
Examples:
Ethernet
GPS
Motor
Prototype
shieldlist.org
Conclusion
The Arduino microcontroller is a low cost way to
enter into the hobby of robotics.
The Arduino has two plusses over any other:
The user community
Extensive online library of code and projects
Viewed as the "base" system, upon which all
other microcontrollers are built. Compatibility.
So get a kit, and start ushering in the inevitable
takeover of our robotic overlords!
Raspbery Pi
IoT
“The Internet of Things (IoT) is a system of interrelated computing devices,
mechanical and digital machines, objects, animals or people that are
provided with unique identifiers and the ability to transfer data over a
network without requiring human-to-human or human-to-computer
interaction.”
Processor Vs
Controller
Microprocessor
IC which has only the CPU inside them
Microprocessors don’t have RAM, ROM, and
other peripheral on the chip
Microcontroller
CPU, in addition with a fixed amount of RAM,
ROM and other peripherals all embedded on a
single chip
SoC
SOC is the full system, often the computer on
a chip
Computer Architecture
Microcontroller
Raspberry Pi
History
The Raspberry Pi is the work of the
Raspberry Pi Foundation, a charitable
organisation
UK registered charity (No. 1129409),
May 2009
It's supported by the University of
Cambridge Computer Laboratory and
tech firm Broadcomm
What is Raspberry Pi
University of Cambridge’s Computer Laboratory
Declinein skill level
Designed for education
A credit card sized PC
Plugs into a TV or monitor
Inexpensive(ish) ~$35 each
Capability:
Programming
Electronic Projects
Office
Play HD Videos
A low cost, credit-card sized
computer
40 Pins GPIO
USB Ports
LCD Display
RJ 45