双方向ハンドセンサーを使って見た!

 


NS(ツイッター、インスタグラム)のフォロワーさん(3D UI lab スリーディーユーアイラボから、双方向ハンドセンサーを頂きました。

距離センサーをいくつも並べ、立体的にモノが検出出来るようにした、センサーモジュールです。

センサーだけだと反応しているのか分からないので、フルカラーLEDも付属しています。

制御方法は、マイコンを使ったSPI通信です。

多機能の為、SPIの4本(SS、MOSI、MISO、SCLK)以外にも、制御する端子があります。

サンプルプログラムは、Arduino、Raspberry Pi、mbedが公開されています。

フォロワーさん(3D UI lab)さんのホームページはこちらです。

販売している、スイッチサイエンスさんのホームページはこちらです。

いた双方向ハンドセンサーには、Arduino Nano Everyが既に付属されていました。

さらに、サンプルプログラムも書き込まれており、すぐに使える状態でした。

下の動画のように、何も反応していない時は、フルカラーLEDが点滅しています。

手を近づけると、手の動きに反応し、フルカラーLEDが点灯します。

結構、反応が良いです。

双方向センサーモジュール表です。
双方向センサーモジュール裏です。
 
配線写真表。
配線写真裏。
 
 
センサーはフォトリフレク、
LEDはフルカラーです。
Arduino Nano Everyです。
商品にはマイコンは付属していません。
ご自身で用意する必要があります。
  
通常は1つだけ点滅しています。
距離センサーが反応すると、距離に応じ色が変化します。
 
ねかせてみました。
3DUI lab さん の名入れ。



個のセンサーの値は、配列の値として出力されるみたいなので、この配列の値を読み取り、5個のLEDを点滅させてみました。

■回路図

回路図は下図の通り、サンプルの配線に、LEDを取り付けただけです。

配線は、 フォロワーさん(3D UI lab スリーディーユーアイラボ)のホームページからマニュアル及びプログラムをダウンロードし、作っています。


↑回路図とブレッドボードに再現した所 
 

■プログラム

サンプルプログラムに手を加えたスケッチは次のとおりです(赤字の部分が手を加えた部分です)。

難しい部分は、付属のライブラリーでやっているので、 簡単です。

それぞれのセンサーの値は、配列 adVal[1] のように記載すれば呼び出せるので、この値を使います。

最大4300なので、細かい制御の値として使えそうです。

#include "CLED.h"
#include <SPI.h>

Sensor sensor(0); // 40:smaller -> high sense
CLED cled(0); // IHSxx
// ************************** setup ********************************
void setup() {
// 9行のコメントを外すとシリアルモニタで距離(max4300)が見られます
#define Monitor
#ifdef Monitor
Serial.begin(57600);
#endif
sensor.init();
cled.set(5); // init blink
delay(2000);

pinMode(14, OUTPUT);
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);

}

// *************************** loop ********************************
int adVal[COL_LEN];
void loop() {
sensor.setAd();
#ifdef Monitor
sensor.getColAd(adVal);
for (int i = 0; i < COL_LEN; i++) {
Serial.print(adVal[i]);
Serial.print(", ");
}
Serial.println("");
#endif

if (adVal[1] > 500) {
digitalWrite(14, HIGH);
delay(10);
digitalWrite(14, LOW);
delay(10);
}

if (adVal[2] > 500) {
digitalWrite(15, HIGH);
delay(10);
digitalWrite(15, LOW);
delay(10);
}

if (adVal[3] > 500) {
digitalWrite(16, HIGH);
delay(10);
digitalWrite(16, LOW);
delay(10);
}

if (adVal[4] > 500) {
digitalWrite(17, HIGH);
delay(10);
digitalWrite(17, LOW);
delay(10);
}

if (adVal[5] > 500) {
digitalWrite(18, HIGH);
delay(10);
digitalWrite(18, LOW);
delay(10);
}

}

■動作確認

写真の通り、個々のセンサーに反応して、それぞれのLEDが点灯します。

今回頂いた双方向ハンドセンサーは、たくさんのセンサーがついているモジュールなので、今回のような単純な使い方でなく、画像処理と組み合わせると面白い使い方が出来そうです。

フォロワーさん(3D UI lab スリーディーユーアイラボのホームページには、ハイレベルの応用例がいっぱい紹介されているので、見ると、とても参考になりますよ!



↑左:待機状態  右:ペンを置いたセンサーだけ点灯

 
(2022年7月12日(火)作成)

 
 

 
Contents are copyright (c) 2009 MASAKATSU BABA All rights reserved.
This site is best viewed with Internet Exploerer 4.0, Netscape Navigator 4.0 or later
ホームページに関するご意見・ご要望はこちらまで .
 


  1. 無料アクセス解析