#nomenubar
#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 も必要になります。
さらに Windows Vista でUSBタワーを使う場合には別途プログラムが必要です
((%%VISTAではUSBのIRタワーが利用できないようです%%[[VISTAでもパッチを当てればUSBのタワーが使えるようです>2007b/A4/課題2左#content_1_20]]))。
以下、SDK2.5とBricxCCの入手とインストール手順について説明します。

+[[LEGO社のサイト:http://mindstorms.lego.com/eng/community/resources/default.asp]] 
から[[LEGO Mindstorms 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がインストールされます。
+USB IRタワーのドライバのロード。タワーを接続すると『新しいハードウェアが見つかりました』というメッセージが出るので、ドライバの場所を指定します。
そこでSDK2.5をインストールした『LEGO Software』というフォルダの中の『TowerDrv』というフォルダを指定します。

Windows Vista を使っている場合には USBタワーを使うためのパッチを
[[LEGOのサイト:http://www.lego.com/eng/education/mindstorms/home.asp?pagename=download]]
からダウンロードしてインストールします(USB Tower Patch)。

以上の説明が簡略すぎると感じた場合は、
[[MindStormsの洞窟 (macさんのページ):http://line.to/mac/MindStorms/index.html]]
にある
『[[SDK2.5で遊ぼう:http://line.to/mac/MindStorms/sdk2_5/]]』
や
『[[はじめてのBricxCC:http://line.to/mac/MindStorms/BricxCC/index.html]]』
をぜひ参考にしてください。インストールの手順や設定などもステップごとに詳しく解説されています (もちろん遊び方も)。

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]

MacOS X上でNQCを使用する場合は、NQCを単体で使う方法と
[[MacNQCという統合環境:http://homepage.mac.com/rbate/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にダウンロードできます。

* GNU/Linux [#ta99cc9a]

最新のNQCの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のコンパイルとインストールの手順を簡単に説明します。

+[[NQCのホームページ:http://bricxcc.sourceforge.net/nqc/]]から
NQCのソースを、
[[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 というオプションをつける必要がないので便利です。

ファームウェアの入手については上の Mac OSX の説明を参考にしてください。

* 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以降のカーネルでも一応使えていましたが)。

実際にルート権限があれば、すでにこの時点で NQC のプログラムをコンパイル・転送できるはずです。
しかし、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タワー以外にモデムなどのシリアル機器を利用している場合には、特定のポートだけをちゃんと指定(許可)するなど、セキュリティ上もう少し細かな設定をしてください。

* Knoppix [#d9d5a021]
(作成中)

Windows Vista を搭載したパソコンではUSBのIRタワーが動かないようなので、 Windows を使用するのは諦めて、かわりに Knoppix で起動して Linux用のNQCを使用するのが手っ取り早いでしょう。

Knoppix は Debian GNU/Linux をベースにしたOSでCDやDVDから起動して使えるのでハードディスクにインストールする必要はありません。
また最近ではUSBのメモリーキーも低価格になってきているので、USBから起動できるパソコンであればKnoppixをUSBから起動する方法もお勧めです。
Knoppix日本語版の最新情報は[[産総研のページ:http://unit.aist.go.jp/itri/knoppix/]]にあります。CDやDVDのイメージもダウンロードできます。

さて、KnoppixではIRタワーについては特別何も設定しなくても使えます(IRタワーのドライバはLinux kernel 2.6.1 以降ではカーネル付属のモジュールになっています)。
ですので基本的には NQC のLinux用バイナリを適当なディレクトリにおいて使用すればよいわけですが、Knoppixのイメージ (CD-ROM etc.)には書き込めないので、WindowsのパーティションまたはUSBメモリなどの外部メディアを使用します。

#navi(NQC入門)

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS