μITRONでロボットが動く

2009年6月3日(水)
軽部 禎文

どんなソフトウエアで動かすか?

まず、制御対象となるロボットを作成しましょう。教育用レゴ マインドストームNXTの基本セットには、ホッケーロボと呼ばれるロボットの組み立て図が入っています。この組み立て図を参考にしながら、ロボットを作ります。およそ1時間で作れると思います。

それでは、教育用レゴ マインドストームNXTを動かしてみましょう。

レゴ社からは、教育用レゴ マインドストームNXTを動かすためのソフトウエアとして、絵をつないでプログラムを作成する専用のソフトウエア(ROBOLAB(TM)や教育用NXT ソフトウエア)が販売されています。本記事では、これらの専用のソフトウエアを使わずに、C言語で動かす方法について紹介します。

レゴ社から提供されているソフトウエア以外でロボットを動かす場合には、レゴ社の保証範囲外(※)となります。この記事を読んで実際に動かしてみる場合にも、使う人の責任になることを承知した上で使ってください。

C言語によって動かす開発環境はいくつかありますが、今回はnxtJSPという環境を使います。この環境を用意するには、次に紹介するようないろいろなプロジェクトからファイルをダウンロードします。どのプロジェクトも世界中の有志の活動によって成り立っていますので、彼らの貢献に感謝しながらダウンロードしましょう。

※レゴ社のサポート対象外であると共に、株式会社アフレルや筆者が動作を保証することはできません。

環境を整えよう

nxtJSPは、教育用レゴ マインドストームNXTのデバイスを制御するためのI/OドライバーやTOPPERSプロジェクトの成果物の1つであるTOPPERS/JSP(μITRON)をNXT内蔵のATMEL AT91SAM7S256に移植したRTOSから成り立っています。

1.Cygwin(GNU make,SED,gcc++)をインストールします。
Cygwinは、Microsoft Windowsオペレーティングシステム上で動作するUNIXライクな環境を提供してくれます。使用するパッケージは,GNU make ver3.81-2, SED, gcc-g++ ver3.4.4-3です。http://www.cygwin.com/からSetup.exeをダウンロードして、インストールをします(インストール先はCドライブ直下をおすすめします)。
パッケージを選択する画面では、gcc-g++とmakeをインストールするようにしてください。SEDは、初めからインストールされるようになっています。
インストールしたフォルダは、この後の設定で参照するので、覚えておきましょう。また、UNIXコマンドや、コマンドラインの使い方について不慣れな人は簡単なコマンドの使い方になれておくとよいでしょう。
2.GNU ARM(GCC-4.0 toolchain)をインストールします。
GNU ARMは,ARM用にコンパイルをするツール群です。http://www.gnuarm.com/のFILESというタグをクリックします。開いたページにあるbinutils-2.16.1, gcc-4.0.2-c-c++, newlib-1.14.0, insight-6.4, setup.exeをダウンロードして実行します。インストールするフォルダは、この後の設定で参照するので覚えておきましょう(Cygwinをインストールしたフォルダ配下にGNUARMというフォルダを作成してインストールすることをおすすめします)。
コンポーネントを選択する画面では、[Floating PointUnit]と[Big Endian]のチェックをはずしてください。最後にCygwinのDLLを追加するかを選ぶ画面が表示されますが、追加の必要はありませんので必ずチェックをはずしておいてください。また、パスの環境変数の追加もしません。
3.レゴ マインドストームNXTドライバーをインストールします。
レゴ マインドストームNXTとPCを接続するためのUSBポートのドライバーです。ここ(http://mindstorms.lego.com/Support/Updates/)からMINDSTORMS NXT Driver v1.02をダウンロードしてインストールします。
4.nxtOSEK/JSPをインストールします。
nxtOSEK/JSPは,当初はnxtOSEKという名前で、TOPPERS/ATK1(旧:OSEK)をベースにしたNXT向けANSI C/C++開発/実行環境を提供していました。その後TOPPERS/JSPカーネル用の開発/実行環境が追加され、nxtOSEK/JSPとなりました。nxtOSEK/JSPをインストールすれば、どちらも使えるようになります。便利ですね。
ダウンロード先はこちらです。nxtOSEK_ver210.zipをダウンロードして解凍します(Cygwinをインストールしたフォルダ配下に解凍することをおすすめします)。
5.NeXTToolをインストールします。
このNeXTToolは、教育用レゴ マインドストームNXTにファームウエアやプログラムを転送するためのツールです。からダウンロードして、Cygwinをインストールしたフォルダ配下にnexttoolというフォルダを作成して、解凍したファイルを置いてください。

6.拡張NXTファームウエアを用意します。
http://bricxcc.sourceforge.net/からNBC/NXC firmwareをクリックして、lms_arm_jch.zipというファイルをダウンロードして解凍します。この中のlms_arm_nbcnxc_106.rfwというファイルを先ほど作成したnexttoolのフォルダにコピーしてください。
7.最後にパスの設定をします。
nxtOSEK/JSPをインストールしたフォルダ配下にecroboというフォルダが存在します。そのフォルダ配下のtool_gcc.makというファイルをテキストエディターなどで開き GNUARM_ROOTのパスとNEXTTOOL_ROOTのパスを、GNUARMとNeXTToolをインストールしたフォルダにあわせてください(おすすめのフォルダにインストールした方は、変更をする必要がありません)。
8.拡張ファームウエアを転送します。
インテリジェントブロックNXTを裏側から見て、USBポートに一番近い穴の奥に、リセットボタンがあります。電源を入れた状態で、リセットボタンを4秒以上長押ししてください。すると「プッ・プッ・プッ」という小さな音が鳴ります。ファームウエアが消え、ファームウエアアップデートモードと呼ばれる状態になります。この状態で、USBケーブルでパソコンとインテリジェントブロックNXTをつなげます。Cygwinを起動し、nexttoolをインストールしたフォルダをカレントディレクトリにして、以下を実行します。

./NeXTTool.exe /COM=usb -firmware=lms_arm_nbcnxc_106.rfw

しばらくすると、拡張ファームウエアが転送されて、インテリジェントブロックNXTにLEGOのマークが表示されます。この作業は、最初の1回目だけ実行する必要があります。

必要なファイルのダウンロードや、設定をする場合には、次のURLがとても参考になります。

nxtOSEKのインストール方法/nxtOSEK

http://lejos-osek.sourceforge.net/jp/installation.htm

詳細が知りたい場合には、上記サイトの「拡張NXTファームウエア+nxtOSEKのインストール方法」を参照してください。

株式会社アフレル
(株)アフレル所属。システム開発の経験を積んだ後に、ロボットを使った教育教材の開発や指導に従事。子供から大人まで、いかに楽しく学んでもらえるか悩みながら、日々、精進中。
http://www.afrel.co.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています