1月 212013
<< Arduino Microをキーボードにする || ArduinoMicro買った >>
Ruby用Arduino Firmataライブラリにanalog_readとdigital_readの値が変わった時のイベントつけた
ふつうこうやってアナログ0番ピンをanalog_readするけど
require 'arduino_firmata'
arduino = ArduinoFirmata.connect
puts arduino.analog_read 0 # => 0 ~ 1023
これでアナログ値が変わった時にイベントが起こる
arduino.on :analog_read do |pin, value| # analog_read event
if pin == 0
puts "analog pin #{pin} changed : #{value}"
end
end
同様にdigital_readもHIGH/LOWが切り替わった時のイベントがとれる
arduino.pin_mode 7, ArduinoFirmata::INPUT
arduino.on :digital_read do |pin, status| # digital_read event
if pin == 7
puts "digital pin #{pin} changed : #{status}"
end
end
イベント管理はNode.jsのEventEmitterが便利だったので、それのRuby版を使ってる