デザインかっこいい EAO スイッチをRaspberry Pi Node-REDにつなげるメモ

デザインかっこいい EAO スイッチをRaspberry Pi Node-REDにつなげるメモです。

EAO ボタンで話が盛り上がったので試してみることに

今回は、知り合いの成瀬さんが、ざっくり私の活動を知ってくれていて「IoTというかデバイスつなげたことあるんですよね?ちょっと良いスイッチがあるので、お茶がてら話でも!」と声がけがあった形で盛り上がったのが発端です。

良いスイッチってなに?と思いますよね。私も思いました。で、実際会ってみて、触らせてもらったのがこれ。富士エレックス株式会社さんからのサンプルです。

image

展示用なので 3 x 3 で一個一個がスイッチとして単体で機能します。

image

裏側はこんな感じ。いま12Vの電池から配線が通っているのはメインの回路ではなくて、演出ってやつです。

演出。これ、普段の電子工作のボタンだと、タクトスイッチか、良くてゲームセンターのボタン的な大きなやつしかないので、よくわからなかったんですが、見れば一目瞭然でした。

image

右上のボタンを押し込んだら通電して、ボタン自体が光っています。かっこいい。

スイッチ自体が金属製で耐久性ありデザインも良さげ。スイッチも押している感覚もしっかりしていて何度も押したくなる心地よさでした。

ひとしきり、いろいろをこれをネタに話をしまして、今回はテスト用で貸していただきました。

EAOとは

さて、冒頭より出てきているEAO。これ会社の名前です。

日本語のトップページはこちら → Human Machine Interfaces (HMI – HMIC – HMIS – HMIA) from EAO | Welcome to EAO

1947年にスイスで設立されたファミリー企業EAO AGは、高品質のスイッチ、キーボード、洗練された操作システムから完全なHMI操作ユニット及びHMIシステムまで、世界中で市場をリードする製造企業に 成長しました。

とのことで、スイッチ専門のグローバル会社とのことでした。

Human Machine Interfaces (HMI – HMIC – HMIS – HMIA) from EAO | Emergency stop switches

デザイン性高いスイッチがたくさんありますね。

Human Machine Interfaces (HMI – HMIC – HMIS – HMIA) from EAO | Emergency stop switches

スイッチの役割は「押したら確実に伝わること」ですので、過酷な状況でも動くものとして非常停止ボタンのニーズも高いようです。電車とか工場で見かけたことがある気がする。

やばい。押したくなる。

さてつなげてみよう

そんなわけで、今回のスイッチを一つつなげてみましょう。

image

こいつを狙います。

まず、このスイッチの特性を仕様書で見てみます。

EAO_PB_82_Pushbutton_JA.pdf

image

なるほど、設備側の資料なので、電気の性質が(自分には)ちょっとわからん。

image

といいつつも、すくなくとも配線的には照光式スイッチぽいことがわかりました。

image

いまはプラスマイナスのところでスイッチそのものが光る照光部分が機能してるってことですね。

NC / NO がいまいちわからない

NC / NOという印がイマイチわかりません。タクトスイッチか何かで出てきた気もする。

調べてみたら、いろいろ出てきたので基礎知識のようでした。

スイッチ入門 – スイッチとは

その記事の中で上記がわかりやすかった。ありがたやパナソニックさん。

こちらの、c接点にあたり、NC(押したときだけOFF)のパターンとNO(押したときだけON)のパターンを併せ持った仕様のようです。

image

NO(押したときだけON)につなぎました。ソースコードはこんな感じです。

// Declare the pins for the Button and the LED<br>int buttonPin = 12;
int LED = 2;

int buttonPin = 12;

int servoPin = 3;

#include <Servo.h>

Servo myservo;  // create servo object to control a servo

void setup() {
   // Define pin #12 as input and activate the internal pull-up resistor
   pinMode(buttonPin, INPUT_PULLUP);
   // Define pin #13 as output, for the LED
   pinMode(LED, OUTPUT);
   //
   myservo.attach(servoPin);
}

void loop(){
   // Read the value of the input. It can either be 1 or 0
   int buttonValue = digitalRead(buttonPin);
   if (buttonValue == LOW){
      // If button pushed, turn LED on
      digitalWrite(LED,LOW);
      //
      myservo.write(90);
   } else {
      // Otherwise, turn the LED off
      digitalWrite(LED, HIGH);
      //
      myservo.write(0);
   }
}

まず、Arduino・Groveと連携したものはこちら。

なるほど、大体わかりました。

Raspberry Pi Node-REDとEAO スイッチの接続

では、NO(押したときだけON)のまま、Raspberry Pi Node-REDにつなげましょう。

image

GNDは9番のピン、GPIOのほうはGPIO27の13番ピンで連携します。今回は、オス・メスのピン連携をラクにつなげたかったので、ブレッドボードを無骨に挟む形でやってます。

Node-REDの設定

つづいて、Node-REDを設定です。

image

このように、raspi-gpioノードの入力ノードで変化を監視しつつ、デバックノードに結果を表示します。

raspi-gpioノードの設定です。

image

GPIO27の13番ピンのデジタル入力の変化を監視します。

image

このように設定で注意すべきはプルアップをかけておくことです。

ポチポチ押してみます。

どうでしょう?

image

デバックでちゃんとオンオフが検出されています!成功です。

フローJSON

フローJSONも置いておきます。

[
    {
        "id": "bd27c923.4a2678",
        "type": "rpi-gpio in",
        "z": "714acd42.5b9784",
        "name": "",
        "pin": "13",
        "intype": "up",
        "debounce": "25",
        "read": false,
        "x": 433,
        "y": 315,
        "wires": [
            [
                "d281ef02.0df2a"
            ]
        ]
    },
    {
        "id": "d281ef02.0df2a",
        "type": "debug",
        "z": "714acd42.5b9784",
        "name": "",
        "active": true,
        "console": "false",
        "complete": "false",
        "x": 753,
        "y": 334,
        "wires": []
    }
]

余談:プルアップ指定しないとどうなるか

余談ですが、さきほどのプルアップ指定をしないとどうなるか。

image

このように「なし」で指定している場合です。

image

このように、ボタンを押した瞬間、だだだーっとオンオフが予期しない形で検出されるので、オンオフを検出したいとしたら用途に合わないでしょう。設定はご注意下さい!(たぶんチャタリング?)

まとめ

ということで、デザインかっこいい EAO スイッチをRaspberry Pi Node-REDにつなげることができました。

つなげられたことも嬉しいのですが、やや設備寄りのしっかりしたスイッチと見受けられるEAO スイッチの仕様を理解して、Raspberry Pi Node-REDまで持っていけたことが嬉しいです。

このような、しっかりしたスイッチとつなげたことがなかったので、もしも展示や設備での実装の場合に必要になったときに役立つなと感じました。こういったスイッチは、それだけで存在感があるというかユーザーに与える意味が強いので、IoTとの結び付けも楽しそうです。

それでは、よきスイッチ Lifeを!