TDS01V買ってみた
HMC1052Lでは、自分の回路のGNDが弱いせいか、三端子レギュレータの5V電源のみだと安定するが、12VのDC-DCの電源もONにすると誤差が大きくなって使えない。HMC6352は、I2Cなのだが、I2Cの経験がなく下回りのライブラリから作らないといけないので時間が足りなさそう。ということで、PC直結のTDS01Vを買ってみた。(これ、6,800円)
届いてスペックを見たら、地磁気の精度±10度とか。。。そんなに精度悪いのかな(だとするとやはりHMC6352にしないと駄目かも)
まずUSB-Serial変換チップのドライバのダウンロード。 http://www.ftdichip.com/ からFT232Bのドライバをダウンロード。
次に、秋月電子のサイトのMeasurement Toolをインストール(付属のCD-ROMのはVerが古いのでNG)。
で、Measurement Toolを起動してポート番号を入力して接続するもつながらない。。説明書を読んだらCOMポートは、18番まで対応とか。うちの仮想COMポートは19番だよ。。ということでデバイスマネージャーで強制的にCOMポートを1にした。
動作確認はOK。
次。TeraTermでTDS01vへ接続。9600bps、パリティなし、ストップビット1、フロー制御なし、改行コードCR+LF、エコーバックONでつながる(マニュアルにはストップビット0とあるが、TDSのICに直接SPIで同期シリアルでつないだときのことであろう。PCからはストップビット1でOK)。これで、「55
最初、バイナリで送るものかと思ったが、どうもPIC側でテキストバイナリ変換をしてくれている模様で、PCから使う分には、テキストで送るのが正しいようだ。
TDS01Vのコマンド表
コマンド | 内容 | ACK | NAK |
---|---|---|---|
05 | 計測条件設定 | FA | 05 |
0D | センサ情報項目設定 | F2 | 0D |
0F | リセット | F0 | 0F |
21 | 計測開始 | DE | 21 |
23 | 計測停止 | DC | 23 |
27 | 地磁気センサ初期化要求 | D8 | 27 |
29 | センサ情報要求(計測結果の取得) | データ | - |
2B | 状態要求(動作状態の取得) | データ | - |
2D | 詳細状態要求(取得) | データ | - |
35 | EEPROMプロテクト解除要求 | CA | 35 |
3B | EEPROM初期化要求(工場出荷状態) | C4 | 3B |
49 | 自己診断開始 | B6 | 49 |
55 | 通信回線試験要求 | AA | - |
59 | 自己診断状態要求 | データ | - |
5F | ROMバージョン要求 | データ | - |
コマンドは上記の15個。
フローとしては、
- ソフトウェアリセットをかける
- 計測条件設定で、周期(最大10Hz)、基準気圧(0m気圧)、偏角(方位のオフセット)を設定
- センサ情報項目設定で、地磁気、加速度、気圧のどれを計測したいか設定
- 磁気センサ初期化要求
- 計測開始
- 状態要求で情報が更新されるまで待つ
- センサ情報要求
- 6.へ戻る、または、計測停止
だ。
HMC6352と違って、TDS01Vの地磁気センサのキャリブレーションは、PCのソフトのMeasurement Toolでしか行えないらしい。
または、方位で取得せずに、磁気ベクトルでもらって自力でキャリブレーションソフトを書くか。
よし。予習完了。明日は、AibiUIに取り込みたい。