動作で切り替えるスイッチを販売します。清潔、直感的
現状変更を目標に一人で開発しています。
ユーザーマニュアルがもっと詳しいです。ダウンロードしてご利用下さい。
概要
- 3種類の動作を3ポジションに対応させた非接触ロータリースイッチです。
- 選択した一つのポジション以外は全てオフします。
- キットは半完成品の意味です。半田付けは不要ですが電子回路、ソフトウェアの内容を含む上級者向けです。
- 実験や試作品に使う事を前提にしています。製品に組み込んで販売する場合は別途対応します。
- センサーの詳細については「双方向ハンドセンサー」のユーザーマニュアルをご覧下さい。
- 誤検知しても許容される範囲でお使いください。(経験値が無いためです)
- 双方向ハンドセンサーは動作検出の基礎技術です。2020年に発明、発売し4年間検証しました。
- YouTubeやSNSで同様の技術はありません。
- 性能で完敗するデバイスもありません。
- 3年以上の常温、連続動作試験でも劣化しません。
センサーの組み立て
![](http://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/a1fc34c3e35a5857ec6c1c684c8fb8ab-1024x768.jpg)
- 基板の四隅に基板裏側から4個のスペーサーを挿入します。
- 1ピン位置を合わせ、センサー基板をマイコン基板 のピンソケットに挿入します。
![](http://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/a80be937f6925c95adc2154c078de2ce.png)
注意
- 動作中にエアコンのリモコンが効かなくなる事があります。角度や位置を変えて下さい。
- 起動時、センサーが青く光るまでの間は感度の校正をします。この間はセンサー上空に手や物を近づけないようにしてください。校正が失敗し感度が下がります。
- 感度が下がっている時はリセットボタンを押すと再度校正して適切な感度になります。
- 動作中はマイコンや、センサーの電子部品に触らないで下さい。静電気で故障する恐れがあります。
- 8個のセンサーは非接触が前提です。壊れやすいので必要な時以外は触らないで下さい。
使い方
1.リセット後のポジション設定
USBケーブルを接続しない状態で下図を参考にA6,A7のジャンパーピンでリセット後のポジション設定をします。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/3a6a41b18d89017b666ba9f573fa411a.png)
2.スイッチのテスト
- 5Vソケットに抵抗付きLEDのアノード(+)を繋ぐとスイッチのテストができます。
- LEDのカソード(-)はA0,A1,A2が左、中央、右に対応しており、基板裏側のMOSFETでスイッチします。
- LEDのリードがショートしないように注意して下さい。
- LEDがセット出来たらUSB電源に接続したUSBケーブルをマイコンに接続しスイッチ動作を確認します。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/ab4cb48f9df3d91333e7515e6d83e974.png)
3.外部電源と負荷の配線
マイコンのUSBを抜き、外部電源をオフにして以下のように配線をします。
コイルなどインダクタ負荷を使うときは必ずダイオードなどでサージ対策をして下さい。
- スイッチする負荷を電源のプラス側に接続します。
- 負荷のもう一方の配線を動作に応じA0,A1,A2のピンソケット(又は端子台)に接続します。
- 電源のマイナス側の配線をGNDピンソケット(又は端子台)に接続します。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/5712a111389fd7821abcc4b4696deae9-1024x630.png)
4.システムの起動
- A6,A7で設定したリセット後のポジションで負荷に通電しても問題ないように配線し準備しておきます。
- USB接続の前は、下図Aの部分を持ちマイコンやセンサーに触れないようにして下さい。
- USB電源に接続したマイクロUSBケーブルをマイコンに挿入するとシステムが起動します。
- インジケーターが直線的に光るとシステムが正しく動作しています。
- 動作がおかしいときはすぐにUSBケーブルを抜いて確認します。
- 外部電源をオンすると設定したポジションの負荷が動作します。
- システムをオフする時は外部電源をオフにした後、USBを抜きます。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/d93ac440661b0de0b7166f9d5c282590.png)
5-1.スイッチ左右の動作
両端のセンサーから上向きに線が出ているイメージをして下さい。この2本の線を横切る感じで手を振ります。
5-2.スイッチ中央の動作
センサーの上からまっすぐ手を下ろし、センサーの3~7センチ手前で止める感じです。右や左から斜めに手を下すと左、右に誤検知する事があります。センサーに接触しないようスピードに注意して下さい。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/45250f393e30e4ccdce72b0c4aadf3d6-1024x585.png)
6.スイッチ後の状態
- スイッチ後は手をセンサー付近から移動しセンサー上空に何もないようにしてください。
- スイッチ後も手がセンサー上空にあると待機時間(スイッチの仕様参照)に入れず、次のスイッチができません。
- スイッチ後の待機時間1.5秒、待機時間中はスイッチ動作を受け付けません。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/375f11e2d631086735ad4de0a61a0887.png)
7.不定となる動作
下図のような動きがあるとスイッチは不定となり、どれがオンするか分かりません。こうならないように配慮して下さい。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/500deda97df0dbe698f1e68ec00dada9.png)
基板
- A0~A3は出力です。A3は予備出力でMOSFET(AO3400A)は未実装です。
- A6,A7はリセット後の状態を設定します。
- I2CとA4,A5入力ピンはどちらか一つしか実装できません。
- A4,A5ピンを使う時I2Cは使えません。I2Cを使う時A4,A5ピンは使えません。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/PCB_3D.png)
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/PCB_3DR.png)
配線例
出力はA0(左),A1(中央),A2(右)がMOSFETのドレインに接続されています。外部電源と負荷をここに接続し、電源のマイナス側をグランドに接続します。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/113196b8e488ff6c0c5db5670e650756-1024x585.png)
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/046ee91e584949a0269793306099fa3e-1024x585.png)
プログラム
ダウンロードファイルの保存
ダウンロードファイルはSketchとLibraryに分かれます。Arduinoフォルダ内で下図のように保存します。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-17-55-04.png)
プログラム書き込み
プログラムは書き込み済みなので最初はこの作業無しでお使い頂けます。ソフトバージョンアップ時はこの手順で書き込みできます。
- マイコン基板に配線がされていない事を確認します。
- マイコンへUSBケーブルを接続します。
- ArduinoIDEを起動しIHS11_Nano_Every_MotionSw2.ino を開きます。
- ArduinoIDEでマイコンが検出されていること、プログラムがコンパイルできる事を確認します。
- 下図を参考に選択します。(Linuxの図ですがWindowsでも同様に選択してください)
- ボード:Arduino Nano Every
- エミュレーション:None(ATMEGA4809)
- シリアルポート:マイコン基板を接続しているポート
- 書き込みボタンをクリックしてプログラムを書き込みます。
※同じエラーが何度も出る場合はもう一度書き込みボタンクリックで書き込みできる事があります。
![](https://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/tool2-1024x573.png)
プログラム概要
setup()が初期設定、loop()がループ処理です。ループ内で配列adVal[8]に8個のセンサー値がセットされます。センサー値の変化で上空の状態を推測します。
#include "CLED.h"
#include "MotionSw2.h"
#include <SPI.h>
Sensor sensor(0); // Sensor型オブジェクト定義
CLED cled(true); // CLED型オブジェクト定義、trueはラインインジケータ(Knight2000)
int adVal[COL_LEN];
MotionSw ms = MotionSw(adVal);
// ************************** setup ********************************
void setup() {
sensor.init(); //センサーの校正
cled.set(5); // 初期化時点の点滅
delay(1000);
ms.init();
}
// *************************** loop ********************************
void loop() {
sensor.setAd();
sensor.getColAd(adVal); // この関数実行後、配列adVal[8]にセンサー値が入ります
ms.exec();
}
フローチャート
![](http://interactive-hand-sensor.com/root/wp-content/uploads/2024/07/f0047995f6f92d9b55324f72f7fe765c-1024x748.png)