Your SlideShare is downloading. ×
photo:  http://flic.kr/p/5XwBFB<br />BURO Arduino Workshop<br />
Arduino<br />	…is an open-source electronics prototyping platform based on flexible,  easy-to-use hardware and software. I...
Physical Computing<br />	…is an approach to learning how humans communicate through computers that starts by considering h...
<ul><li>Bill Verplank</li></ul>http://www.billverplank.com/Lecture/<br />
Embedded Systems<br />	…are computer systems designed to perform one or a few dedicated functions. They are embedded as pa...
Why Arduino?<br />Inexpensive<br />No need for external programmers, compiler licenses etc.<br />Simple, clear programming...
Hardware<br />Atmel Microcontroller<br />ATmega328 (Duemilanove) / ATmega1280(Mega)<br />ATmega8/ATmega168 on older versio...
Anatomy of an Arduino Board<br />digital pins<br />USB to serial<br />converter<br />microcontroller<br />(the brain!)<br ...
Official Arduino Hardware<br />http://arduino.cc/en/Main/Hardware<br />
“Shield Compatible” Hardware<br />(1)<br />(2)<br />(3)<br />[1] Freeduino - http://www.freeduino.org/freeduino_open_desig...
“Bootloader Compatible” Hardware<br />(3)<br />(2)<br />(1)<br />(4)<br />[1] Oak Micros om328p - http://oakmicros.com/con...
Alternative form factors <br /><ul><li>Breadboard Arduino</li></ul>http://bit.ly/7QMkbx<br />One-Chip Arduino<br />http:/...
There’s more!<br />Official boards<br />http://arduino.cc/en/Main/Boards<br />Arduino-like Boards<br />http://www.arduino....
Arduino Shields<br />(3)<br />(1)<br />(4)<br />(2)<br />[1] Adafruit Motor Shield - http://ladyada.net/make/mshield/index...
Again, there’s more!<br />http://www.arduino.cc/playground/Main/SimilarBoards<br />Look under ‘Shields’<br />Some cool one...
Arduino Bar, Ivrea(from Massimo Banzi’s slides)<br />
Big Computer   vs.  Tiny Computer<br />Dell Precision T1500<br />Atmel ATMEGA328P<br />CPU Speed: 2.93GHz<br />Quad-core!<...
Not Quad-core
RAM:  2KB
Storage:
32KB Program Memory
1KB EEPROM
I/O:
Up to 23 generic I/O
6 of them ‘analog-capable’
UART/SPI/I2C, etc.</li></li></ul><li>It’s an analog world…<br />Digital – only has two values: on/off<br />Analog – has ma...
Sensors<br />Temperature<br />Light<br />Humidity<br />Pressure<br />Distance<br />Touch/‘Knock’<br />Rotation<br />
Motors<br />DC Motors<br />Servos<br />Steppers<br />Solenoids<br />Hydraulics<br />Actuators<br />
“Modules”<br />Bluetooth<br />http://www.sparkfun.com/commerce/product_info.php?products_id=582<br />Character LCD<br />ht...
The BreadBoard!<br />* Drawn using the new Fritzing ( http://fritzing.org )<br />
Arduino Software<br />Based on avr-gcctoolchain and the Processing IDE.<br />Code editor, programming tools and serial ter...
Arduino Language<br />Simplified C/C++<br />Based on the Wiring Project<br />http://wiring.org.co<br />Peripheral Librarie...
Useful functions<br />pinMode() – set a pin as input or output<br />digitalWrite() – set a digital pin high/low<br />digit...
Example: Button<br />
Example: SerialDisplay<br />
Arduino Community<br />http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl<br />http://www.arduino.cc/playground/<br />
Resistor<br />TheHydraulicAnalogy<br />Capacitor<br />Wire<br />Diode<br />Transistor<br />http://en.wikipedia.org/wiki/Hy...
Resistors<br />http://flic.kr/p/EDuqt<br />
Resistors<br />Parallel<br />Connection<br />Series Connection<br />MAKE Presents: The Resistor - http://youtube.com/watch...
Diodes<br />http://bit.ly/3f5YQt<br />
Diodes<br />MAKE Presents: The Diode - http://youtube.com/watch?v=AqzYsuTRVRc<br />
Light Emitting Diodes<br />http://flic.kr/p/38DLnC<br />
LEDs<br />MAKE Presents: The LED - http://youtube.com/watch?v=P3PDLsJQcGI<br />
LED Resistor Calculation<br />Let’s assume we have a 9V source…<br />R = V / I<br />R = (9-3.4) / (20*10-3)<br />R = 280 Ω...
Ohm’s Law<br />V = Voltage<br />I = Current<br />R = Resistance<br />V<br />I<br />R<br />V = Current * Resistance<br />I ...
Capacitors<br />http://flic.kr/p/EDtRo<br />
Capacitors<br />Series Connection<br />Parallel<br />Connection<br />MAKE Presents: The Capacitor - http://youtube.com/wat...
Transistors<br />http://flic.kr/p/qjbnc<br />
Transistors<br />MAKE Presents: The Transistor - http://youtube.com/watch?v=-td7YT-Pums<br />
Driving LEDs with transistors(using a transistor as a switch)<br />VCC<br />Drive here…<br />
Upcoming SlideShare
Loading in...5
×

BURO Arduino Workshop

5,836

Published on

Slides used in the Arduino Workshop (24-25 Dec 2009) organised by BURO.

Published in: Education, Technology
1 Comment
14 Likes
Statistics
Notes
  • Could I get a copy of these slides?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
5,836
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
1
Likes
14
Embeds 0
No embeds

No notes for slide

Transcript of "BURO Arduino Workshop"

  1. 1. photo: http://flic.kr/p/5XwBFB<br />BURO Arduino Workshop<br />
  2. 2. Arduino<br /> …is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It&apos;s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.<br />http://arduino.cc<br />
  3. 3. Physical Computing<br /> …is an approach to learning how humans communicate through computers that starts by considering how humans express themselves physically.<br />- Tom Igoe<br />http://www.tigoe.net/pcomp/blog/archives/notes/000169.shtml<br />
  4. 4. <ul><li>Bill Verplank</li></ul>http://www.billverplank.com/Lecture/<br />
  5. 5. Embedded Systems<br /> …are computer systems designed to perform one or a few dedicated functions. They are embedded as part of a complete device often including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal computer, is designed to be flexible and to meet a wide range of an end-user&apos;s needs. Embedded systems control many of the common devices in use today..<br />- Smart folks at Wikipedia<br />http://en.wikipedia.org/wiki/Embedded_systems<br />
  6. 6. Why Arduino?<br />Inexpensive<br />No need for external programmers, compiler licenses etc.<br />Simple, clear programming environment<br />All done in a simple IDE, no command line voodoo<br />Cross-platform<br />Works uniformly across Windows, Linux, MacOS<br />Open Source!<br />Both software and hardwre<br />
  7. 7.
  8. 8.
  9. 9. Hardware<br />Atmel Microcontroller<br />ATmega328 (Duemilanove) / ATmega1280(Mega)<br />ATmega8/ATmega168 on older versions<br />ATmega644 for Sanguino<br />Serial Bootloader<br />STK500 compatible<br />Support Circuitry<br />Reset, Voltage Regulator, etc…<br />USB/Serial Connectivity<br />
  10. 10. Anatomy of an Arduino Board<br />digital pins<br />USB to serial<br />converter<br />microcontroller<br />(the brain!)<br />power circuitry<br />(voltage regulator and<br />the clever power<br />source selection bit)<br />analog pins<br />power pins<br />
  11. 11. Official Arduino Hardware<br />http://arduino.cc/en/Main/Hardware<br />
  12. 12. “Shield Compatible” Hardware<br />(1)<br />(2)<br />(3)<br />[1] Freeduino - http://www.freeduino.org/freeduino_open_designs.html<br />[2] Illuminato - http://www.liquidware.com/shop/show/ILL/Illuminato<br />[3] Seeeduino - http://www.seeedstudio.com/depot/seeeduino-v328-fully-assembledatmega-328-p-439.html<br />
  13. 13. “Bootloader Compatible” Hardware<br />(3)<br />(2)<br />(1)<br />(4)<br />[1] Oak Micros om328p - http://oakmicros.com/content/om328p.html<br />[2] Modified Pico - http://www.modifiedelectronics.com/mp-01.php<br />[3] Boarduino - http://www.ladyada.net/make/boarduino/index.html<br />[4] Sanguino - http://sanguino.cc/<br />
  14. 14. Alternative form factors <br /><ul><li>Breadboard Arduino</li></ul>http://bit.ly/7QMkbx<br />One-Chip Arduino<br />http://bit.ly/WXqeU<br />
  15. 15. There’s more!<br />Official boards<br />http://arduino.cc/en/Main/Boards<br />Arduino-like Boards<br />http://www.arduino.cc/playground/Main/SimilarBoards<br />Other ‘duinos<br />http://www.freeduino.org/duino.html<br />...and possibly others<br />
  16. 16. Arduino Shields<br />(3)<br />(1)<br />(4)<br />(2)<br />[1] Adafruit Motor Shield - http://ladyada.net/make/mshield/index.html<br />[2] Nu Electronics LCD shield - http://www.nuelectronics.com/estore/index.php?main_page=product_info&cPath=1&products_id=2<br />[3] Arduino Ethernet Shield - http://arduino.cc/en/Main/ArduinoEthernetShield<br />[4] Adafruit Wave Shield - http://ladyada.net/make/waveshield/index.html<br />
  17. 17. Again, there’s more!<br />http://www.arduino.cc/playground/Main/SimilarBoards<br />Look under ‘Shields’<br />Some cool ones:<br />Liquidware<br />TouchShield<br />http://www.liquidware.com/shop/show/TS/TouchShield+Stealth<br />BatsocksTellyMate Shield<br />http://www.batsocks.co.uk/products/Shields/TellyMate%20Shield.htm<br />tinker.it RFID shield<br />http://tinker.it/en/Teaching/RFID<br />
  18. 18. Arduino Bar, Ivrea(from Massimo Banzi’s slides)<br />
  19. 19. Big Computer vs. Tiny Computer<br />Dell Precision T1500<br />Atmel ATMEGA328P<br />CPU Speed: 2.93GHz<br />Quad-core!<br />RAM: 16GB<br />Storage: 2TB<br />I/O:<br />USB, Firewire, Serial, PS/2, RJ-45, Audio, etc.<br /><ul><li>CPU Speed: 20MHz
  20. 20. Not Quad-core
  21. 21. RAM: 2KB
  22. 22. Storage:
  23. 23. 32KB Program Memory
  24. 24. 1KB EEPROM
  25. 25. I/O:
  26. 26. Up to 23 generic I/O
  27. 27. 6 of them ‘analog-capable’
  28. 28. UART/SPI/I2C, etc.</li></li></ul><li>It’s an analog world…<br />Digital – only has two values: on/off<br />Analog – has many (infinite) values<br />Computers don’t really do analog<br />So they fake it, with quantization<br />From Tod E. Kurt’s ‘Spooky Projects’ notes - http://todbot.com/blog/spookyarduino/<br />
  29. 29. Sensors<br />Temperature<br />Light<br />Humidity<br />Pressure<br />Distance<br />Touch/‘Knock’<br />Rotation<br />
  30. 30. Motors<br />DC Motors<br />Servos<br />Steppers<br />Solenoids<br />Hydraulics<br />Actuators<br />
  31. 31. “Modules”<br />Bluetooth<br />http://www.sparkfun.com/commerce/product_info.php?products_id=582<br />Character LCD<br />http://www.oomlout.co.uk/lcd-display-16-x-2-p-212.html<br />GPS<br />http://www.sparkfun.com/commerce/product_info.php?products_id=465<br />
  32. 32. BREADBOARDS ARE COOL!<br />
  33. 33. The BreadBoard!<br />* Drawn using the new Fritzing ( http://fritzing.org )<br />
  34. 34. Arduino Software<br />Based on avr-gcctoolchain and the Processing IDE.<br />Code editor, programming tools and serial terminal all in one place.<br />
  35. 35. Arduino Language<br />Simplified C/C++<br />Based on the Wiring Project<br />http://wiring.org.co<br />Peripheral Libraries<br />LCD, sensors, I2C, etc<br />
  36. 36. Useful functions<br />pinMode() – set a pin as input or output<br />digitalWrite() – set a digital pin high/low<br />digitalRead() – read a digital pin’s state<br />analogRead() – read an analog pin<br />analogWrite() – write an “analog” PWM value<br />delay() – wait an amount of time<br />millis() – get the current time<br />http://arduino.cc/en/Reference/Extended<br />
  37. 37. Example: Button<br />
  38. 38. Example: SerialDisplay<br />
  39. 39. Arduino Community<br />http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl<br />http://www.arduino.cc/playground/<br />
  40. 40. Resistor<br />TheHydraulicAnalogy<br />Capacitor<br />Wire<br />Diode<br />Transistor<br />http://en.wikipedia.org/wiki/Hydraulic_analogy<br />
  41. 41. Resistors<br />http://flic.kr/p/EDuqt<br />
  42. 42. Resistors<br />Parallel<br />Connection<br />Series Connection<br />MAKE Presents: The Resistor - http://youtube.com/watch?v=-td7YT-Pums<br />
  43. 43. Diodes<br />http://bit.ly/3f5YQt<br />
  44. 44. Diodes<br />MAKE Presents: The Diode - http://youtube.com/watch?v=AqzYsuTRVRc<br />
  45. 45. Light Emitting Diodes<br />http://flic.kr/p/38DLnC<br />
  46. 46. LEDs<br />MAKE Presents: The LED - http://youtube.com/watch?v=P3PDLsJQcGI<br />
  47. 47. LED Resistor Calculation<br />Let’s assume we have a 9V source…<br />R = V / I<br />R = (9-3.4) / (20*10-3)<br />R = 280 Ω<br />Nearest standard value is 330 Ω<br />List of standard resistor values: http://www.logwell.com/tech/components/resistor_values.html<br />
  48. 48. Ohm’s Law<br />V = Voltage<br />I = Current<br />R = Resistance<br />V<br />I<br />R<br />V = Current * Resistance<br />I = Voltage / Resistance<br />R = Voltage / Current<br />
  49. 49. Capacitors<br />http://flic.kr/p/EDtRo<br />
  50. 50. Capacitors<br />Series Connection<br />Parallel<br />Connection<br />MAKE Presents: The Capacitor - http://youtube.com/watch?v=ZYH9dGl4gUE<br />
  51. 51. Transistors<br />http://flic.kr/p/qjbnc<br />
  52. 52. Transistors<br />MAKE Presents: The Transistor - http://youtube.com/watch?v=-td7YT-Pums<br />
  53. 53. Driving LEDs with transistors(using a transistor as a switch)<br />VCC<br />Drive here…<br />
  54. 54. Interfacing?<br />A<br />B<br />
  55. 55. Standard Computer Interfaces<br />Wired<br />USB<br />Serial Port<br />Parallel Port<br />Firewire<br />Ethernet<br />And others…<br /><ul><li>Wireless
  56. 56. WiFi
  57. 57. Bluetooth
  58. 58. IrDA</li></li></ul><li>‘Embedded’ Interfaces<br />SPI<br />I2C<br />1-Wire<br />UNI/O<br />And others…<br />
  59. 59. Example Project: Thermometer<br />A temperature sensor is connected to an analog input on the Arduino<br />Arduino periodically reports the temperature back to PC<br />PC uses this data to plot graphs etc.<br />
  60. 60. Thermometer: Arduino Code<br />intsensorPin = 0; // the analog pin that the sensor is connected to<br />void setup(){<br />Serial.begin(9600);<br />}<br />void loop(){<br />//getting the voltage reading from the temperature sensor<br />int reading = analogRead(sensorPin); <br />// converting that reading to voltage, for 3.3v arduino use 3.3<br />float voltage = reading * 5.0 / 1024; <br />// print out the voltage<br />Serial.print(voltage); Serial.println(&quot; volts&quot;);<br />// now print out the temperature<br />floattemperatureC = (voltage - 0.5) * 100; <br />// converting from 10 mV per degree with 500 mV offset <br />// to degrees ((voltage - 500mV) times 100)<br />Serial.print(temperatureC); Serial.println(&quot; degress C&quot;);<br />delay(1000); // wait a second<br />}<br />From Ladyada’s TMP36 Tutorial - http://www.ladyada.net/learn/sensors/tmp36.html<br />
  61. 61. Thermometer: PC Side<br />Read the incoming data every X seconds (cron)<br />Collect and plot temperature graphs (rrdtool)<br />Example: thermostat-graph<br />http://www.anders.com/projects/thermostat-graph/<br />Not an Arduino project but easily hackable!<br />
  62. 62. http://arduino.cc<br />http://arduino.cc/playground/<br />http://freeduino.gen.tr<br />http://freeduino.org<br />http://buroburo.net/workshop<br />Links…<br />

×