29
Physical Computing with Ruby and Arduino Matthew Williams @mwilliams Orlando Ruby Users Group

Physical Computing with Ruby and Arduino

  • Upload
    orug

  • View
    9.931

  • Download
    2

Embed Size (px)

DESCRIPTION

Matthew Williams's talk on the Arduino at the Orlando Ruby Users Group on October 17th, 2008

Citation preview

Page 1: Physical Computing with Ruby and Arduino

Physical Computing with Ruby and Arduino

Matthew Williams @mwilliams

Orlando Ruby Users Group

Page 2: Physical Computing with Ruby and Arduino

Barcamp Orlando Anyone?

Page 3: Physical Computing with Ruby and Arduino

What's Arduino?

http://www.arduino.cc

Page 4: Physical Computing with Ruby and Arduino
Page 5: Physical Computing with Ruby and Arduino

Arduino haz Flavor?

Page 6: Physical Computing with Ruby and Arduino
Page 7: Physical Computing with Ruby and Arduino
Page 8: Physical Computing with Ruby and Arduino

http://rad.rubyforge.org/ http://github.com/atduskgreg/rad/

Page 9: Physical Computing with Ruby and Arduino

Arduino •14 Digital I/O (6 PWM) •6 Analog In •16kb Flash Memory •2kb for boot loader

•16MHz Clock Speed •Serial Communication •USB Powered (or AC) •I2C

Page 10: Physical Computing with Ruby and Arduino

Arduino IDE

Page 11: Physical Computing with Ruby and Arduino

RAD IDE

Page 12: Physical Computing with Ruby and Arduino

Ruby + Physical Computing

•Control an Arduino with Ruby •RubyToC •AVR­GCC

•Most of the Arduino API ported to Ruby •Additional libraries •Serial communications •Servos

Page 13: Physical Computing with Ruby and Arduino

Arduino Code int ledPin = 13; void setup() pinMode(ledPin, OUTPUT); void loop() digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000);

Page 14: Physical Computing with Ruby and Arduino

RAD Code class HelloWorld < ArduinoSketch output_pin 7, :as => :led def loop blink led, 1000 end end

Page 15: Physical Computing with Ruby and Arduino

RAD Methods •input_pin(s) •output_pin(s) •digitalWrite| digitalRead •analogWrite | analogRead •serial_print | serial_read •Keeping it simple •It's all about the hardware

Page 16: Physical Computing with Ruby and Arduino

Coming Soon •Testing •Arduino Simulator •Better RubyToC Support •More "Out of the Box Support" •LCD's •OLED Displays •Motors

Page 17: Physical Computing with Ruby and Arduino

Arduino Shields

http://www.nycresistor.com/2008/04/21/zach­ smith­demos­his­danger­shield/

Page 18: Physical Computing with Ruby and Arduino
Page 19: Physical Computing with Ruby and Arduino
Page 20: Physical Computing with Ruby and Arduino
Page 21: Physical Computing with Ruby and Arduino

http://www.liquidware.com/projects/8/Pin+Visualizer

Page 22: Physical Computing with Ruby and Arduino

Buy an Arduino

http://www.sparkfun.com http://ww.makezine.com

$34.95 (or cheaper)

Page 23: Physical Computing with Ruby and Arduino

Awesome Resources •http://makezine.com/getstartedarduino/ •http://blog.makezine.com/archive/arduino/ •http://arduino.cc/playground

Page 24: Physical Computing with Ruby and Arduino

Barduino

http://github.com/mwilliams/barduino

Page 25: Physical Computing with Ruby and Arduino

The Barduino •Arduino •Breadboard + Wire •Transistors •Relays •Windshield Washer Fluid Pumps •~$60 Total? •2 pumps, could handle 14+

Page 26: Physical Computing with Ruby and Arduino

Barduino­tender

http://github.com/mwilliams/barduino­tender

Page 27: Physical Computing with Ruby and Arduino

Barduino­tender Recipe drink 'Screwdriver' do serve_in 'Highball Glass' ingredients do 2.ounces :vodka 5.ounces :orange_juice end end

Page 28: Physical Computing with Ruby and Arduino

Want More? •RubyConf 2008 •Friday •10:25 ­ 11:05 •Room 3

•Greg Borenstein •(Big help with this demo)

Page 29: Physical Computing with Ruby and Arduino

Let's Serve Some Drinks (and look at code)