へっぽこ元ロボコニスト

ロボコンに燃え尽きた自分が日々の出来事を書くだけのブログです twitter:@mozyanari_tech

MENU

2021/04/04(プロポのサーボ信号を受信したい)


スポンサーリンク

社会人二年目

前回、PWM Inputを使って自分で出したPWM信号を受信しました
mozyanari.hatenablog.com

このコードで実際のプロポを接続してサーボ信号を受信しようとしたのですが、
信号の周期、Duty比を計算したところ少し汚い数字が出てきました
f:id:masanari7430:20210404202647p:plain
b=55000、クロックの8Mhzなので
8*10^6 / 55000 =145Hz

なので、実際にプロポのサーボ信号をロジアナで確認してみました
f:id:masanari7430:20210329143904p:plain

見てみると、
周期15ms=66Hz、Duty比10%の信号が出ていました
計算と異なります

よく考えてみると、前回の記事でも言及しましたが現在の設定では
8Mhzのクロックでカウンタが動き、Max 65535カウントしかできないので、
8*10^6/65535=122Hz
以上の周期しか正しくカウントできません

そりゃ計算の結果がおかしくなるわ

という訳で、以下のようにプリスケーラの設定を0→7に変更して
カウンタクロックを8Mhzから1MHzに変更しました
f:id:masanari7430:20210404204213p:plain
こうすることで
1*10^6/65535=15Hz
以上のサーボ信号を受信できます

やってみた結果は以下のようになり
f:id:masanari7430:20210404203604p:plain
b=15000、クロック1Mhzなので
1*10^6 / 15000 =66Hz
となり、想定していた通りの結果が出ました
(c、dの値は変更する前の値を表示しています)

また、余談ですがプロポのサーボ信号の上限、下限、ニュートラルは意外と狭く
今回の設定ではカウンタが2000(13%)→1000(6%)→1500(10%)これぐらいの変化量です

結局言いたかったのは、プロポの信号は意外と遅いので設定をしないと値が取れないということです
次はモータを動かします