ラジコンの受信機やCube Pilot(Pixhawkも含めます)が出力するPWM信号から電動系の負荷を駆動したい場合の考え方についてまとめます。
サーボ出力を用いて負荷を動かすには?
Cube Pilotのサーボ出力はモータを駆動する為、PWMが出力される仕組みとなっています。
動かしたい負荷がDCなので、そのままでは負荷は動かすことは出来ません。
DC負荷を動かす為、以下の様な対応を行ないます。
対応
1.自動走行用の出力以外の出力端子をGPIOに割り当てる
2.GPIO出力信号でリレーを動かす
1.出力端子をGPIOに割り当てる
リレーを出力する為には以下の設定を行ってください。
・リレーピン出力を有効にする
・リレー出力端子を割り当てる(最大6個まで)
・出力端子をGPIOに設定する
パラメータの設定
パラメータ | 設定値 | 備考 |
---|---|---|
RELAY_DEFAULT | 1 | 1に設定することでRELAY PIN 機能が有効となる (設定後Autopilot再起動) |
RELAY_PIN | 以下参照 | |
RELAY_PIN2 | 以下参照 | |
RELAY_PIN3 | 以下参照 | |
RELAY_PIN4 | 以下参照 | |
RELAY_PIN5 | 以下参照 | |
RELAY_PIN6 | 以下参照 | |
SERVOxx_FUNCTION | -1 | -1に設定することでGPIOが有効となる |
SERVOxx_FUNCTIONのxxの部分を出力したい端子に割り当てます
端子割り当て
端子 | 割り当て | 値 |
---|---|---|
AUXOUT1 | SERVO9 | 50 |
AUXOUT2 | SERVO10 | 51 |
AUXOUT3 | SERVO11 | 52 |
AUXOUT4 | SERVO11 | 53 |
AUXOUT5 | SERVO13 | 54 |
AUXOUT6 | SERVO14 | 55 |
MainOut1 | SERVO1 | 101 |
MainOut2 | SERVO2 | 102 |
MainOut3 | SERVO3 | 103 |
MainOut4 | SERVO4 | 104 |
MainOut5 | SERVO5 | 105 |
MainOut6 | SERVO6 | 106 |
MainOut7 | SERVO7 | 107 |
MainOut8 | SERVO8 | 108 |
MainOutの端子は走行用に使用していない端子を使用してください
2.駆動回路を介してリレーを駆動させる
補足
3.3V出力でリレーのコイル電流が20mA程度のものであれば
2SC1815でリレーのドライブ回路が作成できます
参考
ArdupilotのリレーSWの項目に記載されています