20130523

「glif」的な何か

iPhoneマウンターの「glif」はクラウドファンディングのKickstarterを使って製品化に至ったものとしては割と知られているものであり、本家サイトから購入することも可能だし、少し割高だがAmazonで購入することも可能である。シンプルでデザインもよく、縦置き、横置きスタンドとしてだけでなく、1/4インチネジ用の金具もついているので一般的な三脚に固定することができる。$30の「glif plus」を購入すれば、キーホルダーに引っかけるためのパーツなども付属する。

そんな「glif」だが、これだけシンプルなものならば自宅の3Dプリンタで出力できるのではないか、となるのも無理はない。というわけで、できるだけオリジナルの寸法に合わせてモデルから起こして作ってみることとした。とはいえ、そのまま同じものを作るというのではさすがに能がないというか、権利的にもいろいろアレだと思うので、多少手を加えることにした。

Thingiverse : g-something

そもそも論ではあるが、この手のマウンターは基本的にiPhoneなり元のデバイスの外形寸法に合わせて作られているが、そのiPhoneユーザーのほとんどはケースを被せるなりして使っているユーザーがほとんどで、マウンターを使うたびにこれを外さなければならないという「手間」に苛まれることになる。その「手間」が実は非常に負担となっており、マウンターを「使わない」というところにまで人を追いやってしまうこともある。

私自身、このケースを使っているのだが、非常に薄くてデザインもよいのだが、いかんせん、一度装着したら外しづらいという問題のあるものである(使っている人にはよくわかると思うが)。そこでオリジナルに対する改変の「ひと手間」として、このケースを装着したときの寸法に合わせることとした。ケースとiPhone本体との間にうまれる隙間に噛ませる「歯」の部分を設け、一体性を高めるようにもした。

glifの良いところは1/4インチネジのねじ穴があるところでもあるのだが、素材に対して埋め込むというのは困難なので、出力されたものにこのパーツをねじ込むことで対応することとした。ちなみにこのパーツは家電量販店で210円で購入できる。使っている際にすっぽ抜けないように、本体側の穴は少々キツめにできている。出力されたものにやすりがけをしたら完成である。

20130511

Archiduino Project - vol.24

建築系におけるArduino利用計画としての「Archiduino Project」。

今回のテーマは、「Wi-Fi化」である。ワイヤレスでマルチホップな無線センサーネットワークをXBeeで実装するという話はすでにしてきたが、最終的にデータをサーバに飛ばすには、インターネットに接続してリモートサーバにデータを送らなければならない。これまではイーサネットシールドを使って有線でデータを送信するという方法をとっていた。

しかしながら、たとえイーサネットとはいえやはり無線化は必定と考え、Arduinoのインターネット接続をWi-Fiで実現するためのシールドを手配した。Seeed StudioでPCBを発注するときに、Seeed謹製の「WIFI Shield」なるもの($60くらい。国内では千石電商でも購入可能)を一緒に発注してみた。このシールドで使われているWi-Fiモジュール(Microchip RN-131)は技適を通っていない製品なので、日本国内では本来的には使用できないが、あくまで性能評価のための試験利用ということで使ってみることとした。

このシールド(写真ではグレーのアクリルの下にある)を動かすには、Arduinoからシリアル通信でチップにコマンドを送るのだが、どうやらもともとSparkfunのWiFly Shieldで使われているライブラリをそのまま流用できるらしい。そりゃモジュールが一緒だから可能だろうて。

そういうわけで、ライブラリをインストールしてアクセスポイントにWPSで接続し、DHCPでアドレスを振ってもらってサーバにHTTPでアクセス(XBeeから受け取ったデータをGETメソッドでサーバに送信)というコードを書いた。

問題は送信速度ということになる。センサーネットワークでハブになるノードは常にサーバにデータを送信し続けなければならない。何十ものセンサーノードがぶら下がるハブノードは、毎秒数十ものデータを送信し続けることになるのだが、ここで送信に遅延が生じると、データの取りこぼしが発生してしまう。したがって、ハブノードの速さ(通信速さと処理速さ)を検証しておかなければならない。というわけで、今回は試験的に4ノードをぶら下げた場合で検証してみた。

結論としては、実用に耐えない遅さ、といわざるを得ない。秒間1~2回の処理しか捌けなかったという惨憺たる結果である。尤も、各センサーノードが3秒に1回という頻度でデータを送るという現状の設定もなかなかあり得ない話なので、仮に各ノードが1分間に1回程度データを送ればよいということにしてしまえば、このキャパからすれば、2~30のノードをぶら下げるのも可能かもしれない。

それにしても、今回の結果はちょっと残念な結果だったといわざるを得ない。もしかすると、私の書いたスケッチがヘボかったからトロいことになっているのかもしれない。これについては引き続き検証してゆく。ArduinoでWi-Fi化する方法は、大本営からWi-Fiシールドも出ていることなので、こっちも試してみたい。Wi-Fi化については今後も引き続き検討してゆく。

20130508

Archiduino Project - vol.23

建築系におけるArduino利用計画としての「Archiduino Project」。

これまでのセンサーモジュールはACアダプタから給電することとしていたのだが、今回紹介するのはUSBコネクタ(Type-Aのオス)からの給電で作動するバリエーションである。そもそもAC駆動としていたのは、Archiduinoにおけるセンサーモジュールが、基本的にはスケッチの更新もなく、一度設置したらあとは淡々とセンシングしてくれればいいだけのものであったことから、住宅などの建築内部で電源を得やすいACアダプタ駆動としたという経緯がある。これのデメリットとしては、ACアダプタの大きさとコストであった。これまでは、ACアダプタとArchiduinoとを3Dプリンタで出力したスケルトンで連結する設置方法をとっていたが、これは確かにちょっと不格好であった。その上、ACアダプタのケーブル長さを調整する加工が必要なので、これもまた一手間であった。このようないくつかの問題に対して解決策を模索することとなった。

その解決策のひとつが、今回のシリーズである。短辺32[mm]、長辺49[mm]という基板がベースとなっており、そこにセンサー類を載せたシールドがピンヘッダで連結されている。外装として3Dプリンタで出力したスケルトンを用意し、2枚のPCBでこれを挟む形で連結し、固定している。シールド側に載せられるセンサーは、昨年WIZDOMの活動で用意したモジュールの構成を再利用したので、加速度、照度、温度もしくは温湿度、人感センサである。XBeeによりArchiduino HUBにデータは随時転送され、サーバに記録される。

センサーモジュール側で動いているスケッチは、センサーから得た数値をXBeeでハブ側ノードに3秒おきに転送するというだけのものだが、ハブ側で使用しているXBeeモジュールの16ビットアドレスを設定するだけで、それ以外の設定は何一つすることはない(センサーモジュール側のID設定などもしなくてよい)という簡単設計である。センサーモジュール側の個体識別は、センサーモジュール側のXBee16ビットアドレスにより行うこととしてある。

本体側の基板は、USB給電としたので5[V]・500[mA]のレギュレータを廃止することができ、基板面にゆとりができた。3.3[V]レギュレータは、いままでのような基板に垂直に立つものではなく、表面実装型に変更してある。なるべく無駄な部品を省くこととしているので、スケッチの転送にはSparkfunなどが販売しているUSB to SerialのBreakout boardを使う必要がある。もっとも、これは以前と変わらない点ではある。

USBコネクタとした点については、住宅内で電源が確保しづらくなるのではないかという懸念もあるが、最近はスマートフォン用として販売されているUSB-AC変換アダプタがACアダプタよりも低価格で手に入るのと、延長コードの先にUSBコネクタがあるものも販売されているので、これを使えばよいということで解決した。ちなみに今回の基板が横幅32[mm]としたのは、もちろんXBeeモジュールなどの部品寸法の関係もあるが、無印良品のジョイントタップの幅とそろえたというのも、その理由のひとつである。

最後に、今回の基板はかなりアクロバティックな部品の使い方をしている。USBのオス端子は通常、基板に対して垂直に立てられないパーツであるが、ランドの形状と端子のピンの加工によってこれを可能にしている。本来は垂直に立てられるパーツを用いるべきなのだが、調べた限りにおいてはそのようなパーツは存在しないらしい。