はじめに

この実験は、サーボモーターの入門編である。サーボモーターは、特定の角度に回転するよう指示できる賢いモーターである。この実験では、サーボモーターをプログラムして、ある特定の角度に回転させ、次にその角度を全可動範囲にわたって掃引し、それを繰り返します。

必要な部品

以下の部品が必要です:

サーボモーターの紹介

一般的なモーターが連続的に回転するのとは異なり、サーボモーターは特定の角度まで回転し、別の角度に回転するよう指示されるまでその角度を保持することができます。PWM(パルス幅変調)パルス列をサーボに送ることで、サーボの角度を制御することができる。PWM信号は、0度から180度までの特定の角度にマッピングされている。

サーボの内部には、シャフトを駆動するモーターに接続されたギアボックスがある。また、サーボの回転位置をフィードバックするポテンショメーターがあり、入力されたPWM信号と比較される。サーボは2つの信号を一致させるために適宜調整する。

この実験では、サーボの電源は赤線が3.3ボルト、黒線がアースで、白線はピンP0に接続されている。

ハードウェアの接続

すべての接続を始める準備はできましたか?以下の配線図で、すべての接続方法を確認してください。

ブレッドボードにどのように置くかを示す部品のマークに特に注意してください。極性のある部品は、一方向にしか回路に接続できません。

サーボのメス3ピンヘッダに3xジャンパーワイヤーを接続する。こうすることで、サーボのブレッドボード化が容易になる。

実験用配線図

Servo Micro Bit
Brown Wire GND
Red Wire 5v
Orange Wire P0
注:micro:bitの3.3Vピンでサーボを制御することは、高精度の回転角度を得ることを目的としていません。マイクロサーボにより高い精度を求める場合は、サーボモーターに推奨動作電圧の4.8Vから6Vの外部電源を供給することをお勧めします。外部電源からアースを接続することをお忘れなく。

スクリプトの実行

エディタウィンドウの右上にある「開く」アイコンをクリックして、以下のコードをコピー&ペーストするか、MakeCodeエディタに再作成してください。コードウィンドウの右下にあるダウンロードボタンをクリックして、このサンプルをダウンロードすることもできます。

注意: MakeCodeプログラミング環境とシミュレートされた回路を操作するには、広告/ポップアップブロッカーを無効にする必要があります!

注意すべきコード

この実験のコードブロックを見てみましょう。

このコードが見づらい場合は、上の画像をクリックすると見やすくなります!

Code to Note Exp 8

“Direction To”を設定する

On Start ブロックでは、direction 変数を 1 に設定する。この値を 1 と -1 の間で切り替えて、サーボがスイープする方向を決める。

サーボ書き込み

Servo Write ブロックは、特定のピンに接続されたサーボを、指定した角度に回転させるために使います。このコマンドを使えば、サーボモーターに0から180までの任意の角度をいつでも書き込むことができますが、次の角度に移る前に、サーボモーターが反応するのに十分な時間を確保するために、少し間を置くことを忘れないでください。

変更方法

ある変数をある値(正または負)だけ増減させたい場合は、Change by ブロックを使用します。変更したい変数を選択し、次にインクリメントしたい値(正の値)またはデクリメントしたい値(負の値)を選択します。このブロックを使って、角度を1度増やす。

“Direction to Direction x -1”を設定する

サーボの向きが 0 か 180 になったら、向きを変えるために、directionvariable に -1 をかけて、正の値から負の値、負の値から正の値に切り替えます。こうすることで、change by ブロックを使用したときに、数値が正か負になる。

表示されるもの

電源を入れると、サーボが1つの位置(0度)に移動し、電源を切るか、別の角度にするように指示するまで、180度前後にスイープし始めるのが見えるはずです。

問題解決

サーボがねじれない

カラーワイヤーを使っていても、サーボを逆向きに差し込むのは驚くほど簡単です。このような場合が考えられます。

まだ動かない

電源(赤と黒)を3.3ボルトとアース(GND)に接続するのを忘れていた。