たまたま「NI myRIO」に触れる機会がありましたので、その機能を簡単に紹介したいと思います。
「NI myRIO」は日本ナショナルインスツルメンツ(NI)の教育向けハードウェア です。myRIOと書いて「マイリオ」と読みます。同社はこの他にも「~RIO」シリーズの製品を多数販売しています。
▲myRIOの外観です。中央に見えるのがXilinx(ザイリンクス)社の「ZYNQ(ジンク)」というSoCです。内部はデュアルコアARM Cortex-A9プロセッサとFPGAが1チップ化されています。
電源はACアダプタで、電圧はDC6~16Vです。かなりアバウトな電圧でも動作するようです。
USBポートを通じてパソコンでプログラミングをすることができます。USBのホスト側のポートも1つ付いていますので、USBカメラを接続することもできるようです。
Wi-Fiにも対応しています。
▲NI miniSystemsポート(MSP)コネクタ。コネクタの形状が「myDAQ」という測定器と共通になっているそうです。
▲NI myRIO拡張ポート(MXP)コネクタ。デフォルトではDIOの他、アナログ入力、アナログ出力、UART、SPI、I2C、PWMなどが割り振られています。
↓ハードウェアの詳細
http://www.ni.com/product-documentation/14604/ja/
FPGAが使えるメリットとしてはフィルタなどの高速な信号処理が行えるということです。倒立振子制御などのリアルタイム性が要求される開発にも向いています。
プログラミング言語は主にNI LabVIEWです。LabVIEWには最低限myRIO用のモジュールが必要です。FPGAを書き換える場合にはFPGA用のモジュールも必要になります。
↓次のぺージが参考になります。
http://www.ni.com/product-documentation/14603/ja/
myRIO側のOSは何種類か存在しますが、LinuxRTの場合はEclipce(C言語)で開発できます。
金額的な話としては、myRIO本体は教育現場(アカデミック)の場合、通常の半額くらいで購入できるようです。その他、FPGAモジュールまで含んだ状態のLabVIEWが必要で、そのライセンス料は最低でも1人あたり23万円ほどです。複数人でソフトウェアを利用する場合はサイトライセンスを購入します。
↓次のページが参考になります。
http://japan.ni.com/academic/sitelicense
正確な値段についてはショップなどにお問い合わせください。
≪Getting started≫
▲myRIOをパソコンのUSBポートに接続した様子です。ここではGetting startedを選択しました。Lab VIEWが起動します。
▲Getting startedの最初の画面です。
本内に内蔵されている3軸の加速度センサーの動作を確認します。
▲ブロックダイアグラムに加速度センサーを読み取るプログラムが表示されました。
テンプレートから自動生成したものです。
▲プログラムを実行しました。
フロントパネルに加速度センサーの値が表示されています。
≪FPGAのプログラム≫
▲続いて、FPGAを使ったサンプルとして、ユーザー定義LEDを点滅させるプログラムを紹介します。ブランクのプロジェクトを新規作成して、myRIOを登録しました。
▲「LabVIEW FPGA」を使ってブロックダイアグラムにFPGA用の回路を作成します。
FPGAの回路設計というと、ものすごい高度なスキルが必要であるはずですが、これを使えば従来のLabVIEWのプログラムと同じ感覚で作ることができます。
画面内の黒いワクが「Whileループ」です。このループの中で処理を繰り返します。レジスタの値を「NOT」で反転し続けることで、「LED0」を点滅させています。「待機」はループの実行速度を遅らせるためのものです。
作成したプログラムはXilinx用に変換して、コンパイルします。この規模のプログラムの場合、処理が完了するまでに5分くらいかかります。
▲実行しました。見事、「LED0」が点滅しました。成功です。
動画にしてみました。
、、、
最後にmyRIOを使ったロボットを紹介します。
これでmyRIOのスゴさが実感できるかもしれません。
▲カメラで画像を認識するロボットです。iPadで操作している点にも注目です(youtubeより)。
▲クアッドコプターです(youtubeより)。
▲倒立振子制御を使った2輪のロボットです。コンパクトに収まっています(youtubeより)。