csci1600: embedded and real time software lecture 4: introduction to the arduino steven reiss, fall...

Post on 17-Jan-2016

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

CSCI1600: Embedded and Real Time SoftwareLecture 4: Introduction to the Arduino

Steven Reiss, Fall 2015

What is an Arduino

Arduino Chip: ATmega48

Arduino CPU

Embedded Processors Arduino: a microcontroller

Others exist as well

General purpose processors ARM processor (low power)

Raspberry Pi

Special purpose processors DSP for sound, video processing

Graphics processors

Other alternatives Field-Programmable Gate Arrays

Less expensive than creating chip

Like having a bucket of parts to wire together Except the wiring is done programmatically

And the whole thing fits on a chip

Easy and cheap to make in quantity

Programmed in a high-level language

Arduino Restrictions

Simple CPUSingle core, single threaded

No pipelining

No floating point processorHow is floating point done

What you need to knowPower/USB InputGround and power outputsDigital input/outputsAnalog input/outputsReset button

Clapper

Two circuitsOne to provide input

Analog based on sound intensity

One to provide outputTwo lights

Digital (on or off)

Clapper Input Circuit

How does this workMicrophone generates a weak signal

https://www.jameco.com/Jameco/Products/ProdDS/136574.pdf

LM386 is an amplifier chipAmount controlled by resistor, capacitor

http://www.ti.com/lit/ds/symlink/lm386.pdf

Output balanced between 0 and 5 volts

Output circuit

Connect Digital Output Pin to LEDThrough a resistor (why)

Other side of LED is grounded

How should the clapper work?Read the input

How often

Check if we have a clapWhat does a clap look like

How would you find out

Check if we have a clap sequence

Clapper requirements

Turn lights on or offBased on clap input

Handle flashing lightsHow often to check

Tasks The basic concept in RT/EM software

Break your project into tasks

Tasks are independent Communicate via shared variables

Communicate via network, etc.

Tasks are run periodically or on demand Periodic – run every k microseconds

Demand – run on event, interrupt

Clapper Tasks

Listen for soundHandle clapper logicHandle first lightHandle second light

Clapper Stateclap_count (# claps)clap_done (clap interval over) last_clap (whether clap has ended)do_clap (take action based on clap)cur_state (state of lights)orig_state (state at start of all claps)

Homework

https://www.arduino.cc/en/Tutorial/HomePage

Think about what the code should look like logically

top related