Intel Edisonでnode.jsを動かしてみる – 初心者が学ぶIntel Edison

2014.12.05

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。望月です。
最近ブログが急に増えてきたIntel Edisonですが、私も御多分にもれずIntel Edison kit for Arduinoを触り始めています。ところが私はハードウェアに関しては全くの素人です。右も左もわからない状態なので、本当に手探り&おっかなびっくりで試しています。幸い、社内に頼れる人がいますので、わからないことは質問しつつセットアップをしています。Intel Edisonや初期セットアップの方法に関しては以下のブログを参照下さい。

さて、まずは通電してログインできることが確認できたので、さっそくプログラムを書いて動作させてみようと思います。

ライブラリのインストール

既に他の記事でも触れられている通り、Intel EdisonではLinuxが動いています。そのため幾つかの言語は既にインストールされた状態になっています。

root@cm_edisonnnnnnnnnnnnn:~# node -v
v0.10.28
root@cm_edisonnnnnnnnnnnnn:~# perl -v

This is perl 5, version 14, subversion 3 (v5.14.3) built for i586-linux

Copyright 1987-2012, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl".  If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

root@cm_edisonnnnnnnnnnnnn:~# python -V
Python 2.7.3
root@cm_edisonnnnnnnnnnnnn:~# ruby -v
-sh: ruby: not found

Ruby...(´;ω;`)ブワッ
今後、Rubyもインストールしてみたいと思いますが、ひとまず今日はnode.jsを書きます。
というのも、EdisonやGalileoといったIntel製のハードウェアを操作するための開発ツールとしてmraaというライブラリが開発されています。このライブラリでは現状以下の言語がサポートされています。

  • C
  • C++
  • Python
  • Node.js

このライブラリのAPIを利用することで、Intel Edisonに搭載されたセンサーやアクチュエータ等とデータをやりとりすることができるようになるようです。今日はまだセンサーを取り付けるところまで至っていないので、インストールして動作確認をしてみます。

インストール

GithubのREADMEにインストール方法は書いてあります。これが全てですので、そのまま実行します。

root@edison:~# echo "src mraa-upm http://iotdk.intel.com/repos/1.1/intelgalactic" > /etc/opkg/mraa-upm.conf
root@edison:~# opkg update
root@edison:~# opkg install libmraa0
Installing libmraa0 (0.5.4.5) to root...
Downloading http://iotdk.intel.com/repos/1.1/intelgalactic/libmraa0_0.5.4.5_i586.ipk.
Configuring libmraa0.

正しくダウンロードできたようです。

実行

libmraaにはNode.js用のサンプルスクリプトが用意されています。ひとまずこのサンプルに倣ってmraaのバージョンを取得してみます。

root@edison:~# vi sample.js
root@edison:~# cat sample.js
var m = require('mraa'); //require mraa
console.log('MRAA Version: ' + m.getVersion());
root@edison:~#
root@edison:~# node sample.js
MRAA Version: v0.5.4-5-g1ee0548
root@edison:~#

おお、普通に動いていますね。普通にjavascriptが動いていることが驚きです。

まとめ

冒頭にも書いたとおり、まだ何がどうなって動いているのか(私には)全くわからないIntel Edisonですが、とりあえず動作させることができました。今後はドキュメントを読みながら色々なセンサーにつなげて遊んでみようと思います。