プログラム: Arduino IDE + Ruby (twitter4r, serialport)
Arduinoさんに,USB経由でシリアル通信するためのプログラムです.
twiSendData/twiSendData.pde /* Cyber Finko in Arduino IDE 0017 published by hoimei and CyberFinko!, 2009.09.10 http://d.hatena.ne.jp/hoimei http://twitter.com/cyberFinko Background Material: http://d.hatena.ne.jp/iwkn/20090322 */ int val;//送信データ用の変数を用意 void setup(){ Serial.begin(9600); } void loop(){ val = analogRead(0); Serial.println(val); }
|
---|
Teet.rb # Cyber Finko # published by hoimei and CyberFinko!, 2009.09.10 # http://d.hatena.ne.jp/hoimei # http://twitter.com/cyberFinko # Background Materials: # http://d.hatena.ne.jp/iwkn/20090322 # http://d.hatena.ne.jp/takahirox/20090505/1241525041 #!/usr/bin/ruby require 'rubygems' gem( 'twitter4r', '>=0.3.1' ) require 'twitter' require 'serialport' def generateMessage messages = ["ピョ・・", "ピョ・・", "モフッ.", "ピョ!ピョピョッ!", "外に出たいなぁ."] msg = messages[rand(messages.size)] return msg end #シリアルポートを指定 port = "/dev/tty.usbserial-A6004cl0" #Arduinoさんで指定したポート $ls /dev/tty.*で探せます. sp = SerialPort.new(port, 9600, 8, 1, SerialPort::NONE) #sp.puts "a" #read serial values #p sp.gets #10個の値の平均をとる $val = 0 for i in 0..9 $val = $val + sp.gets.to_i # $val = $val + sp.read.to_i # p $val end $val = $val/10 #p $val #つぶやき #距離が近いと,Analog Inの値が大きくなります. if($val > 500) $message = "センサーが気になる." elsif($val > 400) $message = "羽繕いしているよ." elsif($val > 300) $message = "休憩中・・・zzZZZ" elsif($val > 200) $message = "お水のんでいます." elsif(50>$val) $message = "ご飯食べてます.豆おいしいです." else $message = generateMessage end p $message begin #ログインIDとパスワードを忘れずに・・・ client = Twitter::Client.new(:login=>"name", :password=> "**") client.status(:post, $message) rescue end
|
---|