[Mindstorms]NXT Distance x4
1つのポートに測距センサを4個接続できるセンサです。
ポートを節約することができます。
NXT側からは「超音波センサ」として認識されます。インテリジェントブロックNXTのメニューで「View-Ultrasonic(cm)」を使用するとCH0の結果だけ返します。
測距センサを4個接続しています。センサ1つあたりで、10~80cmの範囲で距離を測定できます。
サンプルプログラムでは
CH0=前方、
CH1=左側、
CH2=右側
CH3=後ろ側
に割り振りました。
ポートが余っていますので、あと3個センサを付け足すことができると思います。
Parts list
総製作費2500円くらいで作れると思います。
Mindsensors製 NXT専用モジュラージャック(5個で1000円くらい) http://www.technologia.co.jp/70_4053.html
サンハヤトの電話用モジュラージャック変換基板 http://sunhayato.ocnk.net/product/518
SHARP製 測距センサ GP2Y0A21YK(秋月で400円) http://akizukidenshi.com/catalog/g/gI-02551/
AVRマイコン ATtiny861 (秋月で200円) http://akizukidenshi.com/catalog/g/gI-04301/
100k ohm 抵抗
積層セラミックコンデンサ 0.1μF
ユニバーサル基板
Firmware/Program
ファームウェアの開発環境はAVR studio4+WinAVRです。HEXファイルはAVRISPmkIIなどを使ってマイコンに書き込みます。
サンプルプログラム用ロボット
OUTPUT PORT A : Y方向移動
OUTPUT PORT B : X方向移動
INPUT PORT 1 : Distance x4 Sensor
NXT側のサンプルプログラムはNXCで動かします。0x45を送信するとCH0~3の測定値を4バイトで返します。単位はcmです。
サンプルプログラム(nxtdistrun.nxc)では20cm未満までセンサに近づくとロボットが逆方向に遠ざかります。