Your SlideShare is downloading. ×
0
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
BURO Arduino Workshop
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

BURO Arduino Workshop

5,811

Published on

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

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

Published in: Education, Technology
1 Comment
13 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,811
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
1
Likes
13
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. photo: http://flic.kr/p/5XwBFB<br />BURO Arduino Workshop<br />
  • 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. 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. <ul><li>Bill Verplank</li></ul>http://www.billverplank.com/Lecture/<br />
  • 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. 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.
  • 8.
  • 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. 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. Official Arduino Hardware<br />http://arduino.cc/en/Main/Hardware<br />
  • 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. “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. 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. 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. 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. 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. Arduino Bar, Ivrea(from Massimo Banzi’s slides)<br />
  • 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. Not Quad-core
  • 21. RAM: 2KB
  • 22. Storage:
  • 23. 32KB Program Memory
  • 24. 1KB EEPROM
  • 25. I/O:
  • 26. Up to 23 generic I/O
  • 27. 6 of them ‘analog-capable’
  • 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. Sensors<br />Temperature<br />Light<br />Humidity<br />Pressure<br />Distance<br />Touch/‘Knock’<br />Rotation<br />
  • 30. Motors<br />DC Motors<br />Servos<br />Steppers<br />Solenoids<br />Hydraulics<br />Actuators<br />
  • 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. BREADBOARDS ARE COOL!<br />
  • 33. The BreadBoard!<br />* Drawn using the new Fritzing ( http://fritzing.org )<br />
  • 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. 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. 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. Example: Button<br />
  • 38. Example: SerialDisplay<br />
  • 39. Arduino Community<br />http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl<br />http://www.arduino.cc/playground/<br />
  • 40. Resistor<br />TheHydraulicAnalogy<br />Capacitor<br />Wire<br />Diode<br />Transistor<br />http://en.wikipedia.org/wiki/Hydraulic_analogy<br />
  • 41. Resistors<br />http://flic.kr/p/EDuqt<br />
  • 42. Resistors<br />Parallel<br />Connection<br />Series Connection<br />MAKE Presents: The Resistor - http://youtube.com/watch?v=-td7YT-Pums<br />
  • 43. Diodes<br />http://bit.ly/3f5YQt<br />
  • 44. Diodes<br />MAKE Presents: The Diode - http://youtube.com/watch?v=AqzYsuTRVRc<br />
  • 45. Light Emitting Diodes<br />http://flic.kr/p/38DLnC<br />
  • 46. LEDs<br />MAKE Presents: The LED - http://youtube.com/watch?v=P3PDLsJQcGI<br />
  • 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. 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. Capacitors<br />http://flic.kr/p/EDtRo<br />
  • 50. Capacitors<br />Series Connection<br />Parallel<br />Connection<br />MAKE Presents: The Capacitor - http://youtube.com/watch?v=ZYH9dGl4gUE<br />
  • 51. Transistors<br />http://flic.kr/p/qjbnc<br />
  • 52. Transistors<br />MAKE Presents: The Transistor - http://youtube.com/watch?v=-td7YT-Pums<br />
  • 53. Driving LEDs with transistors(using a transistor as a switch)<br />VCC<br />Drive here…<br />
  • 54. Interfacing?<br />A<br />B<br />
  • 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. WiFi
  • 57. Bluetooth
  • 58. IrDA</li></li></ul><li>‘Embedded’ Interfaces<br />SPI<br />I2C<br />1-Wire<br />UNI/O<br />And others…<br />
  • 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. 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. 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. 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 />

×