#nomenubar
Windowsマシンを持っている方はNQCの入ったライブCDあるいはライブUSBメモリをまず使ってみてください (ロボティクス入門ゼミの受講生にはCDの配布サービス・USBメモリのセットアップサービスを行っています)。 以下の説明を参考しながら Windows上でのプログラミング環境を整えるより、おそらく簡単だと思います。
WindowsでNQCを利用する場合には、NQCを単体で使用する方法とBricxCCという統合環境を利用する方法があります。テキストベースで行う(作業ディレクトリの変更などの)DOSの操作に慣れていなければ、BricxCCを使用するほうが無難でしょう。NQC単体で利用する場合には、エディタとしてWindows付属の『メモ帳』を利用することができます。
また USBの赤外線タワーをWindows XPで使用する場合や RIS2.0付属のCD-ROMが手もとにない場合には、LEGO社の配布している LEGO Mindstorms SDK2.5 も必要になります。さらに Windows Vista でUSBタワーを使う場合には別途プログラムが必要です
*1。
以下、DK2.5とBricxCCの入手とインストール手順について説明します。
2008年10月10現在、LEGO社のサイトからSDK2.5のページが消えてしまったようですので 以下、BricxCCの入手とインストール手順についてだけ説明します。USBタワーのドライバはまだLEGO社のサイトからダウンロードできるようですので入手先だけ記しておきます。インストール方法については付属のドキュメント(英語)を参考にしてください。 (2008-10-16追記)
ドライバ付属のドキュメントによるとこのドライバは Windows XP, 98/ME 用だそうで、Windows 2000はサポート外ですが、インストール方法の説明が載っています。Vistaについては記述がありませんでした。(2008年10月16日追記) が、ある受講生から、Vista でも問題なく使えた、という報告あり。(2008年11月16日追記)
ちなみにファームウェアはRIS2.0付属のCD-ROMに含まれています。 (付録ソフトの セットアップ後にみつかる 「Program Files\LEGO MINDSTORMS\Robotics Invention System 2.0\script\Firmware\firm0328.lgo」というファイルですが、ライセンス上の理由でここでは自由に配布することはできません。)
以上の説明が簡略すぎると感じた場合は、
MindStormsの洞窟 (macさんのページ)
にある
『SDK2.5で遊ぼう』や
『はじめてのBricxCC』
をぜひ参考にしてください。インストールの手順や設定などもステップごとに詳しく解説されています (もちろん遊び方も)。
NQC単体で使用する場合には、BricxCCのかわりに NQCのホームページ で配布されている バイナリ・パッケージ をダウンロード&インストールしてください。
MacOS X上でNQCを使用する場合は、NQCを単体で使う方法と MacNQCという統合環境 を使う方法があります。以下では MacNQC について説明します。
まず、 http://homepage.mac.com/rbate/MacNQC/BetaTest.html から OS X 用のバイナリ(MacNQC X)をダウンロードします (最新バージョンは 4.0b5 です)。 バイナリ形式は Stuffit X/Binhex と disk image の2種類があります。 Stuffit X/Binhex 形式のものはそのまま解凍します。 diskイメージ(dmg形式)の場合には、ダウンロードしたファイル MacNQCX4.0b5.dmg を クリックすると MacNQCX 4.0b5 というフォルダが開くので、その中身をすべて新しい別のフォルダにコピーします。 このdmg形式の場合には、別のフォルダに中身をコピーせずにdmgファイルをマウントするだけでそのままMacNQCを使用することもできますが、その場合は以下で説明するファームウェアをコピーしたり、設定を保存したりできません。
いずれの場合でも、フォルダの中の黄色いRCXの形をした MacNQC のアイコンをクリックするとMacNQC X が起動します。 起動後、上部のメニューから「MacNQC」→「Preference」を選ぶと必要な設定ができます。とりあえず必要な設定は、「Compiler」の「Target」で「RCX2」を選んでおくことと、「Communication」の「Device」で「USB: LEGOTower」を選んでおくことくらいでしょうか (USBタワーをあらかじめ接続しておく必要あり)。 あと「Editor」で文字のサイズを大きく(15ptくらいに)しておくとエディタが見やすくなります。
残念ながら付属のエディタでは、日本語(というかマルチバイト文字)はちゃんと扱えないようです。ということでプログラム中のコメント文は英語で書きましょう
ところでファームウェアはライセンスの関係でMacNQCには含まれていないので、直接 LEGO社のサイトからダウンロードする必要があります。
上のwindowsのインストールで紹介した SDK2.5 は残念ながら(?)Windows用のインストーラ形式なので、古いSDKのベータ・バージョン(ZIP形式)を使用します。
ダウンロードするには、http://mindstorms.lego.com/sdk2beta/default.asp にアクセスし一番下の「Go to Download Pages」に進んで、ライセンスを確認して同意したならば「I agree」ボタンを押します。
そこからダウンロードできる RCX2_SDK_BETA.zip というファイルを解凍するとfirm0328.lgo という名前のファームウェアが見つかります。
これを MacNQC X の firmware というフォルダにいれておけば、MacNQCのメニューからファームウェアを直接RCXにダウンロードできます。
2008年10月10日現在、SDK2.5 のページはなくなってしまっているので firmware は RIS2.0 付属のCD-ROM からコピーする必要があります。
DebianLiveを使う場合には、以下で説明していることは一切不要です!
最新のNQCのGNU/Linux用バイナリ・パッケージは公式には配布されていないようなので、ソースからコンパイルする必要があります。
NQC 3.1 の deb形式やrpm形式のバイナリが配布されていますので、それらを使うのが簡単です (Debian GNU/Linux については以下を参照)。
また、筆者(松本)は試していませんが、FreeBSDやNetBSD、Solarisなどの他のUNIX系のOSでも独自にビルドすればNQCが使えるようです
(ただしシリアルのIRタワーだけ?)。詳しくはソース含まれるPORTINGというファイルをご覧ください。
ところでNQCでUSBのIRタワーを使用するためには、Linux用のドライバが必要です。 Linux 2.6.1以降ではこのドライバはカーネルに標準で含まれていますが、カーネル2.4系では http://sourceforge.net/projects/legousb/ からソースをダウンロードしてコンパイルする必要があります (ここではその方法は省略します)。 また、NQCをコンパイルする際にはこのドライバのソースに含まれているヘッダファイルが必要です。 以下、NQCのコンパイルとインストールの手順を簡単に説明します。
wget http://bricxcc.sourceforge.net/nqc/release/nqc-3.1.r4.tgz wget http://jaist.dl.sourceforge.net/sourceforge/legousb/legousbtower-0.5.4.tar.gz
tar zvxf nqc-3.1.r4.tgz tar zvxf legousbtower-0.5.4.tar.gz
mkdir nqc-3.1.r6/rcxlib/LegoUSB cp legousbtower-0.5.4/include/legousbtower.h nqc-3.1.r4/rcxlib/LegoUSB/
cd nqc-3.1.r4 vi MakefileMakefileの中の
# USBOBJ = rcxlib/RCX_USBTowerPipe_linux.oとなっている行のコメントを外して
USBOBJ = rcxlib/RCX_USBTowerPipe_linux.oとします。 もちろん vi の代わりに別のエディタを使ってもかまいません。
vi rcxlib/RCX_USBTowerPipe_linux.cppUSB IRタワーのkernel標準のデバイス名は /dev/usb/legousbtower0 のようなので、あらかじめこのファイル内で正しく設定しておきます。 つまり
#define DEFAULT_TOWER_NAME "/dev/usb/lego0"という行を
#define DEFAULT_TOWER_NAME "/dev/usb/legousbtower0"に変更します。このファイルを編集するかわりに、あとでシンボリックリンクを作成したり、ドライバのソースのほうを変更してもかまいませんが、おそらくこの方法が一番楽でしょう。
make
su make install
export RCX_PORT=usbという一行を入れておくと毎回 -Susb というオプションをつける必要がないので便利です。
ファームウェアの入手については上の Mac OSX の説明を参考にしてください。
DebianLiveを使う場合には、以下で説明していることは一切不要です!
Debian 4.0 (etch) には NQC 2.5.r3 が、Debian 5.0 (lenny) には NQC 3.1r6 が正式パッケージとして含まれています。したがって単に
apt-get install nqc
というコマンドだけでインストールできます。 ところで上に書いたように、USBのIRタワーのドライバは、Linuxカーネル 2.6.1 以降で オフィシャルなカーネル・モジュールになったので、USBのIRタワーを 使う場合には、カーネル 2.6.1 以降を使うことを強くお勧めします (2.4.18以降のカーネルでも一応使えていましたが)。
以下の実効権限に関する説明は古いです。KDEやGNOMEなどのデスクトップ環境のもとではパーミションを特に設定しなくても問題なく動作しています。
(旧情報) 実際にルート権限があれば、すでにこの時点で NQC のプログラムをコンパイル・転送できるはずです。 しかし、root以外の一般ユーザでもデバイスにアクセスできるように、 Debian 3.1 (Sarge) で devfs を使用している場合には、 /etc/devfs/perms に
REGISTER ^usb/legousbtower[0-9]$ PERMISSIONS root.root 0666
の一行を入れておくか、Debian etch, lenny, sid で udev を使用している場合には、 /etc/udev/permissions.rules に
BUS=="usb", KERNEL=="legousbtower*", MODE="0666"
という一行をいれておくと便利です。
一方シリアルのIRタワーを使用する場合には、 自分のユーザIDを dailout グループに入れて /etc/devfs/perms の中で
REGISTER ^ttyS[0-9]$ PERMISSIONS root.dialout 0660
のような感じになっていることを確認しておけばよいでしょう (devfs を使う場合)。ただ、LEGOのIRタワー以外にモデムなどのシリアル機器を利用している場合には、特定のポートだけをちゃんと指定(許可)するなど、セキュリティ上もう少し細かな設定をしてください。
Knoppix にこだわらないのであれば、ぜひ DebianLiveをお試しください。
(以下作成中)
Windows Vista を搭載したパソコンではUSBのIRタワーが動かないようなので、 Windows を使用するのは諦めて、かわりに Knoppix で起動して Linux用のNQCを使用するのが手っ取り早いでしょう。
Knoppix は Debian GNU/Linux をベースにしたOSでCDやDVDから起動して使えるのでハードディスクにインストールする必要はありません。 また最近ではUSBのメモリーキーも低価格になってきているので、USBから起動できるパソコンであればKnoppixをUSBから起動する方法もお勧めです。 Knoppix日本語版の最新情報は産総研のページにあります。CDやDVDのイメージもダウンロードできます。
さて、KnoppixではIRタワーについては特別何も設定しなくても使えます(IRタワーのドライバはLinux kernel 2.6.1 以降ではカーネル付属のモジュールになっています)。 ですので基本的には NQC のLinux用バイナリを適当なディレクトリにおいて使用すればよいわけですが、Knoppixのイメージ (CD-ROM etc.)には書き込めないので、WindowsのパーティションまたはUSBメモリなどの外部メディアを使用します。