#navi(NQC入門) #contents * Windows [#p3285544] WindowsでNQCを利用する場合には、NQCを単体で使用する方法とBricxCCという統合環境を利用する方法があります。テキストベースで行う(作業ディレクトリの変更などの)DOSの操作に慣れていなければ、BricxCCを使用するほうが無難でしょう。NQC単体で利用する場合には、エディタとしてWindows付属の『メモ帳』を利用することができます。USBの赤外線タワーをWindows XPで使用する場合やRIS2.0付属のCD-ROMが手もとにない場合には、LEGO社の配布している LEGO Mindstorms SDK2.5 も必要になります。以下、SDK2.5とBricxCCの入手とインストールについて説明します。 +[[LEGO社のサイト:http://mindstorms.lego.com/eng/community/resources/default.asp]] から[[SDK2.5:http://mindstorms.lego.com/sdk2point5/LEGOMindstormsSDK25.zip]] をダウンロード。このファイルはzip形式で圧縮されています。 +ダウンロードしたファイルを、例えば[[UnZip:http://www.info-zip.org/pub/infozip/UnZip.html#Win32]]を使って解凍。LEGOMindstormsSDK25.exeというファイルができます。 +LEGOMindstormsSDK25.exe を実行してSDK2.5をインストール。 このパッケージの中には、USBの赤外線(IR)タワーのドライバやRIS2.0のファームウェアが含まれています。これらのソフトはRIS2.0付属のCD-ROMにも含まれていますが、Windows XP 上で作業をする場合には、SDK2.5付属のIRタワーのドライバを使う方がよいようです。付属CD-ROMに入っているドライバをWindows XPで使う場合には、 [[NQCのFAQ:http://bricxcc.sourceforge.net/nqc/doc/faq.html#irxp]] を参考にしてください。 +[[BricxCCのホームページ:http://bricxcc.sourceforge.net/]] から[[最新バージョン:http://sourceforge.net/project/showfiles.php?group_id=68600&package_id=67285]]をダウンロード。2005年11月8日現在の最新バージョンは3.3.7.10です。 +ダウンロードした bricxcc_setup_33710.exe というファイルを実行。 これでBricxCCがインストールされます。 NQC単体で使用する場合には、BricxCCのかわりに [[NQCのホームページ:http://bricxcc.sourceforge.net/nqc/]] で配布されている [[バイナリ・パッケージ:http://bricxcc.sourceforge.net/nqc/release/nqc-win-3-1-r4.zip]] をダウンロード&インストールしてください。 //--[[配布ミラーサイト:http://prdownloads.sourceforge.net/bricxcc/bricxcc_setup_33710.exe]] //-[[BricxCCのホームページ:http://bricxcc.sourceforge.net/nqc/]] //--[[NQCのバイナリ配布パッケージ:http://bricxcc.sourceforge.net/nqc/release/nqc-win-3-1-r4.zip]] * MacOS X [#veaff07d] * GNU/Linux [#ta99cc9a] NQCでUSBのIRタワーを使用するためには、Linux用のドライバが必要です。 Linux 2.6.1以降ではこのドライバはカーネルに標準で含まれていますが、カーネル2.4系では http://sourceforge.net/projects/legousb/ からソースをダウンロードしてコンパイルする必要があります (ここではその方法は省略します)。 また、NQCをコンパイルする際にはこのドライバのソースに含まれているヘッダファイルが必要です。 以下、NQCのコンパイルとインストールの手順を簡単に説明します。 +[[NQCのホームページ:http://bricxcc.sourceforge.net/nqc/]]から [[NQCのソース(nqc-3.1.r4.tgz):http://bricxcc.sourceforge.net/nqc/release/nqc-3.1.r4.tgz]] を、 [[LegoUSBのプロジェクト・ページ:http://sourceforge.net/projects/legousb/]] からUSBのIRタワーのソース をダウンロード。wgetを使う場合には、シェル上で 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 +rcxlibというディレクトリの下にLegoUSBというディレクトリを作成してここにNQCのコンパイルに必要なヘッダファイルをコピー。シェル上で mkdir nqc-3.1.r4/rcxlib/LegoUSB cp legousbtower-0.5.4/include/legousbtower.h nqc-3.1.r4/rcxlib/LegoUSB/ +Makefileを編集。シェル上で cd nqc-3.1.r4 vi Makefile Makefileの中の # USBOBJ = rcxlib/RCX_USBTowerPipe_linux.o となっている行のコメントを外して USBOBJ = rcxlib/RCX_USBTowerPipe_linux.o とします。 もちろん vi の代わりに別のエディタを使ってもかまいません。 +rcxlib/RCX_USBTowerPipe_linux.cpp を編集。 vi rcxlib/RCX_USBTowerPipe_linux.cpp USB IRタワーのkernel標準のデバイス名は /dev/usb/legousbtower0 のようなので、あらかじめこのファイル内で正しく設定しておきます。 つまり #define DEFAULT_TOWER_NAME "/dev/usb/lego0" という行を #define DEFAULT_TOWER_NAME "/dev/usb/legousbtower0" に変更します。このファイルを編集するかわりに、あとでシンボリックリンクを作成したり、ドライバのソースのほうを変更してもかまいませんが、おそらくこの方法が一番楽でしょう。 +そして make。シェル上で make +スーパーユーザになってインストール su make install +一般ユーザでもIRタワーを使えるようにパーミッションを変更 (次のDebian の説明を参考にしてください)。 +ついでに .bashrc あたりに export RCX_PORT=usb という一行を入れておくと毎回 -Susb というオプションをつける必要がないので便利です。 * Debian GNU/Linux [#f7d7bf77] Debian 3.1 (sarge) には NQC 2.5.r3 が正式パッケージとして含まれています。したがって単に apt-get install nqc というコマンドだけでインストールできます。 ところで上に書いたように、USBのIRタワーのドライバは、Linuxカーネル 2.6.1 以降で オフィシャルなカーネル・モジュールになったので、USBのIRタワーを 使う場合には、カーネル 2.6.1 以降を使うことをお勧めします (2.4.18以降のカーネルでも一応使えていましたが)。 ただし、root以外の一般ユーザでもデバイスにアクセスできるように、 Debian 3.1 (Sarge) で devfs を使用している場合には、 /etc/devfs/perms に REGISTER ^usb/legousbtower[0-9]$ PERMISSIONS root.root 0666 の一行を入れておくか、Debian unstable/testing で 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タワー以外にモデムなどのシリアル機器を利用している場合には、特定のポートだけをちゃんと指定するなど、セキュリティ上もう少し細かな設定をしてください。 #navi(NQC入門)