TOPに戻る

gpiozeroライブラリ入門⑦import Motor その1 BD65496

 DCブラシありモータは、電源の極性で回転方向が決まります。したがって、CW( clockwise、時計回り)方向とCCW(counterclockwise、逆)方向の切り替えをつないだまま変更するには、Hブリッジ回路が使われます。

  MOSFETとマイコン (3)  DCモータを動かす その1

使用したHブリッジIC BD65496MUVボードのおもなスペック

 スイッチサイエンスから入手したPoluloのボードを利用します。

  • 対応モータ電圧 4.5~36V
  • ロジック電圧 2.5~5.5V
  • 定格電流 1.2A @12V
  • ピーク電流 5A

使用したモータ

 スイッチサイエンスから入手しました。ノイズ対策用にセラミック・コンデンサが端子間にはんだ付けされています。

  ワイヤ付きホビーモーター 2736

  • 定格電圧 3.0V
  • 電源電圧 1.0~3.0 V(~12V)
  • 無負荷時回転数(1.0 V、110 mA時) 6600±10% rpm
  • 無負荷時電流 最大110mA
  • ストール時電流 0.8 A
  • 重量 約26 g

クラス

クラスgpiozero.Motor(forward, backward, *, pwm=True, pin_factory=None)

 CompositeDeviceを拡張し、双方向モータ・ドライバ回路(つまりHブリッジ)に接続されたモータを駆動する。
 ラズパイにHブリッジ・モータ・コントローラを取り付け、電源(バッテリ・パックや5Vピンなど)をコントローラに接続する。コントローラ・ボードの出力をモータの二つの端子に接続し、コントローラ・ボードの入力を二つのGPIOピンに接続する。

パラメータ;

 forward (int or str) – モータ・ドライバ・チップの前方入力であるGPIOピンに接続されている。有効なピン番号については、ピン番号を参照。これがNoneの場合、GPIODeviceErrorが発生する。
 backward (int or str) – モータ・ドライバ・チップの逆方向入力が接続されているGPIOピン。有効なピン番号については、ピン番号を参照。これがNoneの場合、GPIODeviceErrorが発生する。 
 enable (int or str or None) – モータを有効にするGPIOピン。一部のモータ・コントローラ・ボードに必要。有効なピン番号については、ピン番号を参照。
 pwm (bool) – True(デフォルト)の場合、モータ・コントローラ・ピンはPWMOutputDeviceのインスタンスを作成し、方向と可変速度の両方を制御する。 Falseの場合、DigitalOutputDeviceインスタンスを作成し、方向の制御のみを行う。 
 pin_factory (Factory or None) –   APIの解説を読む。


backward(speed=1)

 モータを後方に駆動する。

パラメータ;

 speed (float) – モータが回転する速度。クラスが構築されたときにpwmがTrueの場合は0(停止)からデフォルトの1(最大速度)までの任意の値にすることができる(そうでない場合は0または1のみ)。

forward(speed=1)

 モータを前進させる。

パラメータ;

 speed (float) – 速度(フロート)– モータが回転する速度。クラスが構築されたときにpwmがTrueの場合は0(停止)からデフォルトの1(最大速度)までの任意の値にすることができる(そうでない場合は0または1のみ)。 

reverse()

 モータの現在の方向を逆にする。モータが現在アイドル状態の場合、これは何もしない。それ以外の場合、モータの方向は現在の速度で逆になる。

stop()

 モータを停止する。

is_active

 モータが現在動作している場合はTrueを返し、それ以外の場合はFalseを返す。

value

 モータの速度を、-1(全速力後退)と1(全速力前進)の間の浮動小数点値として表し、0は停止を表する。

接続-1

 入力INA/INBにPWM信号を入れる接続です。

プログラム

 backward()の引数speedが0.08以下だと回転を始めませんでした。

from gpiozero import Motor
from time import sleep

motor = Motor(17, 18)
motor.backward(0.09)
sleep(3)
motor.stop()

接続-2

 入力INAにPWM信号を、入力INBにdirection信号を入れる接続です。PWM端子を3.3Vにつなぎ、クラスを使うとき、引数にpwm=Falseを追加します。

 speedのパラメータは'0'もしくは'1'に限定され、回転速度の調整はできませんでした。

from gpiozero import Motor
from time import sleep

motor = Motor(17, 18, pwm=False)
motor.forward(1)
sleep(3)
motor.stop()

連載 gpiozeroライブラリ入門

- OutputDevice -

(1) LED その1 (2) LED その2 (3) PWMLED (4) RGBLED

(5) Buzzer (6) TonalBuzzer

(7) Motor その1 BD65496 (8) その2 TB67H420FTG (9) その3 TB6612 (10) その4 MC33926 (11) PhaseEnableMotor DRV8835

(12) Servo (13) AngularServo