Physical Computing with Ruby and Arduino

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

description

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

Transcript of Physical Computing with Ruby and Arduino

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)