Published on

Published in: Business, Technology
  • Be the first to comment


  1. 1. Meeting Arduino by Miguel Sánchez Polytechnic University of Valencia, Spain February 2008    
  2. 2. Outline (1)Introduction (2)What is Arduino? (3)Arduino main features (4)Programming Arduino (5)Q & A    
  3. 3. Design of embedded systems  Love it or hate it  Many details (software, hardware, I/O, pcb ...)  Not easy to practice with:  expensive  errors maybe be destructive (more expensive)  many tools are proprietary (compilers, pcb CAD...)  Development kits are cool but ... expensive    
  4. 4. What is Arduino?  From  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. 5. Open­source hardware?  It seems an odd concept  Like Open­source software, designers are  making  all the many details of the design  public, including:  schematics & pcb  development environment (multi platform)  boot loader code    
  6. 6. Schematic    
  7. 7. Arduino main features 13 digital outputs (6 PWM) USB RESET in­circuit power system  selection a programming 9­18 VDC     power outputs 6 analog inputs
  8. 8. Hardware details  Built around ATMEL ATmega168 micro  controller  16KByte flash / 1KByte RAM / 0.5KByte EEPROM Clock 0 – 20Mhz 10 bit ADC, PWM,  capture counters,  USART, I2C, SPI,  programmable watchdog, etc  USB to serial converter Can be USB­powered     
  9. 9. There are other formats  Older versions use ATmega8  There are small versions without comms  Older versions used RS­232 instead of USB  Program upload required user to press RESET  not anymore!    
  10. 10. Who did this and why?  Arduino is an open  hardware and  open/free software for  Physical Computing.  Physical ... what?      
  11. 11. Artists platform  Maybe the intended use is for making artistic  interactive installations  It can be used by students and hobbyists too!  You can buy a board on eBay or from a local  supplier for less than 20 EUR  add a USB cable and you can start playing    
  12. 12. What about the software?  Arduino platform is completed by a software  development environment  It's a C­like language (that it is actually parsed  to generate standard C­code)  It is great thing that there is a GNU C compiler  for ATMEL microcontollers  They made it easy: compile, upload, run    
  13. 13. Arduino IDE  Written in Java  It works on Windows,  Linux, OSX, ...  It includes a mini  terminal for debugging  Freely available    
  14. 14. Arduino Language  It is based on Wiring language  developed by Hernando Barragán (Universidad de  los Andes, Colombia)  The Arduino IDE is based on Processing IDE  Ben Fry and Casey Rias (MIT Media Lab)  Both projects are also open­source ones  Several libraries are part of the language (serial    I/O, stepper motors, basic I/O, delays, etc)  
  15. 15. Program structure  Instead of a main function you have two  mandatory functions: setup and loop  void setup() performs the initial setup of  variables and hardware  void loop() contains code that will be run as an  endless loop  Think of main() { setup(); while(1) loop(); }    
  16. 16. Language reference  Similar to C syntax  Variable types:     * boolean  Serial communication     * char  Basic input/output:     * byte     * int  digitalRead,      * unsigned int digitalWrite     * long     * unsigned long  analogRead,      * float analogWrite     * double     * string    ...       * array 
  17. 17. gcc­avr compiler  Code is translated to C code and later compiled  Library AVR­Libc is used  Binary can be uploaded through the serial  connection because Arduino chip does have a  bootloader code  Bootloader receives the code and writes it to  flash memory    
  18. 18. Boot sequence  After a RESET:  Bootloader code checks if an upload is being done  over the serial connection.  If not, it jumps to the beginning of the user code  User code upload does not destroy the  bootloader  Bootloader cannot be programmed using the    serial, though  
  19. 19. Programming the bootloader  Arduino commercial kits do  include the bootloader code  in the microcontroller  To change it, you need to use  the In­Circuit Serial  Programming (ICSP pins)  ICSP adapters for serial or  parallel ports can be built    cheaply  
  20. 20. Uploading new code  In older versions, users have to press RESET  button on Arduino  Newer versions (diecimila) make a RESET with  the DTR signal of the serial port (USB2serial)  RESET is needed because user code was  running and we want the bootloader to take  control now so upload can happen    
  21. 21. Arduino shields  You can stack other boards on top of Arduino to  add additional hardware to your project like:  a proto­board  a ZigBee wireless interface  a DC motor controller  a stepper motor controller  your own shield    
  22. 22. Stack of shields    
  23. 23. External power supply  You can use a wall  wart from 9­18 VDC  USB cannot power  beyond 500 mA load    
  24. 24. Programming Arduino  The Arduino IDE is freely available from  Arduino webpage.  Arduino uses FTDI USB to serial chip.   Drivers for that chip are available for many  platforms.  You do not need to install additional drivers for  Linux, Windows or Apple OS X.    
  25. 25. Hello World! Compile Upload Activate Terminal  As Arduino does not a  have a screen, we can  use the serial port to  print out  Serial.begin(speed)  Serial.println(”...”)     Terminal Area
  26. 26. Blink  Pin 13 has a LED  Let's use it    
  27. 27. Analog input  Let's read from input 0  and print to the serial  Can we call this a PC­ based instrument?     
  28. 28. PWM output  Not all the digital  tcycle outputs allow PWM  Pin 13 does not work,  pin 11,10,9,6,5,3 does ton  analogWrite function  takes care of this t on Vout = ×Vcc  You may call it analog  t cycle output    
  29. 29. Libraries  There are certain classes available for driving  common devices like:  stepper motors  serial EEPROM memory  RC servos  LCD panels  Software serial port    etc  
  30. 30. Prototype platform  Once you've got your system running you may:  completely remove the bootloader  design a new PCB with all the needed elements  remove USB communication if yo do not need it  Or you can leave it this way  it may be your cheapest choice    
  31. 31. Other references   it contains a list of more than 400 references  among them a Programming Tutorial  And there are many variations:    
  32. 32. Questions & Answers  Hopefully ...   Don't be shy!    
  33. 33. Thank you!