Wednesday, May 11, 2011

簡単カメラコントロール画面

prototype.jsを使って簡単な操作画面を設定。
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: