「mindsensors.com」という会社が作っているレゴマインドストームNXT用センサとオプションパーツが日本国内でも買えるようになりました。
http://www.technologia.co.jp/70.html
そこで、mindsensors.comの製品を紹介したいと思うのですが、一杯ありすぎるので、とりあえず一つだけ紹介します。
▲こちらが「NXTServo-v2」というNXT用のオプションパーツです。これはセンサではなく、サーボモータの制御を行います。NXTに付属するモータとは違って、厳密な角度制御が可能です。
▲NXTServoは出力ではなく、入力ポートにつなぎます。ここではポート1に接続しました。
サーボモータはごく一般的なラジコン用のものを使ってください。今回は定番の「S03T-2BB」を使いました。「S03T-2BB」は1500円くらいで売っていると思います。
あと、サーボモータを動かすための電源が別途必要です。自分の場合は、単三型4本用の電池ボックスと、ニッケル水素電池を使いました。電池ボックスは秋月で売っています。
▲サーボモータと電池ボックスをつなぎます。極性がわかりにくいですが、接続を間違えないようにしましょう。
この場合では、サーボモータを「SV1」に接続しました。サーボモータは最大8個まで接続できます。
電池ボックスのリード線は精密用ドライバーを使って接続します。
▲つぎにNXTソフトウェアで動かすためのブロック(プラグインのファイル)を入手します。
webブラウザでhttp://www.mindsensors.comのサイトを開いて、ダウンロードしてください。
▲NXTソフトウェアを立ち上げて、「ブロックのインポートとエクスポート」をメニュー選択します。インポートに成功すると、NXTServoのブロックが追加されます。
▲mindsensors.comからダウンロードした「NXTServo-demo.rbt」というサンプルプログラムを開いてみました。0.3秒おきにサーボモータの出力軸が動くプログラムのようです。時間が短すぎるので、3秒に修正しました。
▲ブロックの設定です。I2CのアドレスはB0のままにします。
「Position」が出力軸の角度です。単位はマイクロ秒(μs)で、これはサーボモータに送る信号のHighになっている時間を表してます。
たとえば、値が「1500」だと、出力軸は中心となる0度になります。
S03Tの場合、1500±900マイクロ秒が出力軸の±90度に対応しています。
▲プログラムを実行すると、見事にサーボモータが動きました。
http://www.youtube.com/watch?v=sWFjBHg_34Y