回路

参考:http://arduino.cc/en/Tutorial/Knock

上と同じように、ピエゾ素子と抵抗4MΩを並列にして、GNDとAnalog input 0の間に接続した。
ピエゾはたしか千石で80円で買った奴。



振動を取る

道具箱の中に接着剤がついたゴム板があったので、サンドイッチしてみたらとても調子よくなった。
ゴムのどの位置を叩いてもピエゾ素子の真ん中に振動が伝わるようにする必要があるので、思い切り接着した。

これを床のカーペットに仕込んだら足音がバッチリ取れた。


最初に作った物。
ドラムセットにつけてみたけど、セロテープで付けたのでちゃんと伝わっていない。



プログラム

RubyのFirmataで書いた。
analog readして、最近1000回分を配列に保存しておいて最大値のみをterminalに表示する。(細かい数字がバラバラ出ると見づらいので)
#!/usr/bin/env ruby
require 'rubygems'
require 'arduino_firmata'

arduino = ArduinoFirmata.connect
puts arduino.version

buf = []
loop do
buf << arduino.analog_read(0)
puts buf.max
buf = [] if buf.size > 1000
end