思いついた未来を軽量言語で実装してみよう

プロトタイピングツールとしてのLL


佐藤 伸吾
株式会社ケイビーエムジェイ

2008/10/24

「あんなことができたらいいな」と思ったら、とにかくコーディング。軽量プログラミング言語をプロトタイピングツールとして使ってみよう(編集部)
- PR -

 私はプライベートにおいてHacker's Cafeというグループに参加しています。所属組織の枠を超えた緩いつながりの気楽な集まりです。主に土日などの休みを使ってメンバーが集まり、各自好きなコーディングなどを楽しんでいます。

 この記事ではHacker's Cafeの活動から生まれたさまざまな成果物の紹介、およびその迅速な開発を可能にした軽量プログラミング言語(LL)のメリットについて解説します。

関連記事:
リンク Praggerとnetpbmで作る画像→AA変換ツール
http://www.atmarkit.co.jp/fcoding/articles/asciiart/asciiarta.html

プロトタイピングツールとしてのLL

 PCからのハードウェア制御はそれなりの専門知識がないと気軽には試せない分野でした。しかし、現在ではGainerというI/Oモジュールを用いることによって、ハードウェアを制御するソフトウェアを比較的簡単に記述できるようになっています。

 また、画像処理や画像認識などのコアな分野においても、OpenCVARToolkitなどのような非常に高機能かつ便利なライブラリが使用可能です。

 これらの構成要素を手軽に組み合わせ、思い付いたアイデアの実装および評価を気軽かつ迅速に行うためのツールとしてLLは非常に魅力的です。以下にLLを用いた作例をいくつか紹介していきます。

RailsからチョロQを操縦する

 2008年2月ごろ、『+GAINER-PHYSICAL COMPUTING WITH GAINER』という書籍に「GainerでチョロQを動かそう」という解説記事を見つけ、非常に興味を引かれました。操縦信号の伝達にHTTPを使えば遠隔地からチョロQを走らせることもできそうだったので、プロトタイプの作成を試みました。

図1 チョロQシステム概略図(筆者資料より)

 ソフトウェア的にはさほど難しい部分はなく、どちらかというとハードウェア的な部分で苦戦しました。特に赤外線リモコンをばらしてミニリレーを取り付ける作業です。いままでハンダ付けを一度も行ったことがなかったので、配線には非常に苦戦しました。しかしGainerを用いることによってハードウェア制御のソフトウェアをRubyで簡単に記述できました。

「電脳メガネのようなもの」を自作する

 電脳メガネとは、「電脳コイル」というアニメ作品の世界に出てくるメガネ型のコンピュータのことです。以下、Wikipediaから一部引用します。

「電脳」と呼ばれる技術が一般に普及している近未来。電脳世界の情報は「電脳メガネ」によって現実世界に重ねて表示され、手で触れて操作できるようになっている。「電脳」は日常生活に溶け込み、子供でも当たり前に扱えるが、それ以外の部分は現在と大差ない。

電脳コイル−Wikipedia

 私の目にはとても魅力的な世界に映りました。

「電脳メガネの存在するデジタルライフスタイルをいますぐ体験したい」

 この電脳メガネのようなものを現在の技術を使って個人レベルで自作できないだろうか。まずはシステム全体をイメージし、詳細部分の実装を具体的に考えていきました。

図2 電脳メガネシステム概略図(筆者資料より)

 ここで問題となったのが視界状況の検出です。画像認識で状況を検出するには相当量のコードを書かなければならないでしょうし、強力なCPUパワーも必要そうです。

「もっとシンプルな解決策はないものだろうか」

 例えば、使用者の首の向きや方角を検出できれば、視界方向に関連している情報をリアルタイムに表示できるのでは。電子工作はまったく経験のない私でしたが、ネット上で検索したところ、どうやら地磁気センサーという電子部品で方角を検出できるらしいということが分かりました。

電脳メガネを装着した様子

 秋葉原の秋月電子という電子部品専門店で地磁気センサーを6000円程度で購入できることも分かりました。部品のめどがつけば、あとはそれらを接続してソフトウェアを書くだけです。私は「電脳メガネのようなもの」の制作を開始しました。

 ここでプロトタイプ作成に使ったのがRubyCocoaです。RubyCocoaを用いると、RubyからMac OS XのリッチなグラフィックAPIであるCoreAnimationを操作できます。

 MacネイティブアプリのプログラミングにはObjective-Cを用いるのが一般的ですが、やはり使い慣れているプログラミング言語でコーディングできるのはありがたいですし、RubyにはRubyGemsという形式で豊富なライブラリも用意されています。例えば、AmazonのWebサービスなども気軽に試せます。

 最初にRubyCocoaで情報表示のプロトタイプを作ったので、その後のObjective-CとCocoaフレームワークによる作り込みもスムーズに行うことができ、短期間でそこそこのシステムに仕上げられました。

電脳メガネの動作画面

関連記事:
リンク Cocoaの素、Objective-Cを知ろう
http://www.atmarkit.co.jp/fcoding/index/objc.html

 
1/2

Index
思いついた未来を軽量言語で実装してみよう
Page1
プロトタイピングツールとしてのLL
RailsからチョロQを操縦する
「電脳メガネのようなもの」を自作する
  Page2
電脳スターラリー
自走式Webサーバ
未来のコンピューティング

Coding Edgeフォーラム トップページ

 Ruby/Rails関連記事
プログラミングは人生だ
まつもと ゆきひろのコーディング天国
 ときにプログラミングはスポーツであり、ときにプログラミングは創造である。楽しいプログラミングは人生をより実りあるものにしてくれる
生産性を向上させるRuby向け統合開発環境カタログ
Ruby on Rails 2.0も強力サポート
 生産性が高いと評判のプログラミング言語「Ruby」。統合開発環境を整えることで、さらに効率的なプログラミングが可能になる
かんたんAjax開発をするためのRailsの基礎知識
Ruby on RailsのRJSでかんたんAjax開発(前編)
 実はAjaxアプリケーション開発はあなたが思うよりも簡単です。まずはRuby on Railsの基礎知識から学びましょう
Praggerとnetpbmで作る画像→AA変換ツール
Rubyを使って何か面白いものを作ってみよう!
 一般的な画像をアスキーアートに変換するツールを作ってみる。さらに出力にバリエーションを持たせてみよう
コードリーディングを始めよう
Railsコードリーディング〜scaffoldのその先へ〜(1)
 優れたプログラマはコードを書くのと同じくらい、読みこなす。優れたコードを読むことで自身のスキルも上達するのだ
  Coding Edgeフォーラムフィード  2.01.00.91


Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Coding Edge 記事ランキング

本日 月間
ソリューションFLASH