prototype.jsには詳しくないけど、サンプル通りにカメラコントロール用cgiを呼び出して、cgiから返ってきたカメラの角度を更新するだけ。
カメラ画像はffserverで作ってるmjpg。そのままブラウザで扱えるから楽。fpsは1で画像も小さくしてるから、ただの確認用だけど。
とりあえずこれで必要最低限の機能は完成。
しばらく運用テストしてみて、不具合があったら修正。
cgiはこんな感じ。
#!/usr/bin/ruby
#移動指示を受け取って現在の角度を返すcgi
require 'rubygems'
require 'serialport'
require 'cgi'
cgi = CGI.new
#基本ステッピング角度0.75
#このシステムは一回に付き0.75*4*5 = 15
maxAngle = 8
print "Content-type: text/html\n\n"
port = "/dev/ttyUSB0" #arduinoのポート番号
sp = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE)
f = open("angle")
count = f.gets.to_i
f.close
f = open("angle","w")
if cgi["move"] == "r" and count < maxAngle
sp.write cgi["move"]
count += 1
elsif cgi["move"] == "l" and 0 < count + maxAngle
sp.write cgi["move"]
count -= 1
end
#15を掛けて角度に直したものを表示
puts count*15
f.puts count
f.close
sp.close

No comments:
Post a Comment