Slide 1

Slide 1 text

Controlling Robots with Ruby

Slide 2

Slide 2 text

Andrew Nesbitt @teabass github.com/andrew

Slide 3

Slide 3 text

Controlling Robots with Ruby

Slide 4

Slide 4 text

Why Ruby?

Slide 5

Slide 5 text

High LEvel

Slide 6

Slide 6 text

Lower Barriers

Slide 7

Slide 7 text

Fun!

Slide 8

Slide 8 text

http://artoo.io

Slide 9

Slide 9 text

http://celluloid.io

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Arduino

Slide 12

Slide 12 text

Firmata

Slide 13

Slide 13 text

Drivers

Slide 14

Slide 14 text

Hello World

Slide 15

Slide 15 text

require 'artoo'
 
 connection :arduino, :adaptor => :firmata, 
 :port => '/dev/cu.usbmodem1411'
 device :led, driver: :led, pin: 9
 
 work do
 loop do
 led.toggle
 sleep 1
 end
 end Hello World

Slide 16

Slide 16 text

Sparkfun Inventors Kit hobbytronics.co.uk/sparkfun-inventors-kit-v3

Slide 17

Slide 17 text

Sparkfun Inventors Kit hobbytronics.co.uk/sparkfun-inventors-kit-v3

Slide 18

Slide 18 text

Sumobot http://www.pololu.com/catalog/product/2506

Slide 19

Slide 19 text

! require 'artoo' ! connection :arduino, :adaptor => :firmata, :port => '/dev/cu.usbmodem1411' ! device :board, :driver => :device_info device :left_motor, :driver => :motor, :forward_pin => 6, # hack! :backward_pin => 8, :speed_pin => 10 ! device :right_motor, :driver => :motor, :forward_pin => 6, # hack! :backward_pin => 7, :speed_pin => 9 ! MAX_SPEED = 60 ! connection :keyboard, adaptor: :keyboard device :keyboard, driver: :keyboard, connection: :keyboard

Slide 20

Slide 20 text

def keypress(sender, key) puts key case key when 'left' left_motor.backward MAX_SPEED right_motor.forward MAX_SPEED when 'right' left_motor.forward MAX_SPEED right_motor.backward MAX_SPEED when 'up' left_motor.forward MAX_SPEED right_motor.forward MAX_SPEED when 'down' left_motor.backward MAX_SPEED right_motor.backward MAX_SPEED when 'space' left_motor.stop right_motor.stop end end ! work do puts "Ready!" on keyboard, :key => :keypress end

Slide 21

Slide 21 text

AR Drone http://ardrone2.parrot.com

Slide 22

Slide 22 text

require 'artoo'
 
 connection :ardrone, :adaptor => :ardrone, :port => '192.168.1.1:5556'
 device :drone, :driver => :ardrone, :connection => :ardrone
 
 work do
 drone.start
 drone.take_off
 
 after(10.seconds) { drone.hover.land }
 after(15.seconds) { drone.stop }
 end AR DRONE

Slide 23

Slide 23 text

Sphero https://github.com/hybridgroup/artoo/blob/master/examples/conway_sphero.rb

Slide 24

Slide 24 text

Dance Dance Drone

Slide 25

Slide 25 text

Lego Controlled Rabbit

Slide 26

Slide 26 text

http://gobot.io Gobot

Slide 27

Slide 27 text

http://cylonjs.com Cylon

Slide 28

Slide 28 text

NoDebots.io

Slide 29

Slide 29 text

Thanks! code: github.com/andrew/artoo-experiments slides: speakerdeck.com/andrew/bathruby-on-robots