Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Arduino Microcontrollers

Similar presentations


Presentation on theme: "Introduction to Arduino Microcontrollers"— Presentation transcript:

1 Introduction to Arduino Microcontrollers
Jeff McRaven

2 Overview Background What To Get (Hardware and Software) Arduino C
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)

3 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.

4 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.

5 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).

6 Arduino Types Many different versions Leonardo Due Micro LilyPad
Number of input/output channels Form factor Processor Leonardo Due Micro LilyPad Esplora Uno

7 Leonardo Compared to the Uno, a slight upgrade.
Built in USB compatibility Bugs? Presents to PC as a mouse or keyboard

8 Due Much faster processor, many more pins Operates on 3.3 volts
Similar to the Mega

9 Micro When size matters: Micro, Nano, Mini
Includes all functionality of the Leonardo Easily usable on a breadboard

10 LilyPad LilyPad is popular for clothing-based projects.

11 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.

12 Mega Compared to the Uno, the Mega: Many more communication pins
More memory Some interface hardware doesn't work

13 Arduino Uno Close Up The pins are in three groups: Invented in 2010
14 digital pins 6 analog pins power

14 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 (sleep is for wimps)

15 Arduino Starter Kits Start with a combo pack (starter kit)
Includes a microcontroller, wire, LED's, sensors, etc. adafruit.com/products/68 ($65) ($99.95) Radio Shack Make Ultimate Microcontroller Pack w/ Arduino Kit ($119.99) ($150)

16 What to Get – My Recommendation
Required: Arduino (such as Uno) USB A-B (printer) cable Breadboard Hookup wire LED's Resistors Sensors Switches Good Idea: Capacitors Transistors DC motor/servo Relay Advanced: Soldering iron & solder Heat shrink tubing 9V battery adapter Bench power supply

17 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/ DevelopmentTools for alternatives to the base arduino IDE

18 Configuring the Arduino Compiler
Defaults to 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.

19 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.

20 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.

21 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

22 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

23 Arduino C is Derived from C++
These programs blink an LED on pin 13 avr-libc #include <avr/io.h> #include <util/delay.h> int main(void) { while (1) { PORTB = 0x20; _delay_ms(1000); PORTB = 0x00; } return 1; Arduino C void setup( ) { pinMode(13, OUTPUT); } void loop( ) { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW);

24 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.

25 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. Connect other leg of the resistor to the negative lead of the power source.

26 Let the Good Times Roll! At this point we have: Let's write some code!
Purchased a starter kit, including the Arduino Connected and configured the Arduino Connected a simple LED circuit Let's write some code!

27 Blink Sketch void setup( ) { pinMode(13, OUTPUT); } void loop( ) {
digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); Connected to one end of the circuit Connected to other end of the circuit GND to ground and 13 to power 330 ohm ground and LED LED to 330 ohm and power

28 4 LED Blink Sketch void setup( ) { pinMode(1, OUTPUT);
} void loop( ) { digitalWrite(1, HIGH); delay (200); digitalWrite(1, LOW); digitalWrite(3, HIGH); digitalWrite(3, LOW); digitalWrite(5, HIGH); digitalWrite(5, LOW); digitalWrite(7, HIGH); digitalWrite(7, LOW); }

29 So What? Great. Blinking lights. Not impressed.
Only covered output thus far. Can use analog inputs to detect a physical phenomena.

30 Inputs Digital inputs will come to the Arduino as either on or off (HIGH or LOW, respectively). HIGH is 5VDC. LOW is 0VDC. Analog inputs 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)

31 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. void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(0));

32 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) Most sensors are simply variable resistors, but vary their resistance based on some physical characteristic. void setup() { pinMode(9, OUTPUT); } void loop() int lightLevel = analogRead(0); lightLevel = map(lightLevel, 0, 900, 0, 255); lightLevel = constrain(lightLevel, 0, 255); analogWrite(9, lightLevel);

33 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.

34 Common Sensors Dials on a radio are simply potentiometers Temperature
Light Angle Switches did the user throw a switch or push a button? Accelerometer (measures motion and tilt) Infrared sensor & light Hall effect sensor and magnet Ball tilt sensor (for measuring orientation) Force

35 “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

36 Netduino Microcontroller and development tools created by Microsoft to work with the .NET Micro Framework. VASTLY better development environment. visualmicro.com Other alternatives Differences Pins on 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).

37 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.

38 Shields Shields are circuit boards that plug into the top of an Arduino. They extend the capabilities of an Arduino. Examples: Ethernet GPS Motor Prototype shieldlist.org

39 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!

40 Introduction to Arduino Microcontrollers
Jeff McRaven


Download ppt "Introduction to Arduino Microcontrollers"

Similar presentations


Ads by Google