2008年7月15日火曜日

Bluetooth接続でLEGO MINDSTORM NXTを動かした

昨日のエントリからの続き。


機体を改造して最終的に出来たのが写真のもの。(奥にあるのは先生が作った見本機。俺は男のロマンを追求してキャタピラにしたが)

元々、授業中の「ライントレースを行う」という課題のために作ったので、前に光センサx2とか付けていたりする。ただし、昨日のエントリで書いたスクリプトは単純に走行用のモータを制御するだけだ。

写真だと分かりづらいが、機体上部にロケットパンチ(?)みたいなのを付けてみた。3つ目のモータが回転するとクランクで力を伝えてスイッチを押し、ロケットパンチを発射する。(ちなみにロケットパンチはNXTの拡張キットにしか入ってないらしい)
ロケットパンチを発射するためのスクリプトも書いてみた。次のコードを昨日のエントリのコードに追記して、ENTERキーが押されたときにcanon_fireメソッドを呼び出すようにメインループにもコードを書き加えた。
@motor_canon = NXTComm::MOTOR_C

def canon_fire
@nxt.set_output_state(
@motor_canon,
100,
NXTComm::MOTORON,
NXTComm::REGULATION_MODE_IDLE,
0,
NXTComm::MOTOR_RUN_STATE_RUNNING,
360
)
end

@nxt.set_output_stateメソッドで、@motor_canon(ポートCのモータとして初期化)を360回転させるようにしている。
クランク部分や、実際の動作時の映像とかを撮っておけばよかったなぁ orz

普通に付属のソフトウェアで、動作ルーチンのプログラムも勿論組んだ。というか、授業ではそちらがメイン。俺だけだ、リモートコントロールなんてしてるのは。
そのプログラムでは、機体上部にモータと共に設置した超音波センサによって、前方に障害物があるとロケットパンチを発射する様にしたりしたw


さて、次はiアプリでコントロール出来るようにするか。

0 件のコメント: