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