どうやら一筋縄ではいかないっぽいぞGalileo
さて、Arduino互換でインテル Quarkプロセッサー搭載しLinuxが走るインテルの『Galileo開発ボード』、サンプルスケッチでLチカもやってみた。Arduino互換ということであれば、さまざまな既存のシールドや部品が接続でき、スケッチの転用もできそうだ。……と思っていたのだが、どうやらそんなに簡単(いわゆるポン付け)で動くわけじゃなさそうなことがわかった。
↑ところでGalileoは普通に机に置くと基板が浮いているが、これは基板裏面にあるMini PCIeコネクターの端子と固定ツメが足になっているだけ。 |
Arduinoなどで電子工作をはじめる場合、Lチカ(LED点滅)の次にやることは普通の液晶をつないで、文字列や数字を表示させること。「Hello World!」という文字列で、つなげる液晶は2行キャラクタ(つまり文字を表示する機能しかない)モジュールというのが相場で、だいたい500~800円くらいで購入できる。
↑ピンにジャンパー線を挿す程度なら問題ないだろうが、上からシールドを挿すようなことをするなら裏面にあるMini PCIeコネクターの保護を考え、四隅のネジ穴に足(樹脂スペーサ)を取り付けておこう。 |
GalileoのIDEにもArduinoと同様に2行液晶(のコントーラーIC)を制御するライブラリ、Hello Worldという文字列を表示するサンプルスケッチが用意されているので、とりあえずつなげて試してみたのだが、動かない。
↑2行キャラクタ液晶(2行16桁)を接続するも……動かず。 |
Galileoコミュニティーをのぞいてみると、どうやらArduinoと互換性があるといっても各ピンから出る信号の立ち上がりタイミングとかパルス幅とか微妙な違いがあるようで、シンプルな機器でも従来のライブラリに依存するスケッチの多くは動作に問題があるか、さっぱり動かないようだ。
「えっ?互換性があるんじゃなかったの!」などと言ってもはじまらない。とりあえずコミュニティーでは「スケッチをこうするとこれは動くぞ」といった情報があったので参考にしてみると、うむ、確かに表示される。とはいえ表示は遅く、微妙に動作もArduinoとは異なるようだ。
↑スケッチに1行追加して、LCDへの出力信号を規定するといいらしいと聞いて、とりあえず表示はできた。 |
ちなみにこの2行液晶、4本の信号線を用いて(配線がもっと多いのは表示の明るさ調整やバックライトの電源もあるため)液晶側のコントローラーを制御するものだが、Arduino側のピンを表示だけで4本も使うと別の機器とつなげるのに足りなくなるので、現在ではI2Cというシリアル通信(最低2本のピンで動く)を使う液晶がよく使われている。が、さすがにピンの信号タイミングが違うのではシリアル通信どころではなくて、やはり従来のI2Cディスプレーも動かないようだ。
↑アナログ入力端子に可変抵抗(ボリウム)を接続、入力端子の数値を表示するようにスケッチにじゃっかん手を入れる。ボリウムを回すと数字が変わるのを確認してみる。 |
というわけで、従来からArduino用として市販されているシールド(拡張ボード)がそのまま使えるとは考えないほうがいい。インテルのサイトでは動作確認が取れているシールドのリストが掲載されている。
おそらくGalileoのファームウェアのアップデートやライブラリの更新により、ある程度Arduinoとの互換性は高まるとは思われる。
↑microSDカードにLinuxブートイメージを入れて起動できる。インテルのGalileoサイトに上がっているファイルをダウンロードし、microSDカードのルートに展開するだけだ。Galileoに転送したスケッチは、microSDカードに書き込まれるため、電源を一度抜いても消えない。 |
とはいえ、すでにArduinoとの互換性とは別に、すごく小さなLinuxマシンとして使い込もうとしている人もいて、microSDカードに記録してブートするROMイメージのほうをカスタムしたものも出ている。果たしてこの先Galileoがどう使われていくのか、可能性は幅広い。
↑スイッチサイエンスで販売しているシリアル-USB変換ボード。Galileoのステレオ出力ポートに接続し、USBを通してシリアル変換することでGalileoのLinuxターミナルとして使える。 |
現在のところ、『Galileo開発ボード』は名前のようにあくまで『Galileo』というボードをどう使うか開発するためのもの。LANやSDカード(もちろん処理速度の速いCPUも)が標準で付いているというのは魅力だが、やはりArduinoとしてなにかを作るのであればArduinoボードを使ったほうがよさそうだ。
↑これはSTマイクロが販売するNucleoボード・mbed開発環境が使えてArduinoのシールドが挿せるようなピン配置になっている。 |
もっとも、Arduinoのピン配置と互換性という点では最近mbed(ARMのCPUを使う開発ボード)の勢いが妙に活発になってきている。従来のArduinoシールドやライブラリがそのまま使えるわけではなく、mbed開発環境でArduinoシールドがそのまま使えるわけでもない。しかし、新たにプログラムを書いてなにかを動かしたり機器と接続したりするのであれば、こちらという選択肢もあるのが迷うところ。
↑これはフリースケールの『FRDM-KL05Z』。こちらもmbed開発環境が使えてArduinoピン互換。20ドル/スイッチサイエンスでは1995円と、とんでもなく安い。 |
Arduinoとの互換性はこの先改善するとは予想されるが、Galileoはどうやらプロトタイピングでモノづくりのベースとするよりも、Linuxでいろいろ遊んでみるうちにArduinoでもmbedでも(そしてRaspberry Piでも)ない楽しみ方が生まれてきそうな予感がする。
■関連サイト
インテルGalileo シールドの互換性リスト
週刊アスキーの最新情報を購読しよう
本記事はアフィリエイトプログラムによる収益を得ている場合があります