grbl1.1+Arduino CNCシールドV3.5+bCNCを使用中。
BluetoothモジュールおよびbCNCのPendant機能でスマホからもワイヤレス操作可能。
その他、電子工作・プログラミング、機械学習などもやっています。
MacとUbuntuを使用。

CNCマシン全般について:
国内レーザー加工機と中国製レーザー加工機の比較
中国製レーザーダイオードについて
CNCミリングマシンとCNCルーターマシンいろいろ
その他:
利用例や付加機能など:
CNCルーター関係:



*CNCマシンの制作記録は2016/04/10〜の投稿に書いてあります。


2017年2月5日日曜日

Android GRBL Controller(スマホアプリ)

Android用スマホアプリのGRBL Controllerを見つけたので試してみました。
Instructablesに使い方が載っています(これを見るとこのアプリはGrbl0.9用?)。

まだBETA版のようです。スマホなので当然ワイヤレスですが、WifiではなくBluetooth通信のようです。以前CNCマシンにはBluetoothモジュールをつけておいたので、それを使って通信できそうです。
今はどちらかというとWifiモジュール(EPS8266など)が人気だと思います。数年前にワイヤレスUSBというのも一瞬でて、いつの間にか消えてしまいましたが、Bluetoothはまだいろんな機器に使われているので大丈夫そうです。
AliExpress.com Product - Free shipping! JY-MCU anti-reverse Bluetooth serial pass-through module, wireless serial, HC-05, master-slave 6pin for arduinoAliExpressだとBluetoothモジュールは341円(送料無料)で売ってますね。昔買った時の1/10以下の値段です。IoTによく使われているWifiのESP8266も300〜500円くらいです。いろんなテクノロジーがかなり安くなってきました。

接続開始:
まず、CNCマシンのBluetoothモジュールとスマホをペアリング。特にパスワードは設定してないのですが、パスワード(パスキー)要求画面が出てきて、設定していない場合は0000か1234を入れろと。0000はダメだったので1234を入れたらペアリング成功。

この画面をタップすると、スマホとペアリングしてあるBluetooth機器のリストが出てきて、その中から選択。この画面はもうすでに接続された状態です。

操作開始:

早速ジョグボタンを押してみると、UnlockもしくはMachine startを押せと出てきます。

Machine startを押すとロック解除、さらにこのように赤いEmergency Stopボタンになります。
そこでジョグボタンを押すと、あっさり動きました。おお、これはすごい。パソコンなしで、CNCマシンを動かしているということです。
下の方には、ホーミングなどのボタンもあります。
さらに上部にある他のタブを見ていくと、

ここは、Gコードファイルを読み込ませるところのようです。CloudにGコードファイルを上げて
おけば、すぐにここから作業ができそうです。ファイルの読み込ませ方はここに書いてありました。スマホのSD Cardにファイルを入れておかなければならないようです。しかもサブフォルダなどに入れず、ルートディレクトリ(トップの階層)に置かないといけないようです。
Single Blockボタンは、Gコードを1行ずつ実行するようです。Cycle Startは一気に最後までGコードを実行するようです。簡単なサンプルで試して見ると、Single Blockで1行ずつ実行させれば最後までいけましたが、Cycle Startだと途中で止まってしまいました。読み込みバッファあたりに問題があるのでしょうか?メモリー不足?

ここでは、Gコードを手入力できます。ためにし$$を入力するとGrblの設定が出てきました。しかし下の方にスクロールできない。

ここはGコードの中身を確認できるところのようですが、まだ使えないようです。

そして最後はマシン設定用画面です。先ほどのGコード入力画面でもできますが、ここで各項目に対応したパラメータを入力できるようになっています。

ということで、いまどきは何でもスマホという感じです。
bCNCのPendant機能やLaserweb3でもスマホから操作はできますが、パソコンがホストになる必要があるので、スマホはあくまでサブという位置付けです。しかし、このスマホアプリは、本当にスマホだけで操作できるというところがすごい。
画面が小さいので操作性は良くないかもしれないけれど、CNCも今やスマホゲームのような感覚で操作するということでしょうか。

6軸用アプリも:
さらには、6軸用のアプリもあります。新しいバージョンでしょうか?


しかしGRBLは3軸までしか対応していないけれど、本当に6軸も操作できるのでしょうか?

一応、操作画面には下の方にA Axis、B Axis、C Axisまであります。とりあえずソフト的には、6軸まで作っておいたということでしょうか。
まだこちらもBETA版なので、今後の進化に期待したいところです。

追記:
どうやらこの6軸アプリは、ArduinoMega2560用(6軸GRBLファームウェア搭載)に対応しているようです。
6軸ファームウェアをXloader(Win)、HexUploader(Mac)、Easy Flash Script(Linux)を使ってArduinoMega2560にアップロードすれば6軸CNCとして使えるようです(こちらに書いてあります)。
そもそもGrblControllerを開発していたZapmaker.orgがArduinoMega2560用に4軸用Grbl0.8〜も開発していたようです。Zapmakerの4軸用ファームウェア(Mega2560用)は、2014年を最後にGrbl-0.845までアップデートされています。おそらく、3軸では物足りない人たちのために、この6軸用ファームウェアが引き継いだ感じになったのかもしれません。

AliExpress.com Product - Free Shipping hc-06 HC 06 RF Wireless Bluetooth Transceiver Slave Module RS232 / TTL to UART converter and adapterもう少し安いBluetoothモジュールありました。327円(送料こみ)。
Bluetoothの親機と子機について:よくみるとこれはSlave(子機専用)かもしれません。多分、スマホが親機になればいいので大丈夫だとは思いますが、このページ上の方にあるBluetoothモジュール(341円)はMaster-Slaveと書いてあるので、親機・子機兼用なのかもしれません。調べて見ると、HC-05というのが親機にもなるタイプ、HC-06は子機専用らしいです。親子なら通信可能だけれども、おそらく子機同士は通信できないのかもしれません。スマホはBluetoothイヤホンなど接続できることから親機だと思うので、子機(HC-06)と通信はできるはずです。ただし、どちらも技適は通ってないので、原則的に国内での使用は認められていないということです(個人的に狭い範囲で使うなら大丈夫でしょう、まあよくある自己責任でということです)。 Amazonでも似たようなBluetoothモジュールが売ってます。これも中国からの配送だとは思いますが。
BluetoothモジュールとCNCシールドとの接続方法:
これは以前CNCシールドにBluetoothを接続実験した時の画像です。基本的に4本線で、CNCシールドTX端子---BluetoothRX端子(送信/受信)CNCシールドRX端子---BluetoothTX端子(受信/送信)CNCシールド5V端子---BluetoothVcc端子(電源:5V)CNCシールドGND端子---BluetoothGND端子(電源:GND)という感じでつなぎます。注意するところは、送信と受信という組み合わせになるようにTXとRXをクロス接続するところです。あとは、BluetoothモジュールがCNCシールドからの5V電源で大丈夫かどうか(3.3Vだったりしないか)。Grbl1.1のBaudrateが115200なので、それも合わせておいた方がいいのかもしれません。このアプリは実際のところGrbl0.9用で、InstructablesにはBaudrateを9600に変えろと書いてありますが、デフォルトのBluetoothモジュールを使う場合ということでした(BluetoothのBaudrateを115200に変えるにはATコマンドを使って設定し直します)。
接続するには、Gコード送信ソフトでBluetoothモジュールのシリアルポートを選ぶだけです。通信自体はUSBケーブル接続の時と同様にシリアル通信なので同じように通信するだけです。ただし、BluetoothのTXとRX端子は、Arduino UnoのD0とD1端子と接続することになるので、Arduino UnoとパソコンをUSB接続してシリアル通信するときに干渉してしまいます(同じピンを使っているため)。Arduino UnoとパソコンがUSBケーブルを通して通信しあうときは、BluetoothのTXとRX端子を抜くか電源を抜いた方がいいと思います。また、通常Arduino UnoはUSBケーブルでパソコンから電源供給されているので、パソコンと切り離すと別途外部電源(DC7〜12V/1A程度のACアダプターなど)が必要となります。

2017年2月2日木曜日

Xbox360ワイヤレスコントローラーでジョグ操作(Mac版)

ゲーム用ジョイスティックで、CNCマシンのジョグ操作をするというのをネットでたまに見かけます。確かにパソコン以外にもジョグ操作できる装置があると便利です。
現状ではbCNCのPendant機能でWifiを介してスマホから遠隔操作可能ですが、たまたま昔購入したXbox360ワイヤレスコントローラー(Xbox本体は持っていない)があるのを思い出して、試しにできるかどうかやってみました。
ワイヤレスなのでCNCマシンのペンダントとしては便利そう。右側のドングルをMacBookにUSB接続して使います。MacだとMicroSoftのXboxとは相性悪そうですが、ネットで調べるとMac用のドライバもいくつかありました。Windowsならかなりあるはず。


いまだにAmazonでも売っているんですね。XboxOneというのは新しいタイプでしょうか。意外に高い。

ちなみにAliExpressでCNC用リモートペンダントを探すと以下のような感じ。
AliExpress.com Product - Free shipping Hot sell cnc part Manual Pulse Generator Ncstudio CNC Wireless Handwheel CNC RF Electronic Remote Pendant8226円(送料込み)、これは比較的安い方。大体は1万円以上。Macで使えるかは不明(たぶん無理)。Mach3用が多い。

Mac版ジョイスティック用ドライバ+キーマッピングソフト:
Xbox360コントローラーを認識させるドライバはあるのですが、キーマッピングでXbox360コントローラーをマウスやキーボードとして使ったり、さらには複合的なキー入力の使い方ができるものとなると少ない。それと、結構古いコントローラーでもあるので、ドライバも古かったりして現在のOSバージョンに対応していないなど。

360Controller
ここは現在でも更新してありGitにソースが置いてあることからも良さそう。

しかし、目的としていた複雑なキーマッピングまではできないみたい。オープンソースなので、ファイルを開いてコードを改造すればいいのかもしれないけど、もう少し探してみることに。
普通にゲームするには問題ないと思う。

Joystick Mapper
これは有料(600円)、説明など見る限りいろいろできそう。
プレステのコントローラでもいいかもしれないけど持っていない。

bCNCのPendant機能でスマホから遠隔操作できるので、必ずしも今回Xbox360コントローラで操作する必要もないということで、有料ソフトは保留。
しかし、無料ソフトだとやはり単純なものしかない。

次に見つけたのはこのソフト「ControllerMate」。無料ソフトだとらちがあかないので試しに、この有料ソフト($24.95)をダウンロードしてみました。おそらくトライアルか無料利用だと何かしらの制限があるはず。
説明を見る限りは、かなり複雑な設定ができるみたい。しかもアップデートも最近までされています。
こんな感じで、単純なモジュールを線でつないで複雑化していくタイプ。期待できそう。
ということでインストールして試してみました。

ControllerMateの使い方:
まず、Xbox360コントローラーには2個のアナログスティックと十字キー、そしてたくさんのボタンがあります。今回はせいぜい、
・アナログスティックでXY軸の移動(G91X10、G91Y10など)
・ボタンでロック解除($X)
というくらいでしょうか(以下)。

当然ホーミング($H)や加工原点復帰(G92X0Y0Z0)なども設定していいのですが、まだ本気で使うつもりもないので、とりあえず動けばいいという程度で。というのも、今まで通りbCNCのPendant機能で十分間に合うので。

この手の入力の場合、ボタンを押すと「$X(リターン)」という設定ができないといけない。通常のゲームパッド用ソフトだと、「Start」ボタン=「s」キー(キーボード上の)という1対1対応になっていて、連続した任意の文字列を入力設定できないものが多い。しかし、このControllerMateは、文字列も入力できるらしい。こんなのを探していました。無料でも一応使えるようです。対応機種コントローラーはここに書いてあります。Xbox以外にもたくさんあります。

設定方法:
まずプロジェクトの開始は、右側にあるProgramming Itemsの歯車マークのプルダウンメニューで、Create Programming Pageを選択。

そうすると、以下のようにNew Page1が出来上がり、グリッドの作業エリアが出てきます。

次に、接続してあるコントローラーのジョイスティックを動かすと、右側にあるモジュールが光って、対応するジョイスティックやボタンがどれなのかわかります。一つのジョイスティックはX軸とY軸の二つのモジュールに分かれてあります。それぞれをドラッグして作業エリア上にのせます。

最終的には、X軸だけをみると以下のようになります。それほど複雑ではありません。というかやっていること自体が単純なので。左に倒すと「G91X-10(リターン)」、右に倒すと「G91X10(リターン)」という内容です。
これらのモジュールは作業エリア上で右クリックをするとタブが出てくるので、その中から選んで配置していきます。以下から、それぞれのモジュールの説明です。

「Controller X-Axis」:
まず、これがコントローラのボタンやジョイスティックのどの部分かというモジュール。これに機能のモジュールを色々ぶら下げて行く感じ。コントローラーを接続しないと右側のリストに出てこないかもしれません。

「Range(ジョイスティック範囲設定)」:
これは、ジョイスティックをどのくらい倒すと(条件)どうしたいか(結果:出力)という入力範囲の設定(条件設定)。右クリックで以下のタブから選ぶと作業エリアに出てきます。

作業エリア上の「Range」モジュールを選択して画面右にあるInspector画面で内容を設定します。
これは、ジョイスティックX軸:左側に倒した時の設定です(縦:Y軸方向に動かす設定はまた別のモジュールでする必要があります)。左に倒したら、CNCマシンのヘッドも左に動くという前提とします。倒した量によってスピードが変わるようにしてもいいのですが、このジョイスティックではあまり細かく操作できないので、倒したら「G91X-10」で左に10mm移動するコマンドを一回投げるという設定にしようと思います。20mm動かしたいときは2回倒すということです。
青い水平バーで反応する範囲を調整します。中央付近は無反応にして、左側-32768〜-10000の時だけ反応する設定にしておきます。このジョイスティックはぴったり中央で止まることがないので、かなりゆとりを持って中央の無反応範囲をとっておきました。
同じように、今度は右側に倒した時の設定も必要になります。そのため「Range」モジュールが二つあります。
もちろん倒した量によって1mm、もう少し倒すと5mm、めいっぱい倒すと10mmという感じで細かく範囲を設定してもいいとは思います。そうすると、「Range」モジュールだけでも3つ、両側も含めて合計6個を「Controller X-Axis」モジュールにつなげることになります。ただ、無料だとモジュール数の制限があって、そこまで複雑化するには有料にしないとダメかもしれません。

「T(テキスト出力)」設定:(追記:改良策「Keystrokes」を使う方法はページ最後の方にあります)
次に、「Range」モジュールの反応範囲の時に出すコマンドを「T(テキスト出力)」モジュールで設定します。つまり、ジョイスティックを左に倒したら「G91X-10」という文字列を書き出すプログラムになるということです。
「T(テキスト出力)」モジュールは右クリックでこの場所↑にあります。また「T」モジュールを選択して、Inspector画面で設定します。
こんな感じで、空白欄に「G91X-10」と入れておきます。ONタブは、これがONになったら「G91X-10」が出力されるということです。OFFの設定は特にないのでスキップ。

Speedタブの方では、as fast as possibleにして、出力速めにしておきます。
このテキスト出力設定では、最後のリターンキーの入力ができないので、それは次の設定で。ラインフィードやキャリッジリターン記号を入れればいいのかもしれませんが、そのまま書き出しそうなので、以下の設定でやることにします。

「Single Key」設定:
「G91X-10」のあと「リターン」を押してGコード入力終了となるで、このリターンキーも忘れずに設定しておきます。
「Single Key」はこの場所にあります。
そしてまたInspector画面で設定します。
BehaviorはOne Shotで一回だけの出力にしておきます。Press and Holdにしてしまうと、リターンキーを連続出力してしまいます。
Open Keystrokes Paletteを押すと、小さいキーボード画面が出てきて、この中からリターンキーを選んで作業エリアにドラッグします。
これでモジュールは全部揃ったので、あとはモジュールの端子のような部分をドラッグして相手のモジュールにくっつけるだけです。同様にY軸方向も設定もします。

それと、最終的には画面左上にあるMaster Enable: ON、Helper: Runningにしないと機能しないかもしれません。クリックすれば、赤→緑に変わります。

出来上がり:
最終的には、ボタンでロック解除($X)もつけて、以下のようになりました。

無料利用の場合の制限:
無料利用の場合は以下のような制限があります。出力系のモジュール(building block)は10個までらしい。そのほかは無制限。今回の場合は、テキスト出力とリターンキー出力だけで10個あるので、これが限界っぽい。

それと無料の場合は、このソフトがバックグラウンドで動いている場合(他のソフトを使っている場合)20分で切れてしまうようです。フォアグラウンドにしていれば無制限。

Grbl1.1なら$J=コマンドでジョグ操作:
今回はGコードを使って「G91X-10(リターン)」:相対座標でX軸を-10mm移動させましたが、Grbl1.1からは、ジョグ操作は$J=コマンドでやった方がいいかもしれません。$J=コマンドはGコードとは別に制御されるので、実際のペンダントを使ってのジョグ操作に適しています。
$J=X10F800
という感じです。
単に、
$JX10
を入力すると(最後にフィードをつけないと)、error:22が出ました。error:22はフィード未設定のエラーのようです。
また、$J=X10F800と入力しても、事前に設定してあるG90(絶対座標)かG91(相対座標)によって、
G90ならX座標10mmのところへ移動(WPosのX:10mmの位置)
G91なら現在地から10mmX軸方向へ移動(+10mm右へ動かす)
となるようです。

まとめ:
実際にbCNC上で試してみました。bCNCのコマンド入力欄を一度クリックしておいて(フォーカスを与えておいて)、あとはXbox360ワイヤレスコントローラーのジョイスティックでジョグ操作。特に問題なし。順調でした。
ただ、bCNCのPendant機能があるので、わざわざXbox360ワイヤレスコントローラーを使ってまでしてジョグ操作しなくてもいいという感じです。Laserweb3の場合もスマホからホストのIPアドレスにアクセスすれば遠隔操作可能なので、bCNCとLaserweb3以外で作業する時、ペンダントがないのであれば、余っているゲームパッドを利用することはありえるのかもしれません。
とりあえず、できるということが分かったので、もし今後使うようなことがあればという感じでしょうか。

追記:「Keystrokes」を使って改良
その後、コマンド入力(特にリターンキー入力)のところを改行コード(キャリッジリターンやラインフィード)を使ってやってみましたが、そのまま改行記号を出力してしまうのでダメでした。
そして、「T」や「Single Key」の代わりに「Keystrokes」という複数のキー入力を可能にするモジュールで試してみると、それなら大丈夫でした。
この画像にあるように、前回は左側の「Range」「T」「Single Key(改行)」でしたが、改良した右側は「Range」「Keystrokes」だけで済みます。Output系のモジュールは無料利用の場合10個までしか使えないので、一つ減らすことができたという感じです。
「Keystroke」の場合、Inspector画面で以下のように設定します。
Open Keystrokes Paletteボタンでミニキーボードを表示します。そしてWhen turned ON:の欄にキーを出力したい順番で入れていきます。今回出力したい内容は「G91X10(リターン)」ですが小文字「g91x10(リターン)」でも問題ありません。
キーボードからドラッグすると、黒と白の2個のキーが出てきます。黒がキーを押す、白がキーを離すという意味です。通常なら、g(押す)、g(離す)でgの文字一つを入力したことになります。その要領で、「g91x10(リターン)」をキー入力すると、
こんな感じで長くなりますが、この「Keystrokes」を使うことで一応最後のリターンまで押すことができます。Open Keystrokes Paletteボタンのミニキーボードを使う代わりに、Captureボタンを押せば、実際のパソコンのキーボードで入力した結果が画面に出てきます。
シフトキーを押しながらキー入力するような「$」は、「shift(押す)」「4(押す)」「4(離す)」、「shift(離す)」という順番になりますが(以下)、Captureボタンでやったほうが間違わないかもしれません。

ということで「Keystorkes」を使えば、連続した文字列(リターンキーなども含め)が出力できるのでOutput系のモジュールを節約できるという感じです。前回の方法だと10個使ってしまいましたが、今回は5個で済みました。残り5個あるので、他の機能を追加することができそうです。
しかしながら、bCNCのPendant機能の方が便利なので、おそらくXbox360コントローラを使ってのジョグ操作は使用しないと思います。ちょっと残念。まあ、きっと何かに応用できるでしょう。

2017年1月30日月曜日

IoTデバイスについて

以前CNCマシンで以下のようなことをしましたが、
Bluetoothで無線化
bCNCのPendant機能でスマホから遠隔操作
Laserweb3でWifi経由でスマホから遠隔操作(ページ最後)
と似た内容として、いわゆるIoT(Internet of Things)が最近気になっています。

少し前から、IoTのデバイスを見かけるようになったけれども、せいぜい従来の赤外線リモコンがスマホ1台で操作可能になって、別の部屋のエアコンや照明のつけ忘れをON/OFFするくらいかなと、オフィスビルなどなら、いろんなものを自動化したり、遠隔操作や遠隔管理可能にした方が便利だけれども、実際の生活ではあまり必要ないだろうと考えていました。

仕組みとしては、それぞれの電化製品がWifiに接続して、固有のIPアドレスにスマホからアクセスすれば、スイッチのON/OFF、温度や湿度などの状況、カメラで監視、また状況の変化や設定した入力に連動してSNSにメッセージを送信など。カメラ監視やSNSへメッセージ送信などはプライバシーが筒抜けになりすぎてあまり好ましくないかもしれないけれど、普通に照明器具や電化製品のON/OFFくらいならあってもいいかもしれない。

ということで、いつものAliExpressでIoTデバイスになりそうなものを探してみました。一応国内のAmazonとも比較しながら。

AliExpress.com Product - Broadlink Home Automation System A1 e-Air Smart Air Quality Detector+ RM2 Pro,smart home Remote Control本体だけで4358円(送料込み)
黒いUFOのような本体(昔のAirMacみたいな)が学習型赤外線リモコンを内蔵しており、Wifiを通してスマホから複数の電化製品のON/OFFや出力調整(TVの音量やエアコンの温度など)できるらしい。温度センサーも内蔵しているみたい。いわゆるこれ1台を部屋に置いておけば、日常的な電化製品を操作管理できる感じ。

 
Amazonだと、やはり2倍くらいの値段。レビューがあるので、使い勝手の参考にはなります。

しかし、見た目がカッコ悪いのと値段もやや高い(安いのかもしれないけど)。
もう少し探してみると(というかどこまで安くなるのかという感じで探してみると)、

AliExpress.com Product - 2016 Broadlink RM Mini3 Black Bean Smart Home Universal Intelligent WiFi/IR/4G Wireless Remote Controller By Smart Phone先ほどの一つランク下の製品:1495円(送料込み)これも学習型赤外線リモコン内蔵で同じようなことができるけれども、温度センサーなどはないみたい。しかし、急にここまで安くなって値段的にはお手頃かもしれない。

Amazonでは、4000円以上もする。高い。7000円くらいで売っているところもあり、もしかして人気なのかも。画像を見るとかなり小さい。
複数の部屋に置くなら(赤外線リモコンがそれぞれの電化製品に届くように)、先ほどの大きいタイプ1個買うより、こっちを2個買った方がいいのかもしれない。
しかし、Amazonでは高すぎる。


AliExpress.com Product - Xiaomi Mi Universal Smart Remote Controller Home Appliances WIFI+IR+RF Switch 360 Degree Smart for Air Conditioner TV DVD Player2127円(送料込み)
これはXiaomi製で、値段もそんなに高くないということから機能的にはBroadlink Mini3と似たような感じ。これ自体には温度センサーはついていないみたい(次に挙げる機種と連携で可能らしい)。
Xiaomiといえば、おしゃれで今っぽいスマホや電化製品を次々と出している中国のメーカーなので、なんとなくイメージとしてはいいのかも。
ちなみにこれはAmazonでは売っていない。

AliExpress.com Product - Xiaomi MI Smart Home Suite Multifunction Security Gateway Human Body Temperature and Humidity Sensor Smart home wireless switch 7217円(送料込み)大きな丸いのが本体で間接照明のように周囲が光るみたい(この本体だけ別売りで3333円程度)。そして温度センサー、人体感知センサー、ワイヤレス電源スイッチが含まれており、連携して使うことができるらしい。先ほどの黒い製品もこれと連携できるような。普通に買うなら、このXiaomiの製品が便利そう。個別にセンサーも購入可能なので。
ただ、ここまで高機能でなくてもいいという感じで探して見ると、 AliExpress.com Product - 2016 New Sonoff Wifi Switch Remote Control Smart Home Automation/ Intelligent WiFi Center for APP Smart Home Controls 10A/2200W734円(送料込み)。これは単純なWifi電源スイッチ。つまり電化製品とコンセントの間に挟んでスマホなどからON/OFFするというもの。赤外線リモコンはついていないので、エアコンなどをリモコン操作することはできない。照明器具のON/OFFに使うならこれでいいかと。値段はその分お手頃。これなら試しに買ってみてもいいかもしれない。本体左側にコンセント、右側に電化製品という感じで、ソケットとプラグをつないでおけば、他の電化製品に付け替えもできる。10Aまで大丈夫らしい。

Amazonでも売っているけど、やはり2倍以上の値段。



こんなのも売っている。これはすぐに使えて便利かもしれない。しかしプラグのピンは3本でアースつき。普通の家庭用コンセントに差すなら3Pプラグを2Pプラグに変換するアダプターも必要。


Raspberry Piで作ればいいのでは?:ここまで見てくると、ArduinoやRaspberry Piで自作できないかと考えてしまう。当然Wifiモジュールがあれば作ることはできるのだけれども、部品を集めると意外にお金がかかる。Raspberry Pi3なら、WifiもBluetoothも内蔵されているので、あとは赤外線LEDやリレーなどつければすぐに同じようなものが出来上がる。ネットにもたくさん参考例が出ている。しかし、Raspberry Pi3だけでも4000〜5000円くらいするので、それなら製品を買った方が早いかもしれない。もちろん、作ることを趣味として楽しむというのであれば、また話は別となるけれども。
AliExpress.com Product - 2016 New Original Raspberry Pi 3 Model B Board 1GB LPDDR2 BCM2837 Quad-Core Ras PI3 B,Ras PI 3B,Ras PI 3 B with WiFi&Bluetooth4243円(送料込み)

Arduino+ESP-WROOM-02で作る?:Arduinoなら、中国製クローンが数百円なのでそれほどコストはかからないはず。Arduinoの場合ならWifiモジュールも必要。そうなると、ESP-WROOM-02あたりが安くて便利そう。ESP-WROOM-02を使ったサンプルもネットではたくさん見かける。
AliExpress.com Product - ESP8266 serial WIFI module ESP-WROOM-02 AI Home 32Mbit FCC CE TELEC + Adapter plate420円(送料込み)Wifiモジュールがこんなに安く手に入るようになったのはすごいけど、これでもArduinoクローンとその他部品を合わせて予算的には1000円程度で作れるという感じでしょうか?

ESP-WROOM-02開発ボード(Arduinoボード不要):しかしよく調べて見たら、WifiチップであるESP8266にArduinoのプログラムが書き込めるらしく、ESP-WROOM-02開発ボード(MiniUSB端子ならびにUSBシリアル変換チップ付き)を買えば、これだけですぐにできるみたい。しかも安い。確かにこんなに安いのならあらゆる電化製品につけてもいいのかもしれない(AirMacExpress1台なら50台までつなげられるはず)。 AliExpress.com Product - V3 Wireless module NodeMcu 4M bytes Lua WIFI Internet of Things development board based ESP8266 for arduino Compatible343円(送料込み)、Arduinoコンパーチブル。つまり、以下のAmazon(スイッチサイエンス)で売っているものと同じらしい。値段を比較するとかなり安い。

日本だと、このくらいの値段になってしまうようです。ちゃんと技適マークもついています。
さらに探すと、同じもの(クローン?)がAliExpressでも売っています(以下:技適マークはついているけどこれが現物とは限らない)。

先ほどの343円のものよりは少し高いですが、それでもオリジナルよりはるかに安い。
これも、この基板上のESP8266にArduinoのプログラムを書き込んで、あとはスイッチやセンサーなどとつなげればいいだけ。それにしてもESP8266にプログラムを書き込めるのは知らなかった。単なるWifiモジュールだけなのかと思っていました。

ESP-WROOM-02開発ボードで何ができるか?:
個人的には、Bluetooth、Xbee、Arduino Wifiシールドなどは使ったことがあるのですが、ESP8266(ESP-WROOM-02)に関してはまだ使ったことがありません。
とりあえずできそうなこと(実際に使う前提で)、
・赤外線LEDでWifi学習型赤外線リモコン
・カメラモジュールをつけてWifi監視カメラ
・リレーやフォトカプラでWifi電源スイッチ
・温度や明るさセンサをつける
・何かと連動してメッセージなど送信
という感じでしょうか。

具体的には、
・エアコンのリモコン代行
・室温測定
・照明のON/OFF
・ペットの監視
くらいでしょうか。
これらが、1000円程度で可能であるなら、試してみてもいいかもしれません。

COSカメラOV7670:
特に、監視カメラについては、
AliExpress.com Product - New OV7670 VGA Camera Module Lens CMOS 640X480 SCCB w I2C Interface Auto Exposure Control Display Active 386円(送料込み)、このOV7670というCMOSカメラ(640x480px)が安く手に入ります。国内でパーツとしてのカメラを買うと3000円前後と結構高い。中古Webカメラを分解すればいいのだけれど(確か5〜6個持っている)、信号など色々解析するのが面倒。
このOV7670カメラを使ったサンプルを探して見ると、ArduCamというのがあって、ESP-8266用にGitにソースが出ています(これをArduino IDEのボードマネージャーからインストールすると、プログラムを書き込む際にESP-8266がボード選択可能になるみたい)。ということから、ESP-WROOM-02開発ボード+OV7670でWifiカメラがすぐに作ることができそうです。どちらも小型なのでかなりコンパクトなものが出来上がりそう。このカメラの問題は、FIFOという取り込んだ画像データを一旦貯めておくメモリがついているものとついていないものがあるようで、AuduCamのGitには、OV7670FIFOのソースもあることから多分なんとかなりそう。あとは、カメラ機能だけでなく、その他のセンサー、赤外線リモコン、フォトカプラなどもつけることができるかどうか?端子が足りるかどうか、メモリがいっぱいにならないかどうか?というあたりでしょうか。しかし、スペックを調べて見ると、
この↑最新型WEMOS D1mini Pro778円:送料込み)は16MBもフラッシュメモリがあるみたい。ProではないWEMOS D1miniでも4MB(314円:送料込み)、Arduino Unoは32KBしかない。ということは、Wifi、小型、パワフルそして安価ならこれを使った方がいい。
Proは少々高いけれども、4MBの方であればかなり安いので、一つにまとめて多機能にするよりも、モジュール化して、それぞれ別々に動いていてもいいかも。
それぞれ複数のIPアドレスに分かれてしまうけど、ブラウザ上ではiframeを使って一つのページに複数のURL画面をまとめて表示することは可能なので大丈夫なはず。ただ、個数が増えると電源の数も増えてしまうのが面倒かもしれない。
レーザー加工中の監視カメラ:なぜ監視カメラが気になるかというと、レーザー加工の際にカメラ越しに位置決めや加工中の様子を見ることができると便利(というか安全)と思ったからです。普段利用しているbCNCでもOpencvを使ったProbe Camera Alignmentという機能があって、OpencvをPythonにインストールするところまではしてあるのですが、まだ手付かず。今なら、スマホのカメラをPCへミラーリングすることは、AirPlayAirMoreなどでも可能なので、そんな感じで使ってもいいのですが、スマホとは別に小型のWifiカメラがあると色々便利そうです。ということから、CNCマシンには関係が薄いことですが(基板制作などできるかもしれませんが)、ESP-WROOM-02開発ボードあたりを中心にちょっとやってみようかなと思っているところです。
その他ESP8266利用のサイト:Arduinoとスマホが連携してからはあまり電子工作はしていなかったのだけれども、調べて見るとスマホ系Arduinoも進化していて、Blynkというサイトはかなり充実していました。


スマホ用アプリで操作画面を作ることが簡単にできるようです。さらには、ESP8266(あるいはArduino Unoなど)に書き込むソフトもスマホと連携してブラウザベースで行えるようです(以下)。

これがあれば、すぐにESP8266を使ったIoTデバイスを開発できそうです。スマホ+Wifiという環境、しかも以前よりも安価で簡単にどこででも作業できるというのがすごい。
もう少し調べて見ると、WEMOSというところから出ている以下のようなシリーズ。 AliExpress.com Product - free shipping d1 mini reley module + d1 w2812 rgb module +d1 ds18b20 module + d1 dht11 + di mini wifi module1495円(送料込み)ESP8266(Mini NodeMcu/Wemos)モジュール他、気圧(気温)、RGB-LED、MicroSDカード、温度、湿度(温度)、リレースイッチのモジュールセット。温度系が多いけど、遊ぶにはちょうどよさそう。モジュール単体でも200円前後で売っているので、必要なものだけ買ったほうがいいかも。簡単なIoTデバイスなら、500円くらいですぐに作れるという感じですね。
AliExpress.com Product - OLED Display SSD1306 64x48 0.66" Shield Wemos D1 Mini ESP8266 NodeMcuちなみこれは64x48pxのOLEDディスプレイ、568円(送料込み)ディスプレイだけあって他のモジュールよりは高いけど、それでもこんな値段。
画面は小さいけどそれなりに文字も見えますね。つい買ってしまいそう(遊び用)。

さらに、以下のような超小型リニアアクチュエータ(ステッピングモーター)を組み合わせれば、カメラの首振り機能など作れそうです。 AliExpress.com Product - Micro slide up motor vane screw 2 phase 4 wire stepper motor121円(送料込み)
いろいろできそうですが、IoTの使い方を検索すると、冷蔵庫で賞味期限切れの食品を教えてくれるとか、Amazon Dashのように足りなくなった洗剤を注文してくれるとかあるけど、家ではそこまでは必要ない感じ。オフィスなどで定期的に消耗品を購入しなければいけない時は便利かもしれません。

リマインダー機能で言えば、SiriやAmazon Echoのような音声認識でのやり取りの方が面白そう。カップラーメンの3分間であっても、従来は時計やキッチンタイマーを使っていたけど、最近はSiriを通してリマインダー登録してます。牛乳を買った時も賞味期限を登録しておけば教えてくれるので、短期長期関わらずスケジュール上に登録しておけばいいという感じです。

人気の投稿