建築系におけるArduino利用計画としての「Archiduino Project」。
ArchiduinoにつかうATmega328には、購入時にはブートローダが書き込まれていないので、最初にこれを焼くという手間が発生する。もちろんブートローダの焼かれたものも売ってはいるのだが、少々割高なので、手間でも自分で焼いた方がよい。
焼く方法にはいろいろあるが、この記事にある方法が一番簡単そうである。毎回配線をするのは手間なので、必要なパーツを実装した基板を用意することとした。Arduino側で動いているスケッチには「Optifix」という名前がつけられているので、この方法で焼かれたブートローダは俗にOptifix版と呼ばれているようだ。Optifixのスケッチ的には、焼く→IC換装→リセット→焼く→を繰り返せるようにできているのだが、毎回シリアルモニターを見ながらこれを確認するのも手間なので、LEDの点灯状況で外部からその状況がわかるようにしてある。
まぁそういうわけで、いつもながらFusionPCBで基板発注したものの、動作的には問題ないものの、一部配線にミスがあったりしたことと、結果的にはこれは一家に一台あれば良いモノなので、残った11枚の試作基板はご要望があればどなたかにお裾分けしたいなと。
20130601
20130523
「glif」的な何か
iPhoneマウンターの「glif」はクラウドファンディングのKickstarterを使って製品化に至ったものとしては割と知られているものであり、本家サイトから購入することも可能だし、少し割高だがAmazonで購入することも可能である。シンプルでデザインもよく、縦置き、横置きスタンドとしてだけでなく、1/4インチネジ用の金具もついているので一般的な三脚に固定することができる。$30の「glif plus」を購入すれば、キーホルダーに引っかけるためのパーツなども付属する。
そんな「glif」だが、これだけシンプルなものならば自宅の3Dプリンタで出力できるのではないか、となるのも無理はない。というわけで、できるだけオリジナルの寸法に合わせてモデルから起こして作ってみることとした。とはいえ、そのまま同じものを作るというのではさすがに能がないというか、権利的にもいろいろアレだと思うので、多少手を加えることにした。
Thingiverse : g-something
そもそも論ではあるが、この手のマウンターは基本的にiPhoneなり元のデバイスの外形寸法に合わせて作られているが、そのiPhoneユーザーのほとんどはケースを被せるなりして使っているユーザーがほとんどで、マウンターを使うたびにこれを外さなければならないという「手間」に苛まれることになる。その「手間」が実は非常に負担となっており、マウンターを「使わない」というところにまで人を追いやってしまうこともある。
私自身、このケースを使っているのだが、非常に薄くてデザインもよいのだが、いかんせん、一度装着したら外しづらいという問題のあるものである(使っている人にはよくわかると思うが)。そこでオリジナルに対する改変の「ひと手間」として、このケースを装着したときの寸法に合わせることとした。ケースとiPhone本体との間にうまれる隙間に噛ませる「歯」の部分を設け、一体性を高めるようにもした。
glifの良いところは1/4インチネジのねじ穴があるところでもあるのだが、素材に対して埋め込むというのは困難なので、出力されたものにこのパーツをねじ込むことで対応することとした。ちなみにこのパーツは家電量販店で210円で購入できる。使っている際にすっぽ抜けないように、本体側の穴は少々キツめにできている。出力されたものにやすりがけをしたら完成である。
そんな「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化については今後も引き続き検討してゆく。
今回のテーマは、「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のオス端子は通常、基板に対して垂直に立てられないパーツであるが、ランドの形状と端子のピンの加工によってこれを可能にしている。本来は垂直に立てられるパーツを用いるべきなのだが、調べた限りにおいてはそのようなパーツは存在しないらしい。
これまでのセンサーモジュールは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のオス端子は通常、基板に対して垂直に立てられないパーツであるが、ランドの形状と端子のピンの加工によってこれを可能にしている。本来は垂直に立てられるパーツを用いるべきなのだが、調べた限りにおいてはそのようなパーツは存在しないらしい。
20130406
99を100にするためのツールとしての3Dプリンタ
先日ある集まりで知人と3Dプリンタを肴に話す機会があった。その際、確かに3Dプリンタもだいぶ認知度が上がってきて、そこそこの大学なら高い安いはともかく、普通に配備されるようになってきたけれども、で結局3Dプリンタで何を作るのよ?という話になった。その場にいた人々は皆、なんらかのものづくりに関わっている人たちなので、この道具ができることの限界も、世間の人が過剰に喧伝している現実もおわかりの上での議論となった。みなさんいろいろ思うことがあるみたいだけれども、個人的には以下のような結論に納まった。つまり、「パーソナルファブリケーションは既製品に『+1』するためのものを作る程度にしかならない」ということだ。
世間で言われているほど産業構造を変えるようなインパクトにはならないと思うし、みんながみんなこれでどんどん世の中にあるもの以上の価値を作るなんて事はないと思う。我々が中学生の時に技術家庭科で木工や金工、あるいは家庭科で調理実習をしたからといって、多少の心得にはなったけれども、大半の人はそれが日常の行為にはなってはいない。知識や技術を社会で共有化・オープン化するということと、それが日常の行為になることとは別の議論だ。パーソナルファブリケーションは、あくまで既存の産業の補完用の手段としてあり、そこでの議論がマスプロダクトのデザインに対して反映される土壌となるような関係が既存産業との間に生まれるのではないかと思う。
ところで私は無印良品が好きなのだが、まぁなんというか、良くも悪くも「99点(満足まではちょっと足りない)」というような事が多い。そういう時に、ひと手間かけて自分好みに調整する(『+1』する)というときに3Dプリンタのような道具が役に立つのではないかと思う。ちょっと前に「デコクロ」(UNIQLOにデコレーションを施してオリジナルのデザインにすること)が世間で取り上げられることがあったが、これに近いのではないかと思う。少なくとも、そういう所からパーソナルファブリケーションになじんでゆく方法もあると思う。
ということで、「現状に対する不満を解消する(+1する)装置」としての3Dプリンタを使い、ケーブルクリッパーを作ってみた。ケーブルを束ねるだけなら輪ゴムでもいいのだが、輪ゴムだと定期的に切れてしまうのと、結束帯だと取り外しの自由がきかないし、ベルトだと束ねていないときプラプラするので、これに代わるものを考えた。モノは単純なABSのわっかだが、ケーブルをぐるぐるっと巻いたものをその穴に押し込むと、ケーブル自体の復元力で結束されるというもの。ケーブルの復元力を結束力に変換するというところが一応のキモのつもり。詳細はThingiverseにて。
世間で言われているほど産業構造を変えるようなインパクトにはならないと思うし、みんながみんなこれでどんどん世の中にあるもの以上の価値を作るなんて事はないと思う。我々が中学生の時に技術家庭科で木工や金工、あるいは家庭科で調理実習をしたからといって、多少の心得にはなったけれども、大半の人はそれが日常の行為にはなってはいない。知識や技術を社会で共有化・オープン化するということと、それが日常の行為になることとは別の議論だ。パーソナルファブリケーションは、あくまで既存の産業の補完用の手段としてあり、そこでの議論がマスプロダクトのデザインに対して反映される土壌となるような関係が既存産業との間に生まれるのではないかと思う。
ところで私は無印良品が好きなのだが、まぁなんというか、良くも悪くも「99点(満足まではちょっと足りない)」というような事が多い。そういう時に、ひと手間かけて自分好みに調整する(『+1』する)というときに3Dプリンタのような道具が役に立つのではないかと思う。ちょっと前に「デコクロ」(UNIQLOにデコレーションを施してオリジナルのデザインにすること)が世間で取り上げられることがあったが、これに近いのではないかと思う。少なくとも、そういう所からパーソナルファブリケーションになじんでゆく方法もあると思う。
ということで、「現状に対する不満を解消する(+1する)装置」としての3Dプリンタを使い、ケーブルクリッパーを作ってみた。ケーブルを束ねるだけなら輪ゴムでもいいのだが、輪ゴムだと定期的に切れてしまうのと、結束帯だと取り外しの自由がきかないし、ベルトだと束ねていないときプラプラするので、これに代わるものを考えた。モノは単純なABSのわっかだが、ケーブルをぐるぐるっと巻いたものをその穴に押し込むと、ケーブル自体の復元力で結束されるというもの。ケーブルの復元力を結束力に変換するというところが一応のキモのつもり。詳細はThingiverseにて。
登録:
投稿 (Atom)