超音波帯域 ネコ、コウモリ...

9
PAGE 1 OF 9 超音波帯域 (ネコ、コウモリ) ピリオドグラム解析装置 *† YEES 概要 何も聞こえないのに、壁や天井に向かって様子をうかがうネコには何か聞こえるらしい、ということでネコ可聴 周波数帯域のピリオドグラムを表示する装置を検討試作しました。 ピリオドグラムはパワースペクトル(密度関数)の推定量です。装置としてはFFTアナライザーの簡易版です。 ネコの他、コウモリの超音波帯域も似た感じです。 さらに、中年オヤジがツマヨウジを使う際、高音圧超音波を発生する事例も観測できる、、、観測したところでどう しようもないけど。 目次 1 目的 ............................................... 2 2 ハードウェア ....................................... 2 2.1 超音波センサ ..................................... 2 2.2 センサアンプ ..................................... 3 2.3 マイコン ......................................... 4 3 ソフトウェア ....................................... 4 3.1 処理 内容 ......................................... 4 3.2 AD 変換 .......................................... 4 3.3 窓関数............................................ 4 3.4 FFT .............................................. 5 3.5 センサ感度補正 ................................... 5 3.6 表示 .............................................. 5 4 設定 ............................................... 6 5 資料 ............................................... 7 5.1 回路図............................................ 7 5.2 シリアル通信コマンド ............................. 9 5.3 マルチタスク ..................................... 9 * Ver1.00 新規公開 2015/02/22(ネコの日) Ver1.01 誤記訂正 2015/03/0232dot 16dothttp://homepage2.nifty.com/yees/

Upload: others

Post on 06-Sep-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

PAGE 1 OF 9

超音波帯域 (ネコ、コウモリ)ピリオドグラム解析装置 ∗†

YEES ‡

概要

何も聞こえないのに、壁や天井に向かって様子をうかがうネコには何か聞こえるらしい、ということでネコ可聴

周波数帯域のピリオドグラムを表示する装置を検討試作しました。

ピリオドグラムはパワースペクトル(密度関数)の推定量です。装置としてはFFTアナライザーの簡易版です。

ネコの他、コウモリの超音波帯域も似た感じです。

さらに、中年オヤジがツマヨウジを使う際、高音圧超音波を発生する事例も観測できる、、、観測したところでどう

しようもないけど。

目次

1 目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 ハードウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.1 超音波センサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2.2 センサアンプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.3 マイコン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 ソフトウェア . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.1 処理内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.2 AD変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3.3 窓関数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

3.4 FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.5 センサ感度補正 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3.6 表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

4 設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

5 資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

5.1 回路図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

5.2 シリアル通信コマンド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.3 マルチタスク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

∗ Ver1.00新規公開 2015/02/22(ネコの日)† Ver1.01誤記訂正 2015/03/02(32dot→ 16dot)‡ http://homepage2.nifty.com/yees/

PAGE 2 OF 9

1 目的

何も聞こえないのに、壁や天井に向かって様子をうかがうネコには何か聞こえるらしいということで、ネコの可聴

周波数帯域ピリオドグラムを表示する装置を検討試作しました。

コウモリの超音波を観察するバットデテクターといった装置を調査したところ、ミキサー(アナログ乗算器)による

周波数変換を行うものでした。 ミキサーはアナログ乗算ICやトランス使用 DBMを使ったものがありました。

アナログ信号処理を簡易にしたくアナログ SWあるいはJFET使用の同期検波も検討しましたが、マイコンでAD

変換して直接FFT計算したほうがアナログ回路が簡単になるのでは、という考えかたです。

2 ハードウェア

図 1 試験基板

マイコンボード(Cixi Borui Electronic Technol-

ogy Co.,Ltd 製)のユニバーサル部に超音波セ

ンサ、センサアンプ(オペアンプ×2)を組み

付け動作確認。

超音波センサ出力を増幅後、AD変換しデジタル処理します。

アンチエイリアスフィルタは無く、想定周波数を超える超音波については、ピリオドグラム上折り返します。

超音波センサ センサアンプ 

 マイコン  

有機EL表示器グラフィック100 × 16 dot

スイッチ(×6)

USBコネクタ5V

レギュレータ(5V/3.3V)

3.3Vアナログ回路マイコン表示器

// // //

OO

// //

図 2 構成概略

2.1 超音波センサ

図 3 SPM0404UD5データシート抜粋(1/2)

 

 

 

PAGE 3 OF 9

図 4 SPM0404UD5データシート抜粋(2/2)

超音波センサは 10kHz~60kHz対応の超音波マイクロホン

を使用。

回路に組み込んだ状態でノイズフロアを観測すると図 4と

ほぼ一致しました。

センサ出力を増幅してオシロ観察すると、100kHzを超える領域でも十分感度があり、感度補正を行えば目安程度

のスペクトル観測ができるのでは、、、ということで試験検討したところ、共振点 62kHz近傍では、線形に感度補正す

るのは困難でした。(62kHz近傍では、音波入力の有無に関わらずほぼ一定の出力がある)

図 5、図 6表示電圧範囲:−20dBVolt~−60dBVolt/表示周波数範囲:8kHz~128kHz

(実際の補正については、ソフトウェア「補正」参.)

図 5 ノイズフロア(補正無し) 図 6 ノイズフロア(補正有り)

2.2 センサアンプ

広帯域、フルスイングオペアンプによる2段ACアンプです。位相・ゲイン余裕が小さかったので発振防止、また、

有機EL表示器搭載 DC-DCコンバータのスイッチングノイズの影響低減のための処置を行っています。

メーカ型番 NJU77701

利得帯域幅積 34MHz typ.

スルーレート 35V/us typ.

入力換算雑音電圧 6nV/√ Hz typ. at f=1kHz

入力オフセット電圧 1.5mV max

オフセット電圧ドリフト 3.0uV/℃ max.

動作電圧範囲 +2.4V to +5.5V

入出力 フルスイング

表 1 使用オペアンプ

PAGE 4 OF 9

2.3 マイコン

メーカ型番 STM32F103RCT6

コアプロセッサ 32ビット ARM Cortex-M3

最大動作周波数 72MHz(使用システムクロック 72MHz)

動作電圧範囲 2~3.6V

ROM 256Kバイト

RAM 48Kバイト

表 2 使用マイコン

3 ソフトウェア

3.1 処理内容

AD変換(サンプリング 256kHz、256データ)

窓関数適用

FFT

ピリオドグラム

センサー補正

平均

ピークホールド

表示

��

��

��

��

��

��

��

��

USB仮想 COMポート通信

コマンド処理��

��

実際のプログラムは、簡易マルチタスク処理(OS無)を行っています。

上図の処理とおりのループ構造ではありません。

3.2 AD変換

AD変換はマイコン内蔵の 12bitのもので、リファレンス電圧はマイコン電源 3.3V です。

AD変換起動トリガーはタイマーで発生しています。

AD変換データはDMA転送しています。転送先として 256word のバッファーを2つ用意し、FFT計算に使用して

いないバッファーに転送しています。

3.3 窓関数

デフォルトで Blackmanを使用します。その他、矩形(窓関数無)、hanning、hammingが選択可能です。

PAGE 5 OF 9

3.4 FFT

FFT単体は 16bit、256ポイント計算で、実行時間は 470usec程度(実行中ポートにH出力し実測)です。

オフセット減算、窓関数乗算、感度補正、各スペクトルの時間移動平均を含め、10ms毎にピリオドグラムを計算して

います。

ピリオドグラムは、FFT結果の cos 成分 sin成分から直接計算しています。自己相関関数計算は行っていません。

(ウィーナー=ヒンチンの定理)

また、ウェルチの手法による誤差低減も行っておりません。今回最小ハードウェアが目的で、採用すると表示更新周

期が大きくなります。そのかわり各スペクトルの時間移動平均を計算しています。(実際は、IIRデジタルフィルタ)

3.5 センサ感度補正

センサー特性詳細を計測する装置はありません。以下の仮定のもと感度補正を行っています。

■予備試験  

センサーをできる限り遮音し、ノイズの FFT結果を観察した。結果ノイズのパワースペクトルは、データシートの音

圧/周波数応答(図 4)とよく似ていた。

センサーに音圧入力が無くても周波数応答が似ているので、センサー内部のバッファーの特性が支配的と仮定する。

また、バッファー入力ノイズは白色雑音と仮定する。

■各周波数成分の補正値  

各周波数成分の補正値をあらかじめ決定して ROMに持つのは面倒なんで、FFT計算のたびに、各スペクトルの長時

間にわたる時間移動平均を行う。 音波入力が無ければノイズのパワースペクトルそのもであり、それをセンサーの

音圧/周波数応答特性として補正に使用する。ノイズのパワースペクトルが平坦となるよう各スペクトルを補正する

係数を決定している。(FFT計算毎)

■共振点の補正  

上記補正では共振点で不安定です。データシートの音圧/周波数応答(図 4)の測定条件詳細は不明ですが、使用状

態で FFT処理を行うと、ずっと共振 Qが大いような感じで、狭い範囲にピークが発生します。実測 62kHz ± 1kHz

でヒゲ状(窓関数:Blackmanおよび矩形で確認)です。

プログラムの実際は、ピリオドグラムにヒゲ状(3kHz未満幅)要素が発生したら取り除き、その近傍の平均値で埋め

る処理を行っています。

3.6 表示

■ピークホールド  

各スペクトルはピークホールドし、ゆっくり減衰するよう表示しています。

■表示更新しきい値  

「表示更新しきい値」を設定することでチラツキを防止しています。

「表示更新しきい値」を「表示電圧範囲ボトム」と同じ値に設定すると算出の都度更新します。

■その他  

有機 EL表示器はグラフィックタイプで、フォントはドット描画です。プログラムソースは美咲フォント対応ですが、

今回美咲フォントは使用していません。

PAGE 6 OF 9

4 設定

基板上のスイッチ操作で設定変更できる項目は、以下のとおりです。

図 7 < 1 >表示周波数範囲スタート 図 8 < 2 >表示周波数範囲ストップ

図 9 < 3 >表示電圧範囲トップ 図 10 < 4 >表示電圧範囲ボトム

図 11 < 5 >表示更新しきい値 図 12 < 6 >ピークホールド ON/OFF 図 13 < 7 >窓関数選択

図 14 < 8 >周波数範囲の数値表示

ON/OFF

図 15 < 9 > 電圧範囲の数値表示

ON/OFF

図 16 < 10 > 超音波センサー感度

補正 ON/OFF

PAGE 7 OF 9

5 資料

5.1 回路図

5 5

4 4

3 3

2 2

1 1

DD

CC

BB

AA

GN

D

+3V

3

+3V

3

+3V

3

+3V

3

GN

D

+3V

3

GN

D

GN

D

+3V

3A

+5V

GN

D

+3V

3

+3V

3

GN

D

GN

D

GN

D

GN

D

+5V

BU

S+

3V

3

GN

D

+5V

BU

S

+3V

3

GN

D

GN

D

+3V

3

AG

ND

GN

D

AG

ND

AG

ND

AG

ND

+3V

3A

AG

ND

AG

ND

+3V

3A

+3V

3A A

GN

D

+3V

3A

+5V

GN

D

GN

D

PA

9

PA

10

NR

ST

NR

ST

PB

4P

A15

PA

13

PA

14

PB

3N

RS

T

PB

8P

B9

PC

12

PC

11

PC

10

PA

15

PA

14

PA

13

PA

12

PA

11

PA

10

PA

9P

A8

PC

9P

C8

PC

7P

C6

PB

15

PB

14

PB

13

PB

12

PC

0P

C1

PC

2P

C3

PA

1P

A2

PA

3P

A4

PA

5P

A6

PA

7P

C4

PC

5

PC

13

VB

AT

PB

4P

B5

PB

6P

B7

PB

3P

D2

PB

0P

B1

PB

10

PB

11

PA

12

PA

11

PB

6

PA

0

PA

0

PA

5

PA

4

PC

0

PC

1

PC

2

PC

3

PC

4

PC

5

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

YEES20150202

A

CIRCUIT

DIAGRAM,

ULTRA-SONIC-DETECTOR

A3

12

Tuesday,February17,2015

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

YEES20150202

A

CIRCUIT

DIAGRAM,

ULTRA-SONIC-DETECTOR

A3

12

Tuesday,February17,2015

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

YEES20150202

A

CIRCUIT

DIAGRAM,

ULTRA-SONIC-DETECTOR

A3

12

Tuesday,February17,2015

C15

J2

+1

+3

+2

+4

R16

TP

1

R7

J1

+1

+3

+2

+4

C20

J7

+1

+3

+5

+7

+9

+11

+13

+15

+17

+19

+2

+4

+6

+8

+10

+12

+14

+16

+18

+20

R11

L1

R13

C12

C10

C3

C19

TP

5

C14

Y1

D2

TP

6

R12

F1

J3

C9

Y2

C18

S3

R17

C1

C17

C13

S1

R8

S2

TP

4

-+

U2

3 41

5 2

D1

R6

J5 +1

+3

+2

+4

S5

R4

C11

S7

C4

C16

R5

C21

S4

R14

U4

VB

AT

1

PC

13-T

AM

PE

R-R

TC

2

PC

14-O

SC

32_IN

3

PC

15-O

SC

32_O

UT

4

PD

0O

SC

_IN

5

PD

1O

SC

_O

UT

6

NR

ST

7

PC

08

PC

19

PC

210

PC

311

VS

SA

12

VD

DA

13

PA

0-W

KU

P14

PA

115

PA

216

PA317

VSS_418

VDD_419

PA420

PA521

PA622

PA723

PC424

PC525

PB026

PB127

PB228

PB1029

PB1130

VSS_131

VDD_132

PB

12

33

PB

13

34

PB

14

35

PB

15

36

PC

637

PC

738

PC

839

PC

940

PA

841

PA

942

PA

10

43

PA

11

44

PA

12

45

PA

13

46

VS

S_2

47

VD

D_2

48

PA1449 PA1550 PC1051 PC1152 PC1253 PD254 PB355 PB456 PB557 PB658 PB759 BOOT060 PB861 PB962 VSS_363 VDD_364

S6

C5

U5 AD

J/G

ND

1IN

PU

T2

OU

TP

UT

3

R15

CN

1

VB

US

1

D-

2

D+

3

ID(N

C)

4

GN

D5

SHIELD

C2

R3

R21

R22

R19

L2

J6

C6

R18

C8

R10

TP

2

C7

R1

-+

U3

3 41

5 2

D3

TP

3

R20

+C

22

U1

4

1

2

3

R2

J4

R9

図17

回路図(1/2)

PAGE 8 OF 9

                   

5 5

4 4

3 3

2 2

1 1

DD

CC

BB

AA

OLED

+------+------+----------------------------+

|PIN#

|SIG.

|FUNC

|+------+------+----------------------------+

|14

|DB7

|Data

bit7

||

13

|DB6

|Data

bit6

||

12

|DB5

|Data

bit5

||

11

|DB4

|Data

bit4

||

10

|DB3

|Data

bit3

||

9|

DB2

|Data

bit2

||

8|

DB1

|Data

bit1

||

7|

DB0

|Data

bit0

||

6|

E|

Chip

Enable

||

5|

R/~W

|Read/~Write

||

4|

RS

|Select

Instruction/Data

||

3|

NC

|N.C.

||

2|

VSS

|GND

||

1|

VDD

|VDD

(3V

-5V)

|+------+------+----------------------------+

PIN-HEADER-PIN#

=FLAT-CABLE-WIRE#

+-------+-------------+-------+

|WIRE#

|OLED

(PIN#)

|CPU

|+-------+-------------+-------+

|3

|RS

(4

)|

PB9

||

6|

R/W

(5

)|

PB10

||

5|

E(

6)

|PB11

||

12

|D4

(11

)|

PB12

||

11

|D5

(12

)|

PB13

||

14

|D6

(13

)|

PB14

||

13

|D7

(14

)|

PB15

|+-------+-------------+-------+

TOP

VIEW

SIDE

VIEW

表示器

裏側

にピ

ンヘ

ッダ

取付

の場合

ピンヘ

ッダ

PIN#

1⇔

22

⇔3

・ ・13⇔

14

+3V

3

GN

D

PB

10

PB

11

PB

12

PB

13

PB

14

PB

15

PB

9

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

YEES20150202

A

CIRCUITDIAGRAM,ULTRA-SONIC-DETECTOR

A3

21

Sunday,February15,2015

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

YEES20150202

A

CIRCUITDIAGRAM,ULTRA-SONIC-DETECTOR

A3

21

Sunday,February15,2015

Title

Siz

eD

ocum

ent

Num

ber

Rev

Date

:S

heet

of

YEES20150202

A

CIRCUITDIAGRAM,ULTRA-SONIC-DETECTOR

A3

21

Sunday,February15,2015

C23

L4

14

13

12

11

10

98

76

54

32

1

9 711 5 3

10 24

1

12 8

13

614

PIN

HE

AD

ER

PIN

HE

AD

ER

SU

BA

SS

Y1

J8

+1

+3

+5

+7

+9

+11

+13

+2

+4

+6

+8

+10

+12

+14

L3

図18

回路図(2/2)

PAGE 9 OF 9

5.2 シリアル通信コマンド

USB仮想COMポートの使用には、STMicro社 VCPドライバのダウンロード/インストールが必要です。

デバッグ用コマンド+----------+-----------------------------+| H | ヘルプ 1| HH | ヘルプ 2| CL | Clear Screen (VT100)+----------+-----------------------------+| SF f | ADC サンプリング周波数 fs[Hz]| DF f | DAC out f[Hz]| T | 経過時間 確認   | A | ADC 最新データ| W | 波形メモリ データ| F | FFT データ| D | 内部変数| P b e | ピリオドグラム (FFT)| | b:開始 f[Hz] e:終了 f[Hz]| | 0 ≦ b,e ≦ (fs/2)| TL r | Set Tresh(LIN)| | 0 ≦ r ≦ 4095| TG f | Set Tresh(LOG)| | -80.0 ≦ r ≦ 0.0| CM n | Sensor Compensation| | n=0:OFF, 1:ON| WC f | Set Weight Compensation| | 0.0 ≦ f ≦ 1.0| PH f | Peak Hold f:decay factor| | 0.0 ≦ f ≦ 1.0| MA f | Moving Average| | 0.0 ≦ f ≦ 1.0| V | Version| GF b e | Grapic Range| | b:f[Hz] to e:f[Hz]| | 0 ≦ b < e ≦ (fs/2)| SC n | Scale LIN or LOG| | n=0:LIN, 1:LOG| RE m n | REF of Scale-LOG| | m:REFmax n:REFmin| | -80.0 ≦ m < e ≦ 10.0| | -80.0 ≦ n < e ≦ 0.0+----------+-----------------------------+

マルチタスク動作確認用コマンド+----------+-----------------------------+| H | ヘルプ 1| HH | ヘルプ 2| CL | Clear Screen (VT100)+----------+-----------------------------+| ST | スタック確認+----------+-----------------------------+| TS | タスク周期 実行回数| | (開始時 計測値リセット)| | (1000ms 繰り返し )+----------+-----------------------------+| BR | BREAK MULTI-TASK| RS | RESTART MULTI-TASK+----------+-----------------------------+

5.3 マルチタスク

一般的な組み込み用マルチタスク処理と同様、sleep(time)や next()でタスクを切り替えるものです。

タスクごとにスタック領域を確保しておいて (プログラム上バイトデータの配列)、タスクの切り替えはサブルーチン

コール/リターンの前にスタックポインタやその他レジスタを書き換えるようなものです。この切り替え管理はアセ

ンブラで記述しています。ARMはリンクレジスタがあるのでやりやすい。

各タスクは専用のスタック領域を使って実行されますが、マイコンに適当なメモリアクセス制限機能が無いので、各

タスク用のスタックがオーバーフローしてないか確認する処理を作成してあります。

スタック使用量確認MAIN STACK ADRS: 2000F800-2000FFFFMAIN STACK SIZE: 00000800MAIN STACK USED: 0000011C( 284)+------+------+------+-------------------+| ID | USED | SIZE | ADRS+------+------+------+-------------------+| 00 | 0364 | 2048 | 20002B8C-2000338B| 01 | 0236 | 2048 | 20001554-20001D53| 02 | 0252 | 2048 | 2000338C-20003B8B| 03 | 0236 | 2048 | 20000D54-20001553| 04 | 0228 | 2048 | 20001D54-20002553+------+------+------+-------------------+

タスク周期、実行時間確認+----+----------+----------+----------+| ID | 周期 MIN | 周期 MAX | 回数+----+----------+----------+----------+| 00 | 00000000 | 00000019 | 00100405| 01 | 00001035 | 00001049 | 00000018| 02 | 00000132 | 00000135 | 00000135| 03 | 00000033 | 00000041 | 00000496| 04 | 00000000 | 00000019 | 00100537+----+----------+----------+----------+