目次
#contents

(作成中)

* spyboticsについて [#ub298ff1]

LEGO社が2002年にリリースしたプログラム可能なロボットで、
Gigamesh G60、Snaptrax S45、Shadowstrike S70、Technojaw T55 の
4種類があります。
4種類とも、色の違いを除いてコンピュータ本体は共通で、RCXと違って
モータやセンサなどが内蔵された一体型のユニットになっています。
マインドストームに続いて、LEGO社が2002年にリリースしたプログラム可能なロボットで、
Gigamesh G60、Snaptrax S45、Shadowstrike S70、Technojaw T55 の4種類があります。
色の違いを除いてコンピュータ本体は同じで、RCXと違い、モータやセンサなどが内蔵された一体型のユニットになっています。
[[LUGNETの紹介ページ:http://guide.lugnet.com/set/?qc=lego/mindstorms/spybotics]]

ところで spybotics は、プログラムを転送するためにパソコン側にシリアル端子が必要なこと、本体の定価が1万円ほどもしたこと、モータやセンサがコントローラに内蔵されているためRISのようにいろいろなロボットを独自に設計する自由度が低いこと、などの理由でRISほどは人気が出ませんでした。
そのせいなのかどうかわかりませんが、国内でも定価の半額〜1/4 程度の値段で売られていました。

ところで spybotics は、
プログラムを転送するためにパソコン側にシリアル端子が必要なこと、
本体の定価が1万円ほどもしたこと、モータやセンサがコントローラに
内蔵されているためRISのようにいろいろなロボットを独自に設計する
自由度が低いこと、などの理由でRISほどは人気が出ませんでした。
そのせいかどうかわかりませんが、実際には国内でも定価の
半額〜1/4 程度の値段で売られていました。

確かにRISと比べると部品点数も少なくオリジナルロボットを作る楽しみ
というのは少ないかもしれませんが、プログラミング学習の観点からは
[[NQCを使えばRISとほぼ同様に扱うことができ>NQC入門]]、さらにRCX以上の機能も
あるので、高校や大学の一般教養の授業にはもってこいではないでしょうか。

ちなみに[[授業用に作成したライブCD・ライブUSBメモリでもばっちり動きます>DebianLive]] (RCXと違ってファームウェアの転送は不要なのでライブCDだけで十分たのしめます)。
(2008年11月17日追記)

* NQCでコンパイル [#ld1b1633]

//まず spy.nqh というファイルをダウンロードして、プログラムと同じフォルダ(ディレクトリ)に起きます。
//#ref(spy.nqh)
//次に自分のプログラムの最初に
//
// #include "spy.nqh"
//
//という行を書いておいてください。

コンパイルするには、ターゲットを指定するための「-Tspy」というオプションが必要です。
プログラムをコンパイルするには、ターゲットを指定するための「-Tspy」というオプションが必要です。

 nqc -Tspy ファイル名

プログラムをコンパイルするだけでなくロボットに転送したいときには、

 nqc -Tspy -S/dev/ttyS0 -d ファイル名

のようにダウンロードのためのオプション「-d」とポート指定「-S/dev/ttyS0」が必要です。

* spybotics の入出力 [#kae9174d]

|出力|実際の出力||入力|センサー|h
|OUT_A|右モータ|  |SENSOR_1|タッチセンサ|
|OUT_B|左モータ|~|SENSOR_2|ライトセンサ|
|OUT_C|光出力   |~|||
出力は次のように割り当てられています。

|出力|実際の出力|h
|OUT_A|右モータ|
|OUT_B|左モータ|
|OUT_C|光出力|

OUT_A と OUT_B に関しては RCX の場合の使い方と同じです。また、
 On(OUT_C);
とすると後方のLEDが点滅します。
またSetSensorでセンサの種類を宣言する必要はありません。

- ライトセンサの値は0〜1023?
- タッチセンサの値は?
一方、センサは次のように割り当てられていますが、RCXと違い、
SetSensorでセンサの種類を宣言する必要はありません。
|入力|センサ|h
|SENSOR_1|タッチセンサ|
|SENSOR_2|ライトセンサ|

- ライトセンサの値は0〜100 (デフォルトは % 表示)
- タッチセンサの値は0または1 (デフォルトはブール値)

* 上面のLEDを点滅させるには? [#w9bc4c9f]

* RCXとの通信 [#d8c307b3]

SPCからRCXへメッセージを送る
 SendRCXMessage(n); // n=0〜255
送られたメッセージをRCX側で参照するには、RCX同士の通信と同様に Message() を使用します。

* USBからプログラムを転送するには? [#f16f27eb]

最近ではシリアル端子のないパソコンも多いですが、USB-シリアル変換アダプターを使うことでUSB端子から問題なくプログラムを転送できます。
詳しくは[[NQC入門/A3. USBシリアル変換アダプタについて]]をご覧ください。


* 関連リンク [#wcb4a5cf]

//- [[NQCの作者 Dave Baum さんによる解説:http://www.baumfamily.org/nqc_old/release/spybotics.html]] (英語)
- [[Lugnetのニュースグループ:http://news.lugnet.com/robotics/spybotics/]] (英語) 多分ここの情報が一番多い
- [[Spybotics (Hack編):http://line.to/mac/MindStorms/spybotics/index2.html]]
(macさんのページ)
- [[Smart Parts:http://users.ncable.net.au/~blane/smartParts/index.htm]] (英語) わかりやすいチュートリアルもある
- [[五十川さんのページ:http://www.isogawastudio.co.jp/legostudio/]]
spyboticsを使った前輪操舵のレーシングカーも紹介されている(力作系作品「操作性良好」)


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