Intel(R)Galileo 開発ボード
プレミアムレビュー
ファーストインプレッション
Intelの低消費電力x86 CPU、Intel Quark SoC X1000を搭載した「インテルGalileo開発ボード」のレビューになります。
「インテルGalileo開発ボード」は、Arduinoとの互換性に配慮して設計された、ホビー向けの開発ボードで、Arduino用の拡張ボード「シールド」の流用、Arduino用のスケッチ(プログラム)の流用が容易な作りになっているそうですので、早速使ってみます。
開封編
外箱と、箱の中に「What will you make?」とあります。さて何を作ろうかなとゆう
思いになりました。
外箱の底面と、内部の底面にボードのイラストがありました。
中には、Galileo本体と、ACアダプターと各国用プラグが入っていました。
Intel Galileoについて
1.電源
今迄見てきたマイコンボード等は、ボード上のUSBポートから給電するだけで動作するものが多かったですが、Intel Galileoは、ACアダプタからの給電になります。
そこで、付属のACアダプタの出力が5V/2Aなので、電源ケーブルを作り、モバイルバッテリーで動作すようにすれば、色んな用途に使えそうです。
2.CPU
Intelの低消費電力x86 CPU、Intel Quark SoC X1000を搭載していて、400MHzで動作しているようです。
3.OS
Arduino互換のソフトウェア環境と、それとは別にLinux BSP(Board Support Package)も提供され、どちらでも利用可能となっていますが、今回私は、マイコンボードとしてGalileoを使用するので、取り敢えずArduino互換環境を構築してみました。
4. Arduino互換性
Arduinoとの互換性に配慮して設計された、ホビー向けの開発ボードで、Arduino用の拡張ボード「シールド」の流用、Arduino用のスケッチ(プログラム)の流用が容易です。
5.グラフィック機能
グラフィック機能、HDMIポートを持ち、Androidを載せることもできるRaspberry Piとは異なり、Intel Galileoはグラフィック機能を持たず、UEFIでブートする都合上、Windows、MS-DOSを起動させることは困難な様です。
6.Ethernetポート
ボード上にEthernetポートがあり、Galileo用Arduino IDEに付属のEthernetライブラリで使える他、Galileoに搭載されたLinuxからも利用できるそうです。
7.Mini PCIe
基板の背面に、Mini PCIeコネクタが有り、ここにWiFiカード等を挿入可能で、WiFiについては、Galileo用Arduino IDE付属のライブラリで、Arduino互換にて使えるとのことです。
8.MicroSD
ボード上にMicroSDソケットがあり、Galileo用Arduino IDE付属のライブラリでArduino互換にて使える他、ここにブート用のファイル「LINUX IMAGE FOR SD for Intel Galileo」を書き込んで置くと、Linuxが起動可だそうです。
9.USB Hostポート
Arduino IDEとのやりとりをするのに使うUSB クライアントポートのほかに、USB ホストポートを搭載し、Arduino IDEのUSB Hostライブラリで利用可能です。
セルフパワーのUSBハブが接続出来れば、色々使えるんですがね。
動作確認
1.ソフトウエアのダウンロード
Galileoの場合、Arduino互換のソフトウェア環境と、それとは別にLinux BSP(Board Support Package)も提供され、どちらでも利用可能となっていますが、今回私は、マイコンボードとしてGalileoを使用するので、取り敢えずArduino互換環境を構築してみましたが、今回のミッションが終了したら、Linuxとしても、使ってみたいです。
ソフトウェアは、Intel Makers Communityからダウンロードできます。
https://communities.intel.com/docs/DOC-22226
私のPCは、Windows 8.1環境なので、「Intel Galileo Arduino SW 1.5.3 on Windows」をダウンロードしました。
zipファイルなので展開しますが、この際に展開先を"C:\"にする必要があるそうです。実際は別の場所でもいいそうですが、Arduino IDEからg++を呼び出すにあたり、ロングファイルネームに対応していないようで、C:\Program FilesとかC:\Program Files(x86)ではダメだそうです。また、同時にGetting Stated Guideも入手してみました。
https://communities.intel.com/docs/DOC-21838
2.PCとの接続
1.まずIntel GalileoにACアダプタを接続電源ONにし、PCとIntel GalileoをUSBケーブルで接続します。この順序を逆にすると、故障する恐れがあるので注意が必要です。又取り外す際は、USBケーブルを残した状態でACアダプタの電源をOFFにしないように注意しましょう。
Getting Started Guideによれば「ACアダプタを挿さずにUSBを接続するとボードが壊れる可能性がある」と警告されています。
2.デバイスマネージャーでGadget Serial Driverが表示されているのを確認し、「ドライバの更新」をします。
3.Driverの指定で、先に展開した、C\:Galileoを指定して更新します。
更新が完了すると、デバイスマネージャーのポートのところに、Galileoが認識されました。
4.Intel Galileo 用Arduino IDEを起動して、ファームウェアのアップデートをします。
「ツール>シリアルポート」を見て、私の環境でIntel GalileoはCOM4で認識されているので、COM4を選択します。
「ヘルプ>Firmware Update」を実行すると、Galileoの電源は、ONになっていますか?と確認が出ますので、「はい」を選択します。
インストールされているファームウェアより新しいものが見つかりました。アップデートしますかの確認が出ますので、「はい」を選択します。
約6分位で終了しますので、「了解」を選択してアップデートを終了します。
3.スケッチの動作
Intel Galileoのデジタルの13番は、基板上のLEDに繋がっているようですので、点滅させてみます。
1.Intel Galileo 用Arduino IDEを起動して、「ファイル」を開き、「スケッチの例>01.Basic>Blink」を選択します。
2.「ファイル」を開き、「マイコンボードに書き込む」を選択すると、基板上のLEDが点滅始めました。
書き込んだスケッチは、USBケーブルを引き抜きしてもそのままですが、 Galileoの電源を一度切ると消えてしまい、継続されませんでしたが、「LINUX IMAGE FOR SD for Intel Galileo」を書き込んだ、MicroSDカードから起動すると、スケッチが保存されるようになりました。
ファーストインプレッションまとめ
現在Linux BSP(Board Support Package)動作の方は、確認していませんが、Arduino互換のソフトウェア環境の方は、取り敢えず確認出来ました。
感想
Arduinoに関しては、初心者の私でも、少しずつですが、使えるようなり今後が楽しみです。
ただ、USBケーブルを接続する際に、先にGalileoに通電しないと、壊れる可能性があることや、電源切るとスケッチが、消えてしまったり(これに関しては勉強不足で、良い方法があるかもしれません。)シールドが使えないものがあったり、ちょっと躓いてます。(;´・ω・)
これから、キット、パーツ等が届きましたら、レビュー課題を行っていきます。(2/28着弾しました。)
3/3追記
MicroSDカードから起動すると、スケッチが保存されるようになりました。
レビュー課題編
概要
今回のミッションは、Galileo(Arduino互換)+Bluetooth+Androidスマホでコントロールする、タンクを製作することです。
ハードウェア仕様
パーツ、キット他
1.Intel Galileo(Arduino互換)モバイルバッテリー電源供給仕様
Anker Astro M3モバイルバッテリー+電源供給ケーブルDC-5521A
2.タミヤ楽しい工作シリーズNO.108タンク工作基本セット
3.タミヤ楽しい工作シリーズNO.168ダブルギヤボックス
4.タミヤ楽しい工作シリーズユニバーサルプレート
5.モーターシールドRev3
6.「Bluetoothモジュール」:FB155BC
7.コントロール用Androidスマホ
8.乾電池BOX、線材、ユニバーサル基板等
ハードウェア組み立て
ギヤボックスの組み立て
タミヤ楽しい工作シリーズNO.108タンク工作基本セットには、シングルモーター駆動のギヤボックスが付属していますが、前進後退、旋回をモーターの回転制御だけで行いますので、今回は、タミヤ楽しい工作シリーズNO.168ダブルギヤボックスを使用します。
ギヤボックスの説明書に従い組み立てます。今回はタンクに使うので、低速高トルクのギヤ比を選択しました。
ギヤボックスにモーターを取り付けると電源コードのはんだつけが、しずらいので先に付けて於きます。今回はモーターシールドのネジで固定する端子台に接続するので、先端もはんだつけしといた方が、良いでしょう。
私は、プレットボード用ジャンパーコードを使用し、テスト等で簡単に延長出来るようにしました。
ギヤボックスの組み立て完了後は、モーターの取り付けです。
シャーシ、キャタピラの組み込み
タミヤ楽しい工作シリーズNO.108タンク工作基本セット内にあるトラック&タイヤセットと、木製シャーシにギヤボックス電池ケースを組み込みます。
ここで、問題が発生しました。ギヤボックス変更に伴い付属の木製シャシーのサイズが小さい為使えませんでした。
そこで、 タミヤ楽しい工作シリーズユニバーサルプレートを急遽使うことにしました。
またもや、ギヤボックスが大きいのかユニバーサルプレートを切り欠くことになりました。
シャーシ廻りの組み立て完了
総合的組立
モーターシールドを取り付けたGalileoや、Bluetoothモジュール、モバイルバッテリー、電池ケース等を、タミヤのユニバーサルプレートに取り付けし、結線していきます。
配線中
ハードウェア完成
全てのパーツ、結線が完了し一応完成しました。これから、スケッチの書き込みや、Androidからの、コントロールが出来る様に頑張って実装していきます。
モバイルバッテリー取り付け状況
上部から撮影
Galileo側のスケッチ構築
モーターシールドの動作確認
「CarTest.ino」とゆうサンプルスケッチで、モーターシールドと2つのモーターの回転方向の確認が出来ました。
*このスケッチでは、前進3秒、後進3秒の繰り返しの動作をすることができます。
問題なく動作し、回転方向等は正常でしたので、前後だけの、単純な動作だけですが動画掲載しました。
キャタピーラを外しモーターの動作と、モーターシールドの出力を撮った動画です。
走行させた動画です。ギヤ比をもう少し低くした方が良さそうです。
ここまでは、順調でしたが次の項目で躓いてしまいました。(-_-;)
Bluetoothモジュールの動作確認と、ペアリング
今回私が使用した、FB155 v2.2.1というFirmtech製のモジュールをAndroid端末からすんなりペアリングするためにはBTconfigなるソフトを使ってセットアップしてやる必要があるそうでした。
http://firmtech7.cafe24.com/bizdemo4649/download/util_eng.php
からFirmtech utility、Bluetoothをダウンロードして展開してBTconfigを用意しておきます。
1.FB155 BluetoothモジュールとGalileoを配線する。
FB155 Vcc (3.3V) <----> Galileo 3.3V
FB155 GND <----> Galileo GND
FB155 RXD <----> Galileo RX0 (D0)
FB155 TXD <----> Galileo TX0 (D1)
2.GalileoとPCをUSBでつなぎ、コントロールパネルからデバイスマネジャーを呼び出してポートを見てCOMポート(例COM6)の番号を確認する。
3.この(例COM6)を使って、次のスケッチをGalileoに書き込む。
void setup() {
}
void lop() {
}
4.USB結合をそのままにしてBTconfigを起動する。
Serial Openに(例COM6)と入れてOPENしてREADするとOverviewにFB155のパラメータが表示されるので、Security Parametersを Authentification: ENABLE, Pin Code: 0000, Encryption: DISABLEにセットする、UART ParametersのBaud rate: 9600を確認してWRITEのボタンを押す。これでペアリング出来るようにセットされるようです。
上記の方法で、ペアリングを試みたのですが、エラーにより先に進めませんでした。(;´・ω・)
Arduino Unoを購入したので、これから接続してファームウェアのアップとかも検証してみます。
ペアリングが出来れば、「BT-RemoconCar.ino」とゆうスケッチで、Androidと通信ができるようです。
ここでも、スケッチ検証途中で、エラーが出てしまいました。(Car Test.inoは大丈夫でした。)
Galileoは、Arduino互換とゆうことですが、一筋縄では動かないですね。
ここまでの動作確認を本家Arduino Unoを使い検証してみます。
もし、Galileoで手こずるようでしたら、申し訳ございませんが、Arduino Uno+Bluetooth+スマホで動作させてから、再度Galileoにて挑戦します。
本日、Arduinoと接続してみましたが、Buletoothモジュールの動作は問題なかったです。
Bluetoothモジュールのセットアップ
Serial OpenにCOM8と入れてOPENしてREADするとOverviewにFB155のパラメータが表示されるので、Security Parametersの Authentification: DISABLE Pin Code: BTWIN Encryption: DISABLEの確認と、UART ParametersのBaud rate: 9600を確認してWRITEのボタンを押すとペアリング出来るようにセットされました。
Androidスマホとのペアリング
Androidスマホ側では設定アプリを呼び出して、BluetoothにFB155v2.2.1が表示されているのを確認してペアリングに進みペアリングのコードは「BTWIN」を使い、キーボードから入力するとペアリングが完了しました。
PC~Arduino~Androidスマホ間のシリアル通信
1.スマホに「Bluetooth Terminal」アプリの「Blue Term」をインストールします。
2.アプリ起動
3.メニューから、「Connect device」を選択する
4.ペアリング済の「Bluetoothモジュール」がリストアップされますので、「FB155v2.2.1」を選択します。
5.接続が完了すると、画面右上に「connected:FB155v2.2.1」と表示され、ArduinoとAndroidが接続されます。
6.とりあえず、このまま接続状態で、PC側にも「Teraterm」アプリをインストールします。
7.Android側にもどり、適当な文字を入力すると、「Teraterm」側にその文字が表示されました。
8.PC側から、文字を入力すると、Android側の「BlueTerm」に表示されます。
以上で、ArduinoとAndroidの間で無線シリアル通信ができるようになりました。
スケッチの書き込み
Galileoでも同じような通信ができるようにもう少し検証してみます。
まあこれが、開発の醍醐味でしょうね。
ここで、Androidアプリを作る前に、先にインストールした「BlueTerm」を使い、文字列コマンドで操作してみます。
文字列コマンド
前進 AF
後退 AB
右折 AR
左折 AL
1. 「BlueTerm」を起動
2. メニューから、「Connect device」を選択
3. ペアリングの済んでいる、モジュール名を選択
4. 画面右上にモジュール名が表示されると、接続完了
5. 文字列コマンドにて動作確認
文字列コマンドにて、前進、後退、右折、左折の動作させてみました。(撮影の都合上キャタピラーは外してあります。)
スマホから、文字列を送信したら、正常に動作しました。
これまでの、苦労を思うと少し感動しました。
これで、一応最初の目標である、Arduino+Bluetooth+Androidスマホでコントロールするタンクは完成です。
ここまでできれば、後はスマホ側にコントロールアプリを入れることで、タンクをBluetooth経由でスマホで自由にコントロールできます。
Android側の制御アプリの作成
Android開発環境の構築
Androidアプリケーションを開発するために必要となるAndroid SDK(Software Development Kit)と、Javaの開発でよく利用されるEclipseをインストールします。
現在、EclipseやADT(Android Development Tools)というプラグインがパッケージとなったAndroid SDKが用意されています。
私はWindows環境で開発するので、このAndroid SDKをインストールして環境構築を行いました。
http://developer.android.com/sdk/index.html
「Android Developers」サイトからAndroid SDKをダウンロードします。
1.「Download the SDK ADT Bundle for Windows」ボタンをクリックします。
2.利用規約の同意画面が表示されますので、チェックボックスにチェックし、32ビット版Windows環境の場合「32-bit」、64ビット版Windows環境の場合「64-bit」を選択して、「Download the SDK ADT Bundle for Windows」ボタンをクリックしてダウンロードします。
3.解凍したフォルダを開いて、正しく解凍できていることを確認しします。
4.これでAndroid SDKとEclipseのインストールは完了ですので、Eclipseの起動確認をしておきます。
解凍したフォルダのeclipseフォルダにEclipseを起動するexeファイル「eclipse.exe」がありますので、そのファイルをダブルクリックします。
5.起動すると「Workspace Launcher」ダイアログが表示されますので、Workspace(ワークスペース)のフォルダを選択します。
ワークスペースを選択したら、そのまま「OK」ボタンをクリックします。
6.これでEclipseの起動が完了します。
Googleに送信されるSDK使用の統計情報のためのダイアログが表示されますので、「Finish」ボタンをクリックします。
7.Eclipseの開発画面が表示されます。これでEclipseの起動確認は完了です。
対象のバージョンのSDKコンポーネントを追加
1.インストールしたAndroid SDKのフォルダにある「SDK Manager.」をクリックします。
2.「Android SDK Manager」ダイアログが開き、インストール可能なSDKコンポーネントの一覧が表示されます。
プロジェクトに、「RemoteControlCar」を作成します。
コンパイルして、Androido端末に実装します。
ここで、またもや躓いてしまいました。(エラー吐きまくりダメでした。)(-_-;)
又一つ、解決しなければいけない問題が出てしまい頓挫してしまい、現在デバック中です。
ほんと難しいです。
今後も挑戦が継続しますので、進展がありましたら追記して行きますのでよろしくお願いします。
今後の課題
1. Galileoと、Bluetoothモジュールとの接続
2. Androidアプリの完成 2014.4.10完成しました。
3. タンクにWebカメラ搭載しスパイタンクとして使ってみる。
まとめ
約2か月くらいかけてGalileoと格闘してきましたが、Arduino互換でインテル Quarkプロセッサー搭載しLinuxが走るインテルのGalileoですが、Arduino互換ということであれば、既存のシールドやパーツが接続でき(私の場合Bluetoothモジュール他)、スケッチの転用もできそうだ。……と思っていましたが、現実はそんなに甘くなかったです。(-_-;)
ここで、分かったことですが、従来からArduino用として市販されているシールド(拡張ボード)がそのまま使えるとは考えない方が良さそうです。
インテルのサイトでは動作確認が取れているシールドのリストが掲載されていましたが、私が必要とした、シールドは無かったです。
今後Galileoのファームウェアのアップデートやライブラリの更新により、Arduinoとの互換性が向上して欲しいです。
まあ開発の醍醐味と、苦しみを味わえて今回は本当に勉強になりました。
私の個人的感想ですが、「インテル開発ボードGalileoは、電子工作に関しては、帯に短し襷に長し」とゆう感じでした。
今後の更新スペース
本日(4/10)Androidアプリが完成しました。
こちらを参考にさせて頂き、Andoroidプログラム内の、AndroidManifest.xmlを一部手直しして、完成しました。
LGL22 Androidスマホにアプリを転送してみました。
起動画面です。
ここで、Bluetooth機能をオンにして、ペアリングの終わっているBluetoothモジュールを選択すると、通信が確立されます。
メイン画面は、11x11のマス目で構成され、下部の画像の様に、マス目をタッチした時に表示され、十字の交点がタッチされている領域になります。
タッチしている位置によって「前進」「後退」「右旋回」「左旋回」の指示が指一本で行えます。
マス目の中央をタッチしている時は「停止」状態です。
これで、Androidアプリが完成しました。
キャタピラーを外して車輪だけの回転だけですが、一応指一本でスマホから、Bluetooth経由でコントロール出来ました。
CLWさん
2014/03/07
ヒロ妨さん
2014/03/07
まだまだ、これからですが
こまめに更新していきますので、よろしくです。
タコシーさん
2014/03/07
私にゃ無理だ....とても無理
ブルートゥース利用なんですね 良い結果を出してくださいね
愛生さん
2014/03/15
頑張って下さいね。
mickeyさん
2014/03/16
とても興味惹かれるミッションです(主にタンク制御がw)
続きを楽しみにしていますね。
ヒロ妨さん
2014/03/16
愛生さん、
mickeyさん、
コメントありがとうございます。
色々挑戦してますが、難しいです。(^_^;)
ハード的には完成しましたが、肝心のソフトウェアで、手こずってます。
蒼-aoi-さん
2014/03/30
すごい!すごい!
面白そう!自分もやってみたくなります!
これはカバーしなければならない技術範囲が大きくて一大プロジェクトですね。
頑張ってください!
ヒロ妨さん
2014/03/30
PC自作より、面白くなってしまいました。(-_-;)
しかし、奥が深いです。
タコシーさん
2014/05/21
相当なスキルですよ....すごいや..
お疲れ様でした....
ヒロ妨さん
2014/05/21
今回のレビューで私自身大変勉強になりました。
又、企画があったら、参加したいです。
nekosogiさん
2014/07/12
このページを中心にして理解を深めることにします。
私も初めてなので、とても、今の私にあった内容だと感じました。
これから、詳細を確認します。
いいレビューをありがとうございました。