プロジェクト 15:Servo

1. 説明

DIYのスマートカーでは、障害物を自動で回避する機能が備わっていることが多いです。製作の過程では、超音波モジュールを左右に回転させるためにサーボを使用し、車と障害物との距離を検知して車の回避を制御する必要があります。他のマイコンでサーボの回転を制御する場合、サーボ角度を制御するために一定の周波数とパルス幅を設定する必要があります。

しかし、micro:bit メインボードを使用してサーボ角度を制御する場合、開発環境で制御角度を設定するだけで、対応するパルスが自動的に生成されてサーボの回転が制御されます。本プロジェクトでは、サーボを0°から90°の間で往復させる方法を学びます。

2. サーボの情報

サーボモーターは位置制御用の回転アクチュエータです。主にケース、基板、コアレスモーター、ギア、位置センサーで構成されます。動作原理は、サーボがMCUまたは受信機から送られる信号を受信し、周期20ms、幅1.5msの基準信号を生成し、取得した直流バイアス電圧をポテンショメータの電圧と比較して電圧差を出力することです。

本プロジェクトで使用するサーボでは、茶色の線がGND、赤が電源プラス、オレンジが信号線です。

サーボモーターの回転角は、PWM(Pulse-Width Modulation)信号のデューティ比を制御することで調整されます。PWM信号の標準周期は20ms(50Hz)です。理論的にはパルス幅は1ms〜2msの範囲ですが、実際には0.5ms〜2.5msの範囲となります。パルス幅は0°から180°までの回転角に対応します。ただし、メーカーが異なれば同じ信号でも回転角が異なる場合がある点に注意してください。

詳しくは:

3. パラメータ

  • 動作電圧: DC 4.8V ~ 6V

  • 動作角度範囲: 約180 °(500 → 2500 μsec時)

  • パルス幅範囲: 500 → 2500 μsec

  • 無負荷回転速度: 0.12 ± 0.01 秒 / 60(DC 4.8V) 0.1 ± 0.01 秒 / 60(DC 6V)

  • 無負荷電流: 200 ± 20mA(DC 4.8V) 220 ± 20mA(DC 6V)

  • 停止トルク: 1.3 ± 0.01kg·cm(DC 4.8V) 1.5 ± 0.1kg·cm(DC 6V)

  • 停止電流: ≦ 850mA(DC 4.8V) ≦ 1000mA(DC 6V)

  • 待機電流: 3 ± 1mA(DC 4.8V) 4 ± 1mA(DC 6V)

4. 準備

  • micro:bit ボードを keyestudio 4WD Mecanum Robot Car V2.0 のスロットに挿入する

  • 電池を電池ホルダーに入れる

  • 電源スイッチを ON にする

  • USBケーブルで micro:bit をコンピュータに接続する

  • Makecode の Web版を開く

5. テストコード

「JavaScript」をクリックして対応する JavaScript コードを表示:

  1. テスト結果

テストコードをアップロードし、POWERスイッチをONにすると、サーボが0度から180度まで回転します。