ローリングロボット その5 ”パルス位置変調”

パルス位置変調 PPM (Pulse-Position Modulation)

logic 0

logic 0

"0" のときはパルス幅 562.5 µsec に対して同じ時間 562.5 µsec のスペースを設けます。ちなみに Ir Receiver のマニュアルを読むと必ずしもパルスとスペースの各々の時間を測っているわけではなく、パルスの先頭(立ち上がり or 立ち下がり)から次のパルスの先頭までの時間が 1.2ms (1.0ms 〜 1.7ms) のときに 0 と判定するようです。

 

logic 1

logic 0

"0" のときはパルス幅 562.5 µsec に対して3倍の時間 1687.5 µsec のスペースを設けます。ちなみに Ir Receiver のマニュアルを読むと必ずしもパルスとスペースの時間幅を測っているわけではなく、パルスの先頭(立ち上がり or 立ち下がり)から次のパルスの先頭までの時間が 2.2ms (2.0ms 〜 2.5ms) のときに 1 と判定するようです。

 

Custom Code

カスタマーコード, 会社コード, アドレスなど複数の呼び名があるようです。Ir受信機は Custom Code が一致しなかったフレームは無視するようです。

LSB (Least Significant Bit) から MSB (Most Significant Bit) の順に 8bit の Custom Code を送り、次に論理を反転した 8bit を送ります。 近年は Custom Code を 16bit に拡張している場合もあるようです。 Rolling Robot の Custom Code は 0x00 (0xFF00) です。CH1 (赤) と CH2 (青) で Custom Code は同一でした。

 

Data Code

LSB (Least Significant Bit) から MSB (Most Significant Bit) の順に 8bit の Custom Code を送り、次に論理を反転した 8bit を送り、誤り検知をしています。 Data Code は 8bit です。操作ボタン(前進、後退、右旋回、左旋回、…)ごとに異なる Data が割り当てられています。同じ操作ボタン(たとえば前進)でも CH1 (赤) と CH2 (青) で Data Code は異なります。