Macに最初から入ってるRubyで、サーボモーターが簡単に動かせるってすごい(^q^)

前:RubyでPhidgets InterfaceKitのセンサーを使う

サーボモーターが接続されていたら1.5秒毎にランダムな角度に回す。
回すとon_position_changeイベントが起こるので、そこでサーボの角度を取得して表示してみている。

ffi-servo.rb

#!/usr/bin/env ruby
require 'rubygems'
require 'phidgets-ffi'

servo = Phidgets::Servo.new

servo.on_attach do |device, obj|
puts "#{device.device_class} attached"
device.servos[0].engaged = true
device.servos[0].type = Phidgets::FFI::ServoType[:default]
end

servo.on_position_change do |device, motor, position|
puts "servo[#{motor.index}] => #{position}"
end

sleep 5
if servo.attached?
loop do
servo.servos[0].position = rand(servo.servos[0].position_max)
sleep 1.5
end
else
puts 'device not found'
end
 

結果
servo attached
servo[0] => 50.031
servo[0] => 131.969
servo[0] => 23.969
servo[0] => 86.969
servo[0] => 28.0
servo[0] => 98.969
servo[0] => 86.031
servo[0] => 193.0
servo[0] => 26.969
servo[0] => 211.0
servo[0] => 101.031
servo[0] => 206.031
servo[0] => 34.0
servo[0] => 116.031
servo[0] => 170.031
servo[0] => 80.969