はじめに
インテル株式会社よりご厚意で貸与いただいた「Intel Galileo Development Board」を簡単にとはいえ、一通り試用してみましたので、現時点での感想というものを書いてみたいと思います。いわばファースト・インプレッション的なものです。
2014年8月15日追記
このメモは第一世代のIntel Galileo Development Boardについて取り上げています。第二世代(Gen 2)のIntel Galileo Development Boardについては以下のページで取り上げています:
関連ページ
- 「Intel Galileo Development Board」のLinuxから見える状態
- 「Intel Galileo Development Board」でLEDの発光を制御
- 「Intel Galileo Development Board」を起動して動作確認
- 「Intel Galileo Development Board」を使用する準備
- 「Intel Galileo Development Board」を使用するために必要なもの
- 写真で見る「Intel Galileo Development Board」
試用している「Intel Galileo Development Board」などについて
- 本記事で試用している「Intel Galileo Development Board」は、インテル株式会社より“さかきけい”個人に貸し出されたものです。このため私の勤務先等とは一切関係がありません。
- 本記事は“さかきけい”が完全に自由意思で書いているもので、インテル株式会社からは何らの要請、制限等は受けていません(あるのは返却期限のみです)。
- ボードのリビジョンは「量産前」のもので、Maker Faire RomeでIntel CEOのBrian M. Krzanichさんが発表した際に同会場で配布されたものと同等とのことです。
- 海外仕様そのままなので「インテル Galileo 開発ボード」ではなく、あえて「Intel Galileo Development Board」と記述しています。
- 日本で発売される「量産品」と仕様あるいは内容物が同等であるかは不明とのことです。
そもそもなぜIntel Galileo Devlopment Boardに注目したのか
最初に私がなぜIntel Galileo Development Boardに注目したのかを説明しておかなければ、感想の方向性が不明確になるかと思います。ですので、少し前を振り返って、なぜIntel Galileo Development Boardに興味を持つにいたったのかを整理してみたいと思います。
「ルネサス(元日立製作所)のマイクロプロセッサーH8シリーズ」で書いたのですが、Windowsを搭載した一般的なパソコンではインターフェースがPCI ExpressやUSBなど、便利な代わりに高度化したものになっていて、外部回路を作ってちょっと制御をするという用途ではいろいろと面倒過ぎるため、マイコン・ボードを使用したいと思ったのが始まりです。そんな風に考えながら、どのマイコン・ボードにしようかと選定を始めたところに「Intel Quark SoC X1000搭載Intel Galileo Boardを発表」となったわけです。
ちょうどいいタイミングでもあるし、それならIntel Galileo Development Boardの発売を待って、これを使用してみよう、と思いました。それに合わせて、同ボードがどういったものなのかを調べ始めて、それをこの「さかきけいのメモ」にまとめ始めました。すべての始まりはここにあります。これによって、結果としてインテル株式会社より貸与を受けて試用する機会を与えていただきました。
このような視点でIntel Galileo Development Boardが私にどのように見えたのか、そんな感想を書いてみます。
プラスのポイント
1台2役
Arduino互換としての一面と、Linuxが動作するマイコン・ボードとしての一面がIntel Galileo Development Boardにはあります。この2つが1枚のボードに収まっている点はプラスとなるポイントだと考えます。同じボードを使って言語あるいは環境だけを変更する、というのは学習者に抵抗感も少なく、使用するハードウェアの共有もできるわけです。このボードを教育用に位置づけて発表したIntelの判断は正しいと思います。視点を変えて同じことをもう一度してみるというは、自身が行っている作業を再確認(反復)して、学習につなげるためには大きなプラスの作用を持つのではないかと、私自身の経験から思います。※1
私が使用する場合にもArduinoとして比較的手軽な開発から、Linux上で動作する各種ソフトウェアの応用や自作ソフトウェアの構築まで行うことが可能であるというボードはとても魅力的に映りました。
ArduinoのShieldをLinuxで触れる
ArudinoのShieldを物理的に装着し、特別なことをせずにそのままLinux環境からもアクセスできるのはメリットでしょう。このIntel Galileo Development Boardのほか、いくつかのLinuxの動作するArduino互換ボード(例えば86Duino)もありますが、Intel Galileo Development Boardの方はIntelという巨大企業のバックがあることやその影響力、50,000枚も各国の大学などに配布されること、Arduinoプロジェクト認定の公式ボードであることなど、プロジェクト全体としての規模の大きさは、横の広がりを持つために必要な要素がそろっています。
そういったものを確保できるのは、Intel Galileo Development Boardのプラスのポイントになるでしょう。※2
独自のOSビルドが可能
初期状態ではYocto ProjectのLinuxディストリビューションPoky 9.0を採用していますが、これをビルドするために必要となるIntel Quark SoC X1000およびIntel Galileo Development Board用のBoard Support Package(BSP)やそれを使うためのドキュメントも公開されており、これを参考に作業量は多くなるものの他のディストリビューションや、他のOSをブートさせる試みに対しても参考にもなるものが揃っています。
最新のIntel Quark SoC X1000に触れる
やはり、初物の「Intel Quark SoC X1000」に触れることができるという点も挙げないわけにはいかないでしょう。一般購入の一部の人はこの点に注目してIntel Galileo Development Boardを購入しているのではないかと思います。※3
マイナスのポイント
Shieldの互換性の問題
他の公式Arduino系と比較して、使用できるボードが少ないのが気になります。今後、Arudino IDEやそれに搭載されるライブラリーなどの改善によって変わってくるのだろうとは思いますが、現時点ではやや厳しいと言わざるをえません。
「Intel® Galileo Shields List」に掲載されるShieldが増えるとともに、未知の(ユーザー作成の)Shieldに対する互換性が高まっていくことを期待するところです。
グラフィック機能を搭載していない
IAアーキテクチャ採用ということで、多くの人々がデフォルトで搭載するLinuxに限らず、「MS-DOS」や「Windows」を動作させられるのではないかと期待を持ちました。しかし、メインチップのIntel Quark SoC X1000やボードとしてのIntel Galileo Development Boardはこれらの動作に必要な要素のうち「グラフィック機能」を持っていません。
また、IAアーキテクチャでも32ビットということで、WindowsあるいはMS-DOSのサポートにはUEFIのオプションであるCSMが必要な件には、現時点で対応していないように見受けられます。
これは、当初Intelが発表した「IAアーキテクチャ」採用のボードというニュースを聞いて多くの人が期待したことを実現できていないという点でマイナスのポイントとなっていると考えられます。
もちろん、Intel Galileo Development Boardが目指している立ち位置はArduino互換ですから、それはそれで仕方がない割り切りなのですが、初物のチップであるIntel Quark SoC X1000に注目するという立場からは、この仕様はちょっと残念に思えたことも確かだと思うのです。
Arduino互換としてもLinux搭載マイクロボードとしても立ち位置が微妙
これは、2面性を持つボードの宿命であるともいえるのですが、いずれの立場としても他のライバルとなりうるボード類、例えばLinux系であればRaspberry Pi系やBeagle Bone系などのグラフィック機能まで持ちながらGPIOや専用のインターフェースを持つボードに対して優位に立っているとは言えず、またArduino互換ボードとしてもサポートするShieldの弱さから立ち位置が微妙であるという点です。
私自身の目的に対する評価
最初に書いたように、私は一般的なWindowsパソコンの枠組み内で自分自身でちょっとした回路を作成して駆動することの煩雑さを避け、マイコン・ボードの自由に扱えるGPIOに注目したのがスタート地点です。そうしたことを実現するためのプラットフォームとしては、Intel Galileo Development Boardはとても魅力的に映りました。それは、すでに習得済みのIAアーキテクチャであることに加え、Linuxベースであるということで知らない環境ではなかったということが大きいです。
私は仕事としてマイコン・ボードを扱ってはいません。なので、ARMに対する理解もIAアーキテクチャには劣るものです。そんな私であっても困ることなく扱えるのではないか、という期待がありました。また、Intel Quark SoC X1000の仕様がIBM PC/AT互換ベースであったため、そのうえで動くLinuxについても既存の知識が生かせるであろうと思えたことも、大きなプラスの評価につながりました。
さらに、これだけIBM PC/AT互換に近いボードであれば「MS-DOSやWindowsを動かせるのではないか」という期待が潜在的にあったのは事実です。これは仕様の理解を進めるにあたって、難しいということがわかり、この点については残念に思いました(もちろん、完全に不可能ということはありませんが、いろいろと突破しないとならない壁があります)。
ただ、これは当初のGPIOで自分自身のちょっとした回路を駆動しようということから見れば完全に枝葉の話であり、よくよく考えれば現状の仕様でも十分であるということも事実でした。そんなわけで、私個人としては手元に届いてからすでに2週間近く経って手になじんだIntel Galileo Development Boardを今後も使っていきたいという意味で、プラスの評価をしたいと思います。
日本でも普通に購入できるようになったら、私は「Intel Galileo Development Board」改め「インテル Galileo 開発ボード」を購入するつもりです。
もう一つの製品ラインがあればよかったのかも?
現状ではArudino互換でありながら、Linuxが動作するマイコン・ボードという1枚のボードIntel Galileo Development Boardのみが存在していますが、同時にRaspberry PiやBeagle Board Blackに相当するボードもあれば、Intel Quark SoC X1000の存在を初めて聞いた多くの潜在的なユーザーが一番に思い浮かべる期待(=IAアーキテクチャで動作する既存のOSを動かすということ)にこたえることができたのではないかと思います。
Intel Quark SoC X1000は、現時点で組み込み方面に対する挑戦者であり、数多くのファンを獲得することが必要です。その時に、ユーザー・フレンドリーにグラフィック出力をできるボードがあれば、Arduinoとは異なる方向にも同時にアプローチできたのではないかと思えるのです。
とはいえ、次の私の疑問を考えると、その選択肢はIntelにはなかったのかもしれません。
初めてのIntel Quark SoC X1000搭載ボードを教育向けメインとしたことについて
正直なところ、Intel Quark SoC X1000の発表からIntel Galileo Development Boardの発表までの流れは、今までのIntelらしくない戦略だと思います。今まで最初の製品として、教育向けをメインとしてリリースされたボードおよびチップはないでしょう。このことは、Intel Quark SoC X1000のIntel内部での発表時点の立ち位置を反映しているのではないかと思えます。今までのIntelは市場を見据えて製品を開発して投入してきましたが、Intel Quark SoC X1000の場合には、Intel Internet of Things(IoT)という市場が後付けなのではないかと思えるのです。私にそのことをさらに印象付けたのは、Intel Quark SoC X1000の発表よりも後にIntel Internet of Things Solutions Groupを立ち上げたことにあります。
このように考えると、Intel Quark SoC X1000は、Intelが公式に発表したチップには珍しく、本当の意味で社内向け評価・開発用のチップであって、それ以上ではなかったのではないか…? とも思えてきます。特にExtreme Editionでもなんでもないチップの接頭辞が「X」というのも、本当に今までのIntelらしくありません。まるで開発中とかβとかいう意味合いで扱われる「X」のイメージが強いように思います。
いずれにしても「よいボール」が投げられるとよいですね!※4
まとめ
正直、私自身が思いついたことを書いただけで、全然まとまっていないのは理解しています。しかし、それを含めて私のファースト・インプレッションだということでご理解をいただければと思います。
本当に久しぶりにマイコン・ボードをいじったのですが、本当に楽しかったです。この感想が私のすべての感想の源だと思います。
簡単に買える、Raspberry PiやBeagle Boneシリーズ、Arduinoシリーズに加わる形でIntel Galileo Development Boardがマイコン・ボード市場を活性化し、ハードウェアに近いレベルでプログラムを書く人が増えればいいなぁ、と期待しています。
Webだけじゃないんです! プログラムの世界は! モノを動かすプログラミングも楽しいですよ!
- 「なんとなく調整しているうちに動いた」ではなく「なぜ動いているのか」を理解するためには視点を変えて繰り返して再コードをするのは学習にとって実に有効だと私は考えています。
- 1つのマイコンボードで書いたコードが他人のマイコンボードで実行できる可能性が広がるというのは、コミュニケーションとともに知の輪を広げる助けになると思います。
- 実は私もこの側面でIntel Galileo Development Boardに興味を持ったというのも事実です。今後時間が取れたらいろいろと試してみたいと思っています。
- ヒント:IoT部門を率いる方のお名前で検索してみてください。