ACCONEER社のワンチップミリ波レーダXB112/XM112を動かす

ACCONEER社のワンチップミリ波レーダXB112/XM112を動かす
 
Digikeyで売っている
ACCONEER社ミリ波センサXM112/XB112を動作させたので、その概要を記す。
 
 
■製品概要
・XM112
ワンチップ60GHzミリ波レーダであるA111というチップと、CortexM7プロセッサを同一基板にマウントしたもの。
A111はアンテナを内蔵しているので、高周波設計が不要である。
電源電圧は1.8V。出力は1mW以下と思われる。
用途は液面検出、駐車場での自動車検出などを想定しているらしい。
A111から出力されるデータは低レベルなので、従来はラズパイを外部につないで距離データなどに変換する必要があった(旧型製品XC112/XR112)が、XM112では搭載されたCortexM7プロセッサにてに距離データなどに変換し、出力してくれるので、ラズパイは不要になった。
出力インタフェイスはUART/SPI。
・XB112
XM112から情報を読み出し、USBシリアル変換してPCに接続するブレイクアウトボード。
XM112用の1.8V電源も搭載している。
 
 
テスト手順
■PCへの接続
XB112にXC112を挿入する。
PCにUSBでXB112をつなぐ。
 

 
 
バイスマネージャーでCOMポートとして認識されていることを確認する。
今回はCOM8になっている。
これを控えておく。
 

 
 
・ACCONEER社のデベロッパーにアカウントを作りログインする
 
 
基本的に個々のPDFに従って行う。
 
■acconer ツールをダウンロード
acconeerのツール(pythonで書かれている)をダウンロードする

 
 
■ファイームウェアバイナリのダウンロード
ACCONEERのHPからXM112用の最新ファームをダウンロードする
 

 
 
ファームウェア書き込みツールのダウンロード
BOSSAというATMELのマイコンフラッシュ書き込みツールをダウンロードし、インストールする。

 
ファームウェアの書き換え
以下の手順でBOOTモードに入る。
1.ERASEボタンを押し続ける
2.NRSTボタンを押し続ける
3.NRSTボタンを離す
4.ERASEボタンを離す
 

 
 
BOSSAでxm112ファームウェア*.binファイルを指定し、COMポートを指定。
Erase allとBoot to flashにチェックして、Writeボタンを押す。

 

 
 
 
下記お見が終わったら、基板のNRSTボタンを1秒押す
これで、XM112のマイコンが再起動し、測定可能となる。
 
 
 
 
pythonを入れる

 
 
インストールのときはadd PATHにチェックを入れる。

 
 
 
■必要なpythonモジュールをインストールする
cmd.exeを開いて、
cd xx\acconeer-pyton-exporation-master
pip -install --user –r requirements.txt
python setup.py install --user
 

 

 
 
 
■サンプルプログラムを実行する。
example以下に様々なサンプルがある。XC112のときより大幅に強化されている。
実行するときは、[port id]にCOM番号を入れる。
 
例:python examples/services/envelope.py –uart [port id]
 
 
・Envelope example
最も基本的な動作。距離vs反射波強度をプロットする。
C:\Users\k\Desktop\acconeer-python-exploration-master>python examples/services/envelope.py --uart COM8
 

 
 
・PyQTGraph
C:\Users\k\Desktop\acconeer-python-exploration-master\examples\plotting>python plot_with_pyqtgraph.py --uart COM8
下のグラフが時系列の反射強度を表しているらしい。

 
・Plot_With_mathplotlib
C:\Users\k\Desktop\acconeer-python-exploration-master\examples\plotting>python plot_with_matplotlib.py --uart COM8
上のグラフは距離VS反射強度だが、上記2点と比較して少し違う。
下のPhaseは反射波の位相を表しているらしく、手をかざして数ミリ動かすと-πからπに移動する。高分解能ではかるときなどにつかえるかも。
スクリーンショットを取るのを忘れた。
 
・obstacle_detection
移動ロボットなどに乗せて障害物検出をするためのサンプル
C:\Users\k\Desktop\acconeer-python-exploration-master\examples\processing>python obstacle_detection.py --uart COM8
上のグラフは反射強度と、FFT値のmaxを表している。FFT値は反射強度よりも感度がかなり高い。
下の色のついたグラフが、縦軸が距離、横軸が移動速度となっている。かなり感度は高い感じだが、ご動作しそう。
詳しい原理などははここにのっている。
 
 
 

 
・breathing
呼吸を検出する。
C:\Users\k\Desktop\acconeer-python-exploration-master\examples\processing>python breathing.py --uart COM8
呼吸検出。センサに正対して40cmぐらいのところで椅子に座って背もたれに持たれて計測。
Envelope and deltaのところでenvelobの高いところ(またはdeltaの大きいところ)に注目してIQを検出して、微小距離を出し、
それをBreathing movementのところに表示していると思われる。
呼吸と、よく見ると心拍も取れているが、少し体動があると埋もれてしまう。
 

 
■その他気づいたこと
thnkad x250 windows 7 64bitで動かしたが、グラフ表示をさせるととても重い。
数分で固まることもある。
ファームの書き換え以外はLinuxで行ったほうがいいかも。