市販のモーション・センサを使う

  「Gainer互換Pepperでフィジカル・コンピューティング」の第6章ではセンサとして市販の焦電センサ・ユニットを改造して利用しました。単体の焦電型センサ・モジュールの使い方も説明しましたが、別のパナソニック製のモーション・センサ・ユニットが入手できましたので、Pepperで試しました。

 

00 MotionSensor.jpg

【人体検出用赤外線センサ NaPiOn(ナピオン)】

 ナピオンはパナソニック電工の販売している人体検出用赤外線センサ・ユニットです。人体の発生する赤外線を検知することで、人がいるかどうかをセンスするためのセンサです。トイレなどの照明の自動点灯に利用されています。

 

01 MotionSensor.jpg

http://panasonic-denko.co.jp/ac/j/control/sensor/human/napion/index.jsp

 

 いくつかタイプがあるようですが、今回はディジタル出力をもち微動を検知することのできるAMN32112を使いました。検出距離は最大2メートルで近距離の検知用です。また、検出範囲は水平および垂直方向に91度と広範囲をカバーしています。

 筆者は秋葉原の千石電商で、1050円で入手しました。ほかにも長距離をカバーする物や、検知範囲を絞ったものなど数種類の異なる特性をもつセンサが入手可能です。用途に合わせて選択してください。

 

【回路】

 動作電圧範囲が3Vから6Vとなっていますので, Pepper経由で5Vを直接給電します。また、出力はディジタルで検知した場合にセンサ内部のスイッチがONになり出力に5Vの電圧が出力されます。未検知の場合には出力がオープンになるようですので,センサ出力とグラウンドの間に10kオームの抵抗を挿入しプルダウンすることにしました。

 

02 Schematic.png 03 SensorPin.jpg

 

 回路が簡単なので、ブレッドボードへの実装もすぐに終わると思います。

 

04 BreadBoard.jpg
 

【プログラム】

 Processingでプログラムを作成します。モード1のアナログ入力チャネル0から値を読み込んで、動作を確認をしました。

 

/*  Analog Input [0] */

import processing.gainer.*;

 

PFont myFont;

Gainer gainer;

 

void setup(){

  size(250,250);

  gainer = new Gainer(this,Gainer.MODE1);

  myFont = loadFont("CourierNewPSMT-24.vlw");

  textFont(myFont, 24);

  frameRate(30);

}

 

void draw(){

  int v;

  gainer.peekAnalogInput();  // read analog port

  v = gainer.analogInput[0];  // Display Control

  background(v);

  fill(255, 0, 0);

  text("Analog[0] = " + v ,30, 120);

}

【動作確認】

 ProcessingからRunを選択すれば、画面のセンサの読み取り値が表示されます。動作画面を示します。

 検出された場合には,200程度の大きな値が、検知されない場合には100より小さな値が表示されると思います。

 

05 ScreenCapture.png

 

桑田喜隆

 


トラックバック(0)

このブログ記事を参照しているブログ一覧: 「Gainer互換Pepperでフィジカル・コンピューティング」フォローアップ記事(5)

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/3750

コメントする

カテゴリ

このブログ記事について

このページは、kuwataが2010年1月 7日 07:31に書いたブログ記事です。

ひとつ前のブログ記事は「連載28縫って作るコンピュータLilyPad Arduino 配線方法の検討(3)」です。

次のブログ記事は「連載(57)Arduinoで何でも制御 LANに接続する(3)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.