はじめての電子工作超入門

ここWi-Fi飛んでる?目に見えるデバイスをつくってみた(前編)

エンジニアやその分野の学生の皆さんは、年末年始やお盆休みなどに実家に帰ると、ほとんどの方はパソコンやスマホに詳しい神対応サポートスタッフになりますよね。おすすめのパソコン、スマホの契約、年賀状の印刷やプリンターの準備、専門用語の解説…など、面倒だなと思いつつもちょっと楽しみながら家族のお悩みを解決していくのは帰省時の恒例行事と言っても過言ではありません。

そんな帰省中の会話でよくとんでくる質問といえば、「Wi-Fiって何?」は鉄板でしょう。
最近ではWi-Fiはそこら中に当たり前のように飛んでいる空気のような存在になってきましたが、馴染みがない方にとって目に見えないものを信じるというのは難しい話です。ひょっとしたら、お笑い芸人メイプル超合金さんの有名なネタ、「ここWi-Fi飛んでんな」も伝わりづらい方がいらっしゃるかもしれません。

Wi-Fiルーター。WANとLANの端子の間違いなんてありがちですよね。

Wi-Fiルーター。WANとLANの端子の間違いなんてありがちですよね。

そこで、今回はその辺に飛んでいるWi-Fiの電波がどれくらいたくさん飛んでいるのかを肉眼で見て感じることができるデバイスを作っていこうと思います。

完成イメージは大体こんなかんじで最初は考えました。

イメージスケッチ。手書きのスケッチを公開するのってちょっと恥ずかしいですね。

イメージスケッチ。手書きのスケッチを公開するのってちょっと恥ずかしいですね。

とにかく「Wi-Fiのマークをぶんぶん飛ばしたり振ったりすることで、Wi-Fiが飛んでいることを表現したい」という作者の気持ちが読者の皆さんに伝わったらOKです。
制作を進める中でアイデアが多少変わることはありますが、大筋この方針で試作を進めていきます。

この記事では、
・どんなシステムにするかを考えてみる
・M5Stackとは
・Wi-Fiをスキャンする
・モータドライバを動かしてみる

について解説していきます。

どんなシステムにするかを考えてみる

今回作るシステムは「Wi-Fiの電波を検知して、Wi-Fiマークがついたオブジェクトをとばす装置」です。
そのため、必要なシステム構成は以下の図のようになります。

system2

だいぶざっくりとしていますが、簡単にまとめると「Wi-Fi(電波)が入力されたら、Wi-Fiマークをぴょんぴょんさせる」ということですね。
こんなかんじのシステムを組んでいきますので、このあとでM5Stackを使ってWi-Fiを検知したり、モータドライバでアクチュエータを動かしたりしていきます。

M5Stackとは

M5StackはESP32を内蔵しており、USBポート・汎用入出力ポート・カラーディスプレイ・スピーカー・Groveコネクタ・SDカードスロット・Wi-Fi・Bluetoothなどが搭載されている非常に便利な開発モジュールです。
https://www.switch-science.com/catalog/3647/

M5Stack Basic

M5Stack Basic

初めてこれを見た方はちょっと難しそうって思うかもしれませんが、実はArduino IDEを使ってプログラムの開発ができ、M5Stackのライブラリも非常に使いやすく整えられているため簡単に導入することができます。

ライブラリのインストール方法などについては「M5Stack Arduino ライブラリ インストール」と検索するとたくさん情報が出てきますのでそちらをご参照ください。

Wi-Fiをスキャンする

まずはM5Stackで「ここWi-Fi飛んでんな」をするためにWi-Fiのスキャンをやってみます。
ソースコードは以下の通りです。
プログラムの書き込みをしたときにライブラリが見つからないようなエラーコードが出ていたら適宜ライブラリのインストールをしましょう。

これを実行すると、スキャンして見つかったWi-FiのアクセスポイントのSSIDやRSSIがM5Stackのディスプレイに表示されます。
※動画ではSSIDは「********」と伏せ字で表示させています。

モータドライバを動かしてみる

Wi-Fiを物理的に飛ばすためにモータか何かのアクチュエータを動かす必要がありますので、モータドライバをM5Stackにつないで動かしてみます。
今回使用するモータドライバはGroveのI2Cモータドライバです。
https://www.switch-science.com/catalog/827/
M5StackにはGrove対応のコネクタが標準搭載となっておりますので、これを買えばはんだ付けなどをしなくても簡単に接続することができます。

Grove I2Cモータドライバ

Grove I2Cモータドライバ

モータドライバに付属しているケーブルはM5Stackに対応しています。

モータドライバに付属しているケーブルはM5Stackに対応しています。

電源には乾電池を使用します。このモータドライバの電源電圧は6~15Vの範囲で使用することができますので、今回はニッケル水素充電池6本(7.2V)で動かしてみます。
なお、I2CモータドライバのJ4の部分のジャンパーピンは取り外した状態で動かすようにしましょう。
(参考: http://wiki.seeedstudio.com/Grove-I2C_Motor_Driver_V1.3/

全体の配線

全体の配線

モータドライバのところを拡大するとこんなかんじです。

モータドライバのところを拡大するとこんなかんじです。

今回はJ6から電源供給をするため、J4のジャンパーピンは外した状態にします。

今回はJ6から電源供給をするため、J4のジャンパーピンは外した状態にします。

今回使用するモータドライバのライブラリをインストールする必要があるので、Arduino IDEのメニューバーの[スケッチ]→[ライブラリをインクルード]→[ライブラリを管理]をクリックし、ライブラリマネージャで「Grove I2C Motor Driver v1.3」のライブラリをインストールしましょう。
ソースコードは以下のとおりです。

また、同じモータドライバを使ってモータではなく「ソレノイド」も動かしてみます。
ソレノイドは電流を流すことで磁界を発生させて可動鉄心を吸い寄せるアクチュエータです。モータは回転運動をするアクチュエータですが、ソレノイドはモータとは違って直線運動をします。
今回はプッシュソレノイドCB1037(タカハ機工)を使用します。
http://www.takaha.co.jp/SHOP/cb1037.html

プッシュソレノイドCB1037

プッシュソレノイドCB1037

先程のモータを配線した回路から変えるところは、ターミナルJ1に配線されているモータを取り外して、同じ場所にソレノイドを取り付けるだけです。
「モータドライバ」という名前はついていますが、実はモータだけでなくソレノイドも動かすことができます。
プログラムはモータを動かしていたソースコードのままで大丈夫です。

これで下の図のシステムはなんとなくできそうな気がしてきました。
system2

最終的にモータを使うのか、それともソレノイドを使うのか?試行錯誤しながら制作を進めていきたいと思います。次回記事(後編)にて、作品を完成させます!

smartwatch_ebook_banner_580-230
河島 晋

中学生のときからいろんなロボコンに出場しているロボコン大好きエンジニア。RoboMasterへの出場や、Maker Faireへの個人作品の出展が最近のライフワーク。「論文まもるくん」の人。

https://scrapbox.io/susumukawashima/