EAOのパームスイッチとテープLEDを連携するメモです。
今回の機材
今回は以下のようなスイッチを貸していただきました。
今回はこのようなスイッチです。パームスイッチという名称です。
仕組みとしては、パームの名前の通り、手のひらでも押せるような大きなスイッチです。
そして、一回押すとロックが掛かります。引き抜く動作をしなければ、再度押すことが出来ない、重要な動作を1度だけ行うという役割を担当させることに最適です。
早速実装してみます
では、こちらのEAOのパームスイッチとNefryBTでテープLEDを取り付けていきましょう。
今回はサンプル用なので下部のボックスをドライバーで開けていきます。
パカッと空きました。
スイッチ部分は、以前のEAO鍵スイッチをNefry BTと連携して開閉で内蔵LEDを光らせるメモと同じく、コネクタがあります。
下部には、スイッチと連動する上部の赤い出っ張りを受け止める凹みがあります。
今回はこのように一つのコネクタなので、極性は気にせずケーブルを差し込んでいきます。
上部と下部をしっかり凹みで合わせてからネジ止めしていきます。この噛みあわせが悪いと、反応がうまくいかなくなるので、気をつけましょう。
完全に締めてしまうと配線が切れてしまうので、ギリギリのところで止めます。
このあたり、いい感じに配線が引き込めないか伺ったところ、本来であれば、黒いボックスの方の窪みの部分をカナヅチなどで叩くとポッカリ穴が空くようですが、借り物をノリノリで壊すわけには行かないので、今回はこのようにくっつけました。
NefryBTとはこのように、ぞれぞれケーブルを差し込みます。
A0ピンにテープLEDを差し込んで準備します。テープLEDとNefryBT自体の動かし方は以下も参考になります。
これで準備完了です。
NefryBTソースコード
NefryBTに書き込むソースコードです。
#include <Nefry.h> #include <Adafruit_NeoPixel.h> // テープLEDピン int TAPELED_PIN = A0; // EAO スイッチピン D2 int SWITCH_PIN = D2; // 入力の状態記録 int buttonState = LOW; // 光らせるLEDの数 #define NUMPIXELS 60 // 100cmで60個 // NeoPixel設定 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, TAPELED_PIN, NEO_GRB + NEO_KHZ800); void setup() { Serial.begin(115200); pinMode(SWITCH_PIN, INPUT_PULLUP); // テープLEDスタート pixels.begin(); } void loop(){ int currentButtonState = digitalRead(SWITCH_PIN); if( currentButtonState != buttonState){ buttonState = currentButtonState; if (buttonState == LOW){ Serial.println("OFF"); // テープLEDを消す pixels.clear(); pixels.show(); } else { Serial.println("ON"); // テープLEDを赤く光らせる for(int i=0;i<NUMPIXELS;i++){ pixels.setPixelColor(i, pixels.Color(255,0,0)); } pixels.show(); } Nefry.ndelay(500); } }
こちらを書き込んで準備完了です。
動かしてみる
実際に動かしてみます。電源を入れて実際に押してみましょう。
このように一度押し込むとONで押されたままになります、引き上げる操作をしない限り、何度も押し込むことが出来ません。
引き上げる動作はこちらです。
グッと引き上げると、スイッチが戻りOFFになります。
EAOのパームスイッチとNefryBTでテープLEDを連携してみました。
もちろん、Nefry部分をプログラム的に駆使してデジタルだけでも実装することも可能ですが、実装を想像してみると、もう一度押せないことが直感的に伝わらなかったり、実装がうまく行かなく何度も押せてしまうなど心配事は多く、かなり配慮が必要で大変ですよね。
こういったところで、物理的なアプローチで、しっかり動く機構を持ち、非常ボタンのようなセンシティブだったり危険度の高い強度面や間違いにくさも伴う難しい環境でも利用できる、EAOスイッチのような物理的スイッチが活躍する場はたくさんありそうです。