0% found this document useful (0 votes)
27 views38 pages

Arduino Spooky Projects Class1

This document provides an overview of an introduction to microcontrollers class that uses Arduino boards. It includes: - An introduction to the Arduino microcontroller platform and its components like the ATmega8 chip. - An overview of the class kit contents and how to build simple circuits like an LED flashlight and blinking LED circuit. - Information on installing the Arduino software and development cycle of writing code, compiling, uploading and running it on the board. - A preview of upcoming classes which will cover reading sensors, analog values and creating more complex LED circuits.

Uploaded by

jubidiai
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
27 views38 pages

Arduino Spooky Projects Class1

This document provides an overview of an introduction to microcontrollers class that uses Arduino boards. It includes: - An introduction to the Arduino microcontroller platform and its components like the ATmega8 chip. - An overview of the class kit contents and how to build simple circuits like an LED flashlight and blinking LED circuit. - Information on installing the Arduino software and development cycle of writing code, compiling, uploading and running it on the board. - A preview of upcoming classes which will cover reading sensors, analog values and creating more complex LED circuits.

Uploaded by

jubidiai
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 38

Spooky Projects

Introduction to Microcontrollers with Arduino


Class 1
7 Oct 2006 - machineproject - Tod E. Kurt
Everyones had a little programming experience, right?
Whos had any electrical experience?
Whats for Today

Introduction to Arduino

Building an LED ashlight

Making some blinky LED eyes


Class Kit
Whats in your goodie bag
Class Kit Manifest

Arduino NG USB board

Arduino ProtoShield

Solderless breadboard

USB cable

RC servo

piezo buzzer

6m hookup wire in ghastly


colors

potentiometer with knob

R,G,B and mystery LEDs

two push switches

9V battery and connector

220, 330, 10k, and 1M


resistors

light sensitive resistor

5.1v zener diode

square of velcro

scary eyeballs
And other bits as we progress
Ignore most of the kit for now, just use Arduino board and USB cable
Complete kit manifest with part numbers will be online
A Word on Safety

Electronics are toxic to you

Lead in some of the parts

Wash up afterwards

You are toxic to electronics

Static-sensitive: dont shufe your feet

Wires only bend so much


What is Arduino?

Open Source Physical Computing Platform

open source: free to inspect & modify

physical computing. er, what? ubiquitous computing, pervasive


computing, ambient intelligence, calm computing, everyware, spimes, blogjects, smart objects...

A physical board, a programming


environment, a development philosophy

Tiny computer you can program

Completely stand-alone, talks to other devices


Physical computing as invisible computing
Can run o! a battery
Can talk to other computers, cell phones, etc.
What is Arduino?

Based on AVR-GCC, avr-libc, AVRlib and


Processing (all open source projects)

Very similar to Basic Stamp (if you know it)

but cheaper, faster, & open

Uses AVR ATmega8 microcontroller chip


Basic Stamp uses PIC microcontroller chip.
PICs and AVRs are very comparable, ones not necessarily better than the other
AVRs are a little better if youre using a language like C (stack-based)
Dont need to worry about the chip particulars for now
What is Arduino?

Why not just use a bare AVR ATmega8 chip?

Arduino is also a standardized bootloader

A tiny program that loads other programs

Its alive during rst 5 seconds


A bootloader is akin to an BIOS on a real computer. It handles the startup of the chip
After 5 seconds, your program runs
Dont need special programmer board with a bootloader
Arduino can work with other AVR chips, some are smaller than your ngernail, cost ~ 40 cents
What is Arduino?

Capabilities

8 kBytes of Flash program memory

1 kByte of RAM

12 MHz (Apple II: 1 MHz)

Inputs and Outputs

13 digital input/output pins

5 analog input pins


Digital I/O can read switches and buttons, control LEDs and motors
Analog input can read knobs or other varying sensors
Analog output can be done with PWM
What is Arduino?

Write programs on your PC

Download them into the Arduino board

Arduino board can then be used by itself


But how do you program it?
No keyboard, mouse or display
Your PC becomes the head
Arduino Board
2
1.7
reset
button
power
LED
test
LED
TX/RX
LEDs
digital input/output
analog input
Also: USB input, power input, ICSP programming header
Arduino Board
analog inputs
reset
button
power
LED
test
LED
digital I/O
Diagrammatic version, to simplify
But of a slightly older version of the board
Digital? Analog?

Digital only has two values: on/off

Analog has many (innite) values

Computers dont really do analog

So they fake it, with quantization


Quantization = breaking up the analog range into bins. The number of bins is the resolution.
More bins = higher accuracy, but is more complex
Digital can be thought of as only two bins.
Arduino Software
compile
(verify)
upload to board
status
area
Thats the full code for blinking an LED, btw.
Arduino denes several useful functions like digitalWrite() and delay(). more on that later
Processing and Wiring not needed
Arduino & Processing
http://processing.org/
build generative art or other applets easily
not needed for Arduino, but can work with it
Arduino has essentially the same GUI as Processing
Easier than Arduino, since all software
Though similar UI and philosophy, Arduino is a di!erent language
Well use Processing later in the class to let the computer control Arduino & vice-versa

Download software: http://arduino.cc/

Mac OS X PPC or Intel (must pick)

Windows 2000/XP

Install drivers

In drivers folder, pick appropriate one

Windows: unzip driver, plug in board, setup

macosx-setup-command for Mac folk

Reboot
Installing Arduino
Di!erent Arduino downloads for each operating system
Di!erent drivers for each OS too
macosx-setup-command must be run before reboot,
but, it will go away in next version
Using Arduino

Programs are called sketches

Load up example sketch led_blink


Errors
Must select
serial port
Programmer is
not responding
Whats my serial port?
Windows: Use Device Manager to nd COM port
Mac: Its called /dev/tty.usbserial-something
Using Arduino

Write program

Compile (check for errors)

Reset board

Upload to board
Try it out with led_blink!
On reset, board will ash on-board pin 13 LED really fast for a split-second to indicate bootloader
exists
When uploading, TX/RX lights will ash as data is transferred
Then the board resets, pin 13 will ash fast again
Finally, your program will run
Arduino Board Lifecycle
Take a Break
Making Circuits
heart pumps, blood ows voltage pushes, current ows
LEDs
physical characteristics schematic symbol

LED = Light-Emitting Diode

electricity only ows one way in a diode

Needs a current limiting resistor, or burns


out
bar = minus
Many types of integrated lenses.
Some project a narrow beam (like the ones in this class), some project a very wide beam
LED ashlight
wiring diagram schematic
All LED circuits are essentially this: power source, current limiter, LED
Flat part of LED goes to negative, like bar in schematic
The higher the resistance, the dimmer the LED; the lower, the brighter
LED ashlight
Take out solderless breadboard, resistor, LED, and battery and make a circuit
LEDs have been marked a little as to what color they are, but color doesnt matter here
Solderless Breadboards
groups of 5
connected
but not connected
across the jump
not
connected
Insert wires into holes to make a connection.
*Much* easier, quicker than soldering
But, they wear out, are expensive ($8 for this little one)
Using Solderless
Breadboards
Using needle nose pliers can help
Grab wire or lead toward end and push into hole
Blinky LED circuit
wiring diagram schematic
hello world of microcontrollers
In schematics signals often ow from top-left to bottom-right
Common nodes like gnd are given their own symbol
Pick any digital pin to hook up to, doesnt matter which
Blinky LED circuit

Plug shield on top of Arduino board

Stick breadboard to shield


Blinky LED Software
Youve already seen it.
Arduino Sketch
Structure

Declare variables at top

Initialize

setup() run once at beginning, set pins

Running

loop() run repeatedly, after setup()


Pins can be changed in loop() too, but conceptually easier in setup()
Arduino Language

Language is standard C (but made easy)

Lots of useful functions

pinMode() set a pin as input or output

digitalWrite() set a digital pin high/low

digitalRead() read a digital pins state

analogRead() read an analog pin

analogWrite() write an analog PWM value

delay() wait an amount of time

millis() get the current time

And many others. And libraries. And examples!


Also: serial library, LCD library, servo examples
Development Cycle

Make as many changes as you want

Not like most web programming: edit run

Edit compile upload run


edit
compile
upload
run
More Blinky Madness
Add LEDs
Next Week

Reading buttons

Reading analog values (knobs)

Detecting the dark

More complex LED circuits

Stand-alone Arduino
Tod E. Kurt
tod@todbot.com
END Class 1
ATmega8 & Arduino

You might also like