#nomenubar
#navi(NQC入門)

#contents

Windowsマシンを持っている方は[[NQCの入ったライブCDあるいはライブUSBメモリをまず使ってみてください>DebianLive]] ([[ロボティクス入門ゼミ]]の受講生にはCDの配布サービス・USBメモリのセットアップサービスを行っています)。
以下の説明を参考しながら Windows上でのプログラミング環境を整えるより、おそらく簡単だと思います。

* 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]]))。
%%以下、DK2.5とBricxCCの入手とインストール手順について説明します。%%

2008年10月10現在、LEGO社のサイトからSDK2.5のページが消えてしまったようですので
以下、BricxCCの入手とインストール手順についてだけ説明します。USBタワーのドライバはまだLEGO社のサイトからダウンロードできるようですので入手先だけ記しておきます。インストール方法については付属のドキュメント(英語)を参考にしてください。
(2008-10-16追記)

+%%[[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』というフォルダを指定します。%%

+[[BricxCCのホームページ:http://bricxcc.sourceforge.net/]]
から[[最新バージョン:http://sourceforge.net/project/showfiles.php?group_id=68600&package_id=67285]]をダウンロード。2008年10月16日現在の最新バージョンは3.3.7.18です  (bricxcc_setup_33718.exe という名前のファイル)。
+ダウンロードした bricxcc_setup_33718.exe というファイルを実行。
これでBricxCCがインストールされます。
+[[LEGOのサイト:http://www.lego.com/eng/education/mindstorms/home.asp?pagename=download]] からUSBタワーのドライバをダウンロードします (上から3番目の USB Tower Patch というところにある tower164.zip というファイル)。
+ tower164.zip を解凍した後、Installation_instructions.txt を参考にしてドライバをインストールします (基本的には Setup.exe を実効するだけですが、ライセンスにも目を通しておきましょう)。このときUSB赤外線タワーははずしておきます (Windows XP の場合)。
+ tower164.zip を解凍した後、Installation_instructions.txt を参考にしてドライバをインストールします (基本的には Setup.exe を実行するだけですが、ライセンスにも目を通しておきましょう)。このときUSB赤外線タワーははずしておきます (Windows XP の場合)。
+ドライバをインストール後、USB赤外線タワーを接続すると、新しいデバイスのドライバについて聞いてくるので、自動検索を選べばよいでしょう (Windows XP の場合)。

ドライバ付属のドキュメントによるとこのドライバは 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さんのページ):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-r6.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にダウンロードできます。%%
2008年10月10日現在、SDK2.5 のページはなくなってしまっているので firmware は RIS2.0 付属のCD-ROM からコピーする必要があります。

* GNU/Linux [#ta99cc9a]

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

+[[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.r6/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]

[[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 [#d9d5a021]

Knoppix にこだわらないのであれば、ぜひ [[DebianLive]]をお試しください。

(以下作成中)

%%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