2013年8月15日木曜日

夏休みの工作 ・・・ センサグローブとロボットハンド、別名、パイ揉みハンド

 昨日からのお盆休みを利用して、夏休みの工作です。そういえば、子供の頃、夏休みの宿題は全然やらないで、8月終わりにしかたなしにやってたけど、工作だけは妙に力を入れてやっていた記憶があります。
 さて、今回は、スイッチサイエンスさんで入手した曲げセンサを使ってみようと思います。


 電極部分にピンヘッダをつけて、


 接続用のケーブルを作成。今回は、インプットとして、曲げセンサをArduino Microにつないでみます。なぜ、今回は、Arudino Microにしたかというと、やっぱり、小さいこと。Arduino Microと曲げセンサのコネクタを接続するためのベースを秋月のスルーホール基板を切断したものでハンダ付け。


 これらを、近所のワークマンで買ってきた手袋に実装しました。
 じゃん。


 

 なかなか、サイバーな雰囲気。


 同じ手袋を二重にしてカバーの代わりにしました。
 曲げセンサは曲がり具合で抵抗値が増加するセンサです。10kΩで5Vにプルアップして、曲げ具合で抵抗(電圧)の増加をArduino MicroのA0~4のAnalogインプットで取得し、USBから1指1バイトのデータとして送信するようなスケッチを書き込みました。

 続いて、出力側として子供の科学教材として売っているロボットハンドのおもちゃをサーボでコントロールできるようにしてみます。



DIY店で買ってきた20mm幅のアルミ板材を加工して、サーボ用の金具を作成します。



 以前に紹介したポケットベンダーが大活躍。



 Raspberry Pi からサーボの制御は、これまた以前に登場したAdafruit の I2C サーボコントローラを使用しました。

 Arduino Micro でセンサグローブの曲げを検出して、USB接続でRaspberry Pi にセンサグローブの情報を送信し、Raspberry Pi からI2C経由でセンサグローブの曲げ情報をサーボに渡しています。「Raspberry Pi を用いた揉み動作のハンドロボットへの伝達システム」、略して、「パイ揉みハンド」です。



2013年8月14日水曜日

LEGO Mindstroms EV3 が届きました。

 数カ月前にLEGO Mindstorms EV3が発売になるというニュースを見て、以前から一度触ってみたいと思っていたLEGO Mindstormsをまずはネットにいろいろな情報がある現行のNXTから、ということで、NXTを入手して、いろいろ遊んでいたんですが、すっかりハマってしまい、結局うEV3も予約をしてしまっていました。数日前に届いていたんですが、触っている時間がなかったので、お盆休みの三日間を使って、少し遊んでみようと思っています。


 新しいEV3ではコントローラブリックやセンサ・モータ類も全体に角ばったというかフラットな印象に変わっています。NXTに比べた最大の特長は、CPU他のスペックアップとLinuxをOSに採用したところですが、そのせいで、起動と終了がNXTに比べて非常に時間がかかるようになってしまいました。NXTは組み込み用の独自OSでスイッチOn/Offですぐに使えて終了出来ましたが、EV3ではスイッチを入れてからLinuxが起動して使用できるまで、あるいは、スイッチを切って使い終わる時もLinuxのシャット・ダウンが行われるので、この部分は非常にうっとおしくなってしまって残念な点ではあります。


 しかし、Linuxが載ったということは、より色々と遊び甲斐が広がったわけで、早速、いじってみたいと思います。まずは、無線LANドングルを接続してEV3ブリックをネットワークに接続します。EV3の設定画面か自IPアドレスを確認できるので、外部からの接続を試みます。先日、日経Linux9月号でtelnet接続できるというような情報を見かけたので、試してみます。
 EV3のIPへtelnet接続して、rootでパスワードなしでログインします。


 あっさり、ログインできてしまいました。/binフォルダ等も存在します。sshコマンドもあるようなので、ここから、Raspberry Pi にsshログインしてみます。


 おお、出来た。まあ、Linuxなんだから、当たり前といえば、当たり前なんだけど・・・。
まだ、EV3の情報は少ないですが、Linuxなので色々インストールしたりできると思うんだけど、動かなくなった場合、どうしよう?NXTブリックは単体で3万円ちょっとかけるくらいで買えるんだけど、EV3ブリックは単体で買うといくらするんだろ?もう少し、人バシラーの皆さんが頑張ってくれるまで待ったほうが無難かも・・・。

 今日から、つかの間のお盆休みなので、昼間からビール飲んじゃおうかな。おつまみは、昨日、妻が買ってきてくれた、これ・・・


 「戦いは数だよ、兄貴っ!」


 ドズル兄さん、かっけぇ~。


 箱がでかすぎて、冷蔵庫に入らないので、とりあえず、開梱して格納。ガンプラ風の取説付き。

2013年8月2日金曜日

Raspberry Pi と Node.js でLチカ

 AmazonからInterface 9月号が届いたので、前回の続きを試して見ることにします。Interface 9月号の特集の6章にRaspberry Piでの記事があり、やはり、node.jsでのIO制御の記事でしたが、Interfaceの記事ではv0.10.12をインストールしていたので、前回、v0.8.11をインストールしたんですが、v0.10.12に変えることにしました。バージョンアップの方法がわからないので、とりあえず、既存の node_modules フォルダを適当な名前にリネームした後、

   wget http://nodejs.org/dist/v0.10.12/node-v0.10.12.tar.gz
   tar -zxf node-v0.10.12.tar.gz
   cd node-v0.10.12
   ./configure
   make
   sudo make install

として、上書きしてしまいました。

   node -v

で v0.10.12 と表示されるので、多分大丈夫?でしょう。

 npmで追加パッケージをインストール。

   npm install connect
   npm install socket.io
   npm install websocket.io
   npm install express

 前回、WebSocketと思って socket.io をインストールしたんですが、これは間違いで、socket.io と websocket.io は別です。WebSocketはwebsocket.ioを入れないといけなかったみたい。今回は両方入れときます。

 記事にしたがって、チュートリアル的に進めていって、とりあえず、Lチカまでは成功。node.jsのサーバサイドJavaScriptでgpio操作を書いたシェルスクリプトを実行する形でブラウザ→Lチカと連携するという内容でした。実際のソース等は雑誌の内容になってしまうので載せられませんので、雑誌を見るか、あるいは、こちらのブログ等が参考になるのではないでしょうか。Google+の電子工作コミュで教えてもらったんですが、色々興味深い内容です。自分もこれからこちらのブログを参考にさせて頂いて勉強しようかと思っています。

 ところで、node.jsなんかだと、node-inspectorとかGUIデバッガがWebブラウザ(デバッグ対象のRaspberry Piをサーバにして)で利用できる仕組みがあったりします。あるいは、Cloud9というIDEなんかもあったりします。こういうような仕組みでRaspberry Piの開発を外部のブラウザでできたらいいのにな、と思ったんですが、調べてみたところ、ちょっと気になるものを発見。Ada姉さんのところで、adafruit WebIDEというものがベータ版として公開されています。こちらは、Pythonの開発をRaspberry Pi上で動かしているサーバに対して、外部PCからブラウザ上で行えるIDE環境のようです。さすが、Ada姉さん。こちらも面白そう。