モータドライバを使ったモータ制御・ラズパイ

Raspberry PiでDCモータを制御

この記事では、Raspberry Pi(ラズパイ)でDCモータを制御する方法を説明してく。だれでも簡単にモータを制御できるような内容となっているので、ぜひ参考に!

Raspberry Piでモータを制御するまでの流れ

今回はRaspberry Pi、モータドライバ、DCモータを使用する。また、Raspberry Piとモータ側の電源は別々にする。

ラズパイ・モータドライバ・モータの接続
ラズパイ・モータドライバ・モータの接続

ラズパイはRaspberry Pi zero WHを使用

Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス

Amazon

モータドライバはTA8428Kを使用

TOSHIBA(東芝) DC モータ用 フルブリッジドライバ 7V〜27V 1.5A TA8428K
TOSHIBA(東芝) DC モータ用 フルブリッジドライバ 7V〜27V 1.5A TA8428K

正転・逆転・ストップ・ブレーキの4モードがコントロール可能、 逆起電力吸収用ダイオード・熱遮断、過電流保護回路を内蔵、 出力電流:1.5A(AVE)、3.0A(PEAK)

Amazon

DCモータはギヤ比30:1のギヤードモータを使用

ロボサイトのギヤードモータは、見た目がスッキリしてコンパクトで、モータの受け皿も付いているので使いやすくてオススメ!

ロボカップジュニア ロボサイトギヤモータ30:1(RA250030-58Y91) ダイセン
ロボカップジュニア ロボサイトギヤモータ30:1(RA250030-58Y91) ダイセン

ギヤ比 30:1、使用電源 DC3V~6V、無負荷電流 0.15A、 モータ回転数 7000rpm、モータ起動トルク 174g・cm、 全長 73mm、最大径 Φ27.5mm、シャフト長 15mm、先端6mm M3、シャフト径 Φ4mm

Amazon

モータにパスコンを半田付け

それではまずはモータの準備から。実は、Raspberry PiでDCモータを使う場合、そのままでは使えない。モータは急に止まったり、逆回転したときに、必ず逆起電圧が発生する。逆起電圧はかなり大きな電圧で、通信のノイズとなってデバイスが誤動作してしまうのだ。そこでモータのノイズを除去するために、モータにコンデンサを半田付けする必要があるのだ。

モータにパスコンを半田付け
モータにパスコンを半田付け

このコンデンサは瞬間的に発生したノイズをアースに逃がす役割を持っており、バイパスコンデンサ(パスコン)と呼ばれている。コンデンサの容量は0.1uF程度で、積層セラミックコンデンサを使えば良いだろう。図のように、モータの端子間に1つと、それぞれの端子とシャーシの間にコンデンサを半田付けしておこう。

モータとパスコンの配線図
モータとパスコンの配線図

シャーシに半田付けするときは、シャーシをあらかじめやすりで削っておくと半田がのりやすい。

モータドライバTA8428Kの使い方

モータの準備ができたところで、モータドライバTA8428Kを準備しよう。TA8428KはDCモータ用のブリッジドライバである。モータドライバは電流が多く流れるため、放熱板をつけた方が良いだろう。また、電圧を安定させるために、モータドライバ近くの電源とGNDの間に10μFのコンデンサを入れている。

モータドライバTA8428Kの写真
モータドライバTA8428Kの写真

TA8428Kの特徴

  • モータの正転、逆転、ストップ、ブレーキが制御できる。
  • 電源は7.0~27.0Vの間で動作する。
  • 最大3.0A、平均で1.5Aの電流を流せる。

各ピンの役割

端子番号端子記号説明
1IN1出力の状態を制御する
2IN2出力の状態を制御する
3OUTADCモータへつなげる
4GNDGND
5OUTAbarDCモータへつなげる
6N.C使わない
7Vcc電源電圧

※ドライバ正面の左側から1番端子となる。

重要なのは、IN1とIN2に入力される信号によって、モータが制御されるのだ。

真理値表

それではINとOUTの関係を見てみよう。たとえばモータを正転させたい場合は、IN1にHighを入力し、IN2をLowにすれば良い。ちなみに入力電圧はドライバのVccの範囲まで入力が可能となっている。もちろんRaspberry PiのGPIO出力3.3VでもHighと認識されるようになっている。

IN1IN2OUTAOUTAbar出力モード
HHLLブレーキ
LHLH逆転
HLHL正転
LLOFFOFFストップ

モータドライバだけでモータを動かしてみよう!

Raspberry Piで制御する前に、モータドライバだけでモータを動かしてみよう。次のように配線して、モータを正転させてみよう。

端子番号端子記号説明
1IN19V
2IN2GND
3OUTADCモータへ
4GNDGND
5OUTAbarDCモータへ
6N.C未接続
7Vcc9V

モータとモータドライバを繋いだ写真
モータとモータドライバを繋いだ写真

無事、正転しただろうか?その他にも、IN1とIN2の状態を入れ替えて、逆転やブレーキができるか確かめてみよう!

TA8428Kのデータシートはこちらを参考

モータの回転スピードを変える方法

ここまやってこられた方は、モータドライバでモータを制御する方法が意外と簡単に感じられたのではないだろうか?しかしながらモータの制御には、正転、逆転、ブレーキの他に、回転スピードがある。この制御を一体どうやって行うのか、これから説明していきたい。

モータドライバTA8428Kでモータの速度を変えるには、入力信号にPWMを送ることで回転スピードを変化させることができる。

PWMとは?

PWMとは、パルス幅変調(Pulse Width Modulation)で、高速でスイッチをオンオフするイメージに近い。あえて難しく言えば、周波数が一定のパルス信号のデューティ比を変えることで、出力電圧の大きさを変えることである。デューティ比とは信号の1周期における、オンとオフの比率である。

PWMにおける出力電圧の変化
PWMにおける出力電圧の変化

LEDの明るさをPWMでコントロールする記事も書いたのでご参考に。ただし、今回はPWMが理解できなくても、モータドライバを使うことができるので大丈夫。

PWMに関してはこちらの記事も参考に

Raspberry Piを使ってPWM制御でモータを動かしてみよう!

それでは最後に、Raspberry Piを使ってPWM制御でモータを動かしてみよう。gpiozeroライブラリを使うと簡単にモータを制御できるので、次のようにしてインストールしておく。

$ sudo apt install python-gpiozero

gpiozeroのドキュメントはこちら

Raspberry Piの配線

Raspberry Piを次のようにモータドライバに繋いでおこう。Raspberry PiとモータドライバのGNDを共通にすることを忘れずに。

Raspberry PiTA8428K
GPIO14IN1
GPIO15IN2
GNDGND

Pythonプログラム

正転しながら徐々にスピードが上がり、急転回して徐々にスピードが遅くなり停止するまでのプログラムをPythonで書いてみた。gpiozeroにはMotorモジュールが用意されていて、それを使えばご覧の通りモータの制御がとても簡単にできる。PWMが分からなくても、モータのスピードを変えることができるだろう。

# -*- coding: utf-8 -*-
from gpiozero import Motor
from time import sleep

### TA8428K モータドライバテスト ###

motor = Motor(14, 15) # GPIO14をIN1へ、GPIO15をIN2へ繋ぐ

motor.forward(0.3) # 0.3はモータの速度
sleep(2) # 2秒間正転し続ける
motor.forward(0.6)
sleep(2)
motor.forward(1.0)
sleep(2)
motor.backward(1.0) # ここで反転する
sleep(2)
motor.backward(0.6)
sleep(2)
motor.backward(0.3)
sleep(2)

motor.stop()

DCモータを使って倒立振子ロボットを作ってみたので参考に!

この記事で扱った関連製品はこちら

TOSHIBA(東芝) DC モータ用 フルブリッジドライバ 7V〜27V 1.5A TA8428K
TOSHIBA(東芝) DC モータ用 フルブリッジドライバ 7V〜27V 1.5A TA8428K

正転・逆転・ストップ・ブレーキの4モードがコントロール可能、 逆起電力吸収用ダイオード・熱遮断、過電流保護回路を内蔵、 出力電流:1.5A(AVE)、3.0A(PEAK)

Amazon
ロボカップジュニア ロボサイトギヤモータ30:1(RA250030-58Y91) ダイセン
ロボカップジュニア ロボサイトギヤモータ30:1(RA250030-58Y91) ダイセン

ギヤ比 30:1、使用電源 DC3V~6V、無負荷電流 0.15A、 モータ回転数 7000rpm、モータ起動トルク 174g・cm、 全長 73mm、最大径 Φ27.5mm、シャフト長 15mm、先端6mm M3、シャフト径 Φ4mm

Amazon
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス

Amazon
正規代理店商品 Raspberry Pi 4 Model B (8GB) made in UK element14製 技適マーク入
正規代理店商品 Raspberry Pi 4 Model B (8GB) made in UK element14製 技適マーク入

Amazon

Raspberry Piの参考書

Raspberry Pi クックブック 第2版 (Make:PROJECTS)
Raspberry Pi クックブック 第2版 (Make:PROJECTS)

本書は、全世界で多くのユーザーの支持を集めているマイコンボード「Raspberry Pi」を使いこなすためのレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本を紹介した上デ、実際の作品製作に必要になる、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイなどの使い方へと解説を進めていきます。

Amazon
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero/Zero W対応
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero/Zero W対応

本書ではRaspberry Pi Zero / Zero Wの概要から必要な周辺機器の説明、OSの導入やセットアップなどといった準備、そしてLinuxに初めて触れる人に向けてLinuxの基礎やシェルの操作などを解説しています。また、準備が整ったら実際に電子部品をRaspberry Pi Zero / Zero Wで制御する方法も解説しました。

KindleAmazon
Raspberry Pi ZeroによるIoT入門- Zero W 対応
Raspberry Pi ZeroによるIoT入門- Zero W 対応

本書は、大人から子供まで、初心者の方でも、ラズパイZeroとラズパイZero WをIoTのデバイスとして使いこなせるようになることを目的とした入門書です。また、ラズパイZeroとラズパイZero WをUSBケーブル1本でパソコンに接続できる便利な「Zero over USB」について、日本で初めて詳しく解説しました。

Amazon

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

あなたにおすすめ