MENU

RAPIRO(ラピロ)をWebサーバにする

ラピロとコミュニケーションをとりたいと考えたとき、やり方はいろいろあると思います。

  1. ラピロに何かセンサを繋げて、それに対して人がアクションをとってそれをセンシングさせる
  2. ラピロにマイクを繋げて、音声認識させる
  3. スマートフォン経由でラピロと対話

1.と2.は直接ラピロとコミュニケーションをとることができますが、それ相応にハードルが上がります。3.はスマホを介するので間接的なコミュニケーションになりますが、一番簡単そうなので、まずはこれからやってみることにします。

スマートフォン経由でラピロと対話するにしても、これまたやり方は色々あると思います。AndroidアプリやiOSアプリをゴリゴリと書くのアリかもしれませんが、個人的には、ラピロをWebサーバにして、HTTPでアクセスできるようにするのが一番簡単なような気がします。これなら、ブラウザが動く環境なら、AndroidだろうがiPhoneだろうがPCだろうが、どれを通してもラピロと通信することができるので。

ということで、ラピロのRaspberry PiにWebサーバを実装することにします。これまたApacheやらlighttpdやら色々選択肢はあるのかもしれませんが、個人的に実装が簡単そうに思えるnode.js + Expressフレームワークで実装してみようと思います。

ではまず、node.jsのインストールから。node.jsは頻繁にバージョンアップがあるため、バージョン管理ツールを本体のインストールより先にイ ンストールするのが良いらしいです。ということで、node.jsのバージョン管理ツール”nodebrew”をインストール。

[code language=”bash”]
$ curl -L git.io/nodebrew | perl – setup
[/code]

続いて、環境変数の設定。ホームフォルダの.bashrcの末尾に以下を追加。

[code language=”bash”]
export PATH=$HOME/.nodebrew/current/bin:$PATH
[/code]

書けたら、有効にする。

[code language=”bash”]
$ source .bashrc
[/code]

これでバージョンマネジャのインストールは完了。次にnode.jsの本体をインストールする。本家を見てみると、11/2時点ではv0.10.33が最新らしいのですが、ここを除いてみるとRaspberry Pi向けのバイナリファイルはv0.10.3が最新だった(=node-v0.10.3-linux-arm-pi.tar.gzが存在した)ので、これを入れることにします。

[code language=”bash”]
$ nodebrew install-binary v0.10.3
[/code]

インストールしたら、これを利用するように設定。

[code language=”bash”]
$ nodebrew use v0.10.3
[/code]

ちなみに、現在インストールされているnode.jsのバージョンと、現在利用設定しているバージョンを知りたい場合は、以下を実行。

[code language=”bash”]
$ nodebrew list
[/code]

これで、node.js本体のインストールは完了。

次 に、Webアプリを簡単に作れるようにするためのフレームワークである、Expressをインストールします。express-generatorを使ってアプリの雛形をつくるやり方もありますが、自分の環境では何だかうまく動かなかったのと、あと勉強も兼ねて、雛形なしで作っていくことにします。

といっても、サンプルレベルならとても簡単です。node.jsの公式ページの”Getting Started”のやり方に従うだけです。

まず、適当に作業用のディレクトリを作って、そこに移動します。

[code language=”bash”]
$ mkdir Rapiro
$ cd Rapiro
[/code]

次に、package.jsonを作るために、以下を実行。

[code language=”bash”]
$ npm init
[/code]

シェルが色々聞いてきますが、とりあえず全部enterしとけばOKです。

package.jsonができたら、expressをインストール。

[code language=”bash”]
$ npm install express –save
[/code]

ここまでできたら、同じフォルダにapp.jsを作ります。app.jsの内容は、”Getting Started / Hellow World”の内容そのままでOK。

できたら、以下で実行。

[code language=”bash”]
$ node app.js
Example app listening at http://0.0.0.0:3000
[/code]

それでは、Webサーバが機能しているかチェックです。Raspberry Piの繋がっているローカルネットに手持ちのスマートフォンをWi-Fi接続し、スマートフォンのブラウザで以下のように入力。

http://192.168.xxx.xxx:3000/

(アドレスはRaspberry PiのIPアドレス。事前にifconfigか何かでチェック)

これで、画面に”Hello World!”が表示されればOKです。

 

あとはこのサンプルに対して色々ルーティング処理を入れていけば、ラピロへの問いかけに対して色々なリアクションをさせる、というのは作り込んでいけそうです。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (3件)

目次