Arduinoで作る携帯サイト自動巡回マシン

僕の昔の(珍妙な?)電子工作の話。僕は電子工作はちょっと本を読んだくらいできちんと学んだことは一度もないけど、なにか気の利いた工作をしてみたいとは常に思っていた。Arduinoを使えばPCと連携したハードウェア工作はかなり簡単にできそうだし、実際LEDをチカチカ光らせるくらいのことはすでにやっていた。本格的に何かを作るとしたら実用品を作りたい。何を作ればいいんだろう?

そんなあるとき、携帯サイトを巡回するのが大変だという話を耳にした。ガラケー時代の携帯サイトは携帯キャリア以外からのアクセス制限をかけているのが一般的で、PCからURL指定でアクセスしても見ることができず、実機をポチポチ操作して画面を目視で確認するしかなかった。それでみんな携帯を片手に動作確認をしていて大変面倒そうだった。これだ、と思った。携帯のボタン操作を自動化すれば人間がボタンを押さなくてもいいじゃないか。さらにその上で画面をPCに繋がれたカメラで撮影するようにすれば、自動のWebサイトスクリーンショット撮影マシンが作れちゃうじゃないか。これは素晴らしいテーマだ、さっそく作ろう!

次の週末に中古携帯ショップにいって安めのガラケーを買ってきて、ボタン部分のパネルを外してみた。ちょっと調べてみてわかったのは、こういうボタンで使われているのはメンブレンスイッチというもので、ドーム状になった部分をペコッと押すと下にあるパターンがショートして、それをもってボタンが押されたということになるものらしい。つまり電気的にショートさせることでボタンを押す操作を再現できるということだ。

で、最初はスイッチングするんだからトランジスタの出番だと思ったんだけど、よく考えてみると制御側(Arduino)と携帯側は別々のデバイスなわけで、グラウンドレベルがあっているわけでもないだろうし、この2つを電気的に接続するのは無理があるのではないかと思えてきた。それで絶縁しつつもスイッチできるデバイスがないかと調べてみたら、まさにおあつらえ向きのものがあった。フォトカプラという素子だ。これは内部的には発光ダイオードとフォトレジスタ(光を当てると電気抵抗が下がる素子)が入っているというとてもよくできた素子で、電気的には接続せずにスイッチを行うことができる。これを使うと見事にボタンを押す操作を再現することができるようになった。

次の問題は、携帯電話のボタンの数が多すぎてArduinoの出力ピンが足りないということ。Arduinoからフォトカプラを駆動してボタンを個別に操作したいわけだが、出力ピンの数がボタンの数より少ないので一対一対応ではどうにもならない。これもよく調べてみると、世の中にはシフトレジスタというものがあることがわかった。シフトレジスタは内部的にはフリップフロップが連なったようになっていて、シリアル信号をパラレルにするのに使うことができる。たとえば1001という信号を1クロックごとに順にシフトレジスタに送ると、シフトレジスタの1番ピンから4番ピンまでに1、0、0、1という出力が現れる、みたいな感じになる。シフトレジスタを数珠つなぎにすることもできるので、いくらでもワイドなパラレル出力をつくることもできる。まさにこれはおあつらえ向きの素子だ。

ここまでわかったところで実際の工作に入ることにした。携帯電話のボタン部分にワイヤをハンダ付けして、ブレッドボードに刺したフォトカプラに接続するようにした。フォトカプラの入力はシフトレジスタの出力につなぐようにして、シフトレジスタ自体も数珠つなぎにした。シフトレジスタのクロック入力と一番最初のシフトレジスタの入力ピンをArduinoにつなげて、全体がArduinoから駆動されるようにした。

次にArduino上で動くソフトを書いた。携帯のボタンに適当に通し番号をつけて、PCからボタン番号(1バイトの情報)が送られてくると、そのボタンを押す、という単純なソフトだ。ここまで完成すると、PCから携帯の任意のボタンが好きに押せるようになった。

ただしこれではまだ使うにはプリミティブすぎるから、その上で使うUnixのコマンドを書いた。URLを与えると、それを携帯の操作に変換してArduinoに送り、携帯側でWebブラウザを開いてそのページを表示する、というコマンドだ。具体的には、まず「切る」ボタンを(念の為に)数回押してメイン画面に戻ったあと、中央ボタンを押して下を数回押して「インターネット」を選び、URLをポチポチ入力する、という感じだ。

ここまでできて動かしてみると結果は感動的だった。PCでコマンドを実行すると、携帯がかなり速いスピードで操作されて、勝手にブラウザを開き、自動で文字入力をして目的のサイトを開いてくれるのだ。それを見ているのはとても面白かった。ものすごく手作り感のあふれている工作だけど、これを作ったのは僕なのだ。

さらにはそのコマンドを使ったWebアプリも書いた。WebサイトにいくとURLの入力欄があり、そこにURLを入れてしばらく待つと、そのURLを開いた携帯の画像が表示されるというものだ。画像は単に携帯の前にWebカムを置いて、コマンドを呼んでからしばらく待って撮影する、というので取得することにした。

というわけで、ここまでで当初の目的通りのものが完全に完成できたわけだ。これはすごい成果だ、さっそく明日みんなに見せて自慢しよう!

次の日にみんなに見せて回ったら、期待とは裏腹に「うーん、ワイヤの数がすごいな」とか「ルイさんがまた唐突に珍妙な工作物を作ってきたぞ……」みたいな薄い反応だった。こんなにおもしろいものを作ったのに、誰も驚いてすらくれないのか。別に驚いてくれないからつまらないモノだというわけではないけど、自分ではワクワクして作っていたのでその温度差にはがっかりであった。

とはいえ、その後は普通に便利に使っているひともいたし、時間指定で撮れるようにしたいとか、たくさんのURLをまとめて入力したいみたいな要望も受け取ったりしたから、それなりに用途が発見されて便利に使われていたようだ。まあ一発目でいきなり驚いてくれる人なんていないってことか。僕の実用品を電子工作で作りたい欲もわりと満たすことができた。

携帯サイトが下火になると共にこのデバイスはリタイアしてしまったけど、いまでもあれは面白い工作物だったなと思っている。また何か作りたいね。

2016-08-05 - Rui Ueyama (Twitter / Facebook)

この記事が気に入ったらサポートをしてみませんか?