Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Introducing Arduino & Dino - David Grayson
Las Vegas Ruby Group
January 30, 2013
1
23
Introducing Arduino & Dino - David Grayson
Las Vegas Ruby Group
January 30, 2013
Tweet
Share
More Decks by Las Vegas Ruby Group
See All by Las Vegas Ruby Group
lvrug
0
77
lvrug
0
25
lvrug
0
51
lvrug
0
25
lvrug
3
77
lvrug
1
56
lvrug
1
61
lvrug
0
23
lvrug
1
34
Featured
See All Featured
eitanlees
112
10k
geeforr
332
29k
bkeepers
321
53k
shpigford
369
42k
sferik
610
54k
maltzj
501
36k
shlominoach
176
7.5k
chriscoyier
779
240k
reverentgeek
167
7.2k
keathley
20
700
vanstee
117
4.9k
afnizarnur
176
14k
Transcript
Introducing Arduino & Dino: Ruby meets the physical world! David
Grayson Las Vegas Ruby Group, 2013-1-30
Arduino Pictures taken from pololu.com, arduino.cc, sparkfun.com
Pictures taken from sparkfun.com, adafruit.com, pjrc.com, evilmadscientist.com, kicksta
http://blog.tkjelectronics.dk/2012/03/the-balancing-robot/
http://madebyfrutos.wordpress.com/2013/01/12/bobobot/ Pololu Zumo Robot
http://www.indiegogo.com/robobrrd
So many projects... http://www.instructables.com/id/Arduino-Projects/ http://www.pololu.com/resources/communityprojects
Arduino = AVR + USB + IDE
Your PC vs. ATmega328P
$1950.00 $3.16 or less
1,006 GB 32 KB
16 GB 2 KB
2.4 GHz 20 MHz
30 seconds 0.003 seconds
Screen, keyboard, touchpad, USB, ethernet, HDMI, VGA, SD card, DVD
drive, WiFi, Bluetooth
Documentation
LVBots
BIOS, OS, Processes, Threads, (maybe bootloader) Registers, Interrupts
C/C++ avr-gcc
None
Dino Control your Arduino from Ruby!
Dino • Author: Austin Vance • Source: http://github.com/austinbv/dino • RubyConf
2012 Talk
Blink LED require 'dino' board = Dino::Board.new(Dino::TxRx.new) led = Dino::Components::Led.new(pin:
13, board: board) [:on, :off].cycle do |switch| led.send(switch) sleep 0.5 end
Sensor require 'dino' board = Dino::Board.new(Dino::TxRx.new) sensor = Dino::Components::Sensor.new(pin: 'A0',
board: board) on_data = Proc.new do |data| p data end sensor.when_data_received(on_data) sleep
…could be WAY cleaner: require 'dino' board = Dino::Board.new sensor
= board.analog_inputs[0] puts sensor.voltage # => 4.0185546875
Shields & Libraries
Other components...
Button
IR Receiver
RGB Led
Servo
Stepper
http://playground.arduino.cc/interfacing/ruby https://github.com/austinbv/dino http://confreaks.com/videos/1294-rubyconf2012-arduino-the-ruby-way More info about Dino:
None