4月 122012
<< RubyでPhidgets Servoを動かす || 最近の自宅プログラミング環境 >>
前に書いたphidgets-ffiを使う。ボリュームとスライダーと明るさとタッチセンサーを使ってみた。
Mac+Ruby+Phidgets簡単すぎてヤバイ。多少高いが、金をうならせれば誰でも電子工作的なものとWeb的なものを合体できる。箱から出して接続してすぐ使えるってすごいなー
■インストール
Phidget21をインストールしてからgemをいれる
gem install ffi phidgets-ffi
■プログラムを書く
ffi-ifkit.rb
#!/usr/bin/env ruby
require 'rubygems'
require 'phidgets-ffi'
ik = Phidgets::InterfaceKit.new
ik.on_attach do |device, obj|
puts "#{device.device_class} attached"
end
ik.on_sensor_change do |device, input, value, obj|
puts "sensor[#{input.index}] => #{value}"
end
sleep 5
if ik.attached?
loop do end
else
puts 'device not found'
end
■動かす
Phidgets InterfaceKitにセンサーつないでいじるとon_sensor_changeイベントが起こる
interface_kit attachedちなみにon_sensor_changeイベントを使わなくても自分でPhidgets::InterfaceKit#sensorsを参照すれば読める。
sensor[0] => 508
sensor[1] => 0
sensor[2] => 488
sensor[3] => 986
sensor[4] => 0
sensor[5] => 0
sensor[6] => 0
sensor[7] => 0
sensor[3] => 998
sensor[2] => 473
sensor[2] => 489
sensor[2] => 479
sensor[2] => 469
sensor[2] => 486
raw_valueは12bitADコンバータの値で、0〜4095の値を返すようだ。to_iすると0〜999が得られる。
puts ik.sensors[0].raw_value
puts ik.sensors[0].to_i