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

 

Raspberry PiでDCモータを制御

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

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

ラズパイでモータを制御するまでの流れ

こちらの図のように、ラズパイからモータドライバを経由してDCモータを制御する。そして、ラズパイとモータの電源は別々に用意する。

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

Raspberry Pi zero WHを使用

Raspberry Pi Zero W - ヘッダー ハンダ付け済み
Raspberry Pi Zero W - ヘッダー ハンダ付け済み
Amazon

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

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

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

モータの準備(パスコンを半田付けする)

それではさっそくモータを配線したいところだが、ラズパイでDCモータを使う場合はモーターにちょっと細工をしなければならない。

モータは逆回転やストップなどの急激な動きの変化時に、逆起電圧が発生する。この逆起電圧はかなり大きな電圧で、通信のノイズとなってラズパイが誤動作してしまうのだ。

そこでモータのノイズを除去するために、モータにコンデンサを半田付けする必要がある。

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

このコンデンサは瞬間的に発生したノイズをアースに逃がす役割を持っており、バイパスコンデンサ(パスコン)と呼ばれる。コンデンサの容量は0.1uF程度で、セラミックコンデンサを使えば良い。

Longruner 積層セラミックコンデンサ10種類 0.1uF-10uF 550個入り
Longruner 積層セラミックコンデンサ10種類 0.1uF-10uF 550個入り
Amazon

図のように、モータの端子間と、端子とシャーシの間に合計3つのコンデンサを半田付けしておく。

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

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

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

モータの準備ができたところで、モータドライバTA8428Kを準備しよう。TA8428KはDCモータ用のブリッジドライバである。モータドライバは電流が多く流れるため、ドライバを壊さないためにも放熱板をつけた方が安全だ。

また、急激な電流変化に耐えるため、モータドライバ近くの電源とGNDの間に10μFのコンデンサを入れてある。

TA8428Kの特徴

さて、モータドライバTA8428Kの特徴を挙げておこう。

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

TA8428Kの各ピンの役割

TA8428Kの各ピンの役割はこちらの表の通り。

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

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

IN1とIN2に入力される信号によって、モータの制御を判断する仕組みになっている。

TA8428Kの真理値表

INとOUTの関係を詳しく見ていこう。

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

たとえば、モータを正転させたい場合は、IN1にHighを入力しIN2をLowにするといった具合で制御できる。入力電圧は、Vccの範囲まで入力可能。ラズパイのGPIO出力は3.3Vなので、GPIO端子をそのまま繋げられる。

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

ラズパイで制御する前に、モータドライバだけでモータを動かしてみよう。次のように配線すれば、モータが正転するはずだ。

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

どうだろう、無事に動かすことができただろうか?

その他、IN1とIN2の状態を入れ替えたりして、逆転やブレーキも確かめてみよう。

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

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

ここまでで、モータドライバの使い方をご理解いただけたともう。想像以上にモータドライバの使い方がカンタンだと思ったかもしれない。ところで、モータの制御には、正転、逆転、ブレーキの他に「回転スピード」というものもある。

  • モータの回転速度を変えるには、入力にPWM信号を送る

これからこのPWM信号を説明し、実際にモータの回転速度を変えていく。

PWM信号とは?

PWM信号とは、パルス幅変調(Pulse Width Modulation)で、高速でスイッチをオンオフしている信号と思ってもらって構わない。正確には、周波数が一定のパルス信号のデューティ比を変えることで、出力電圧の大きさを変えるのである。デューティ比とは信号の1周期における、オンとオフの割合のこと。

図の青い線がPWM信号で、赤い線が見かけ上の電圧になる。

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

詳しくはこちらの記事を参考に

ここではPWMについて理解できていなくても大丈夫。細かいことは飛ばして先へ進もう。

ラズパイを使ってPWM制御でモータを動かしてみよう

それではいよいよ、ラズパイでモータを動かしてみよう。ここでは、gpiozeroライブラリを使うと簡単にモータを制御できるようになるので、次のようにしてインストールしておく。

$ sudo apt install python-gpiozero

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

ラズパイとTA8428Kの配線

ラズパイとTA8428Kを次のように配線する。

Raspberry PiTA8428K
GPIO14IN1
GPIO15IN2
GNDGND

ここで、ラズパイとTA8428KのGNDを必ず共通にしておくこと。

Pythonプログラム

「正転しながら徐々にスピードが上がり、急転回して徐々にスピードが遅くなり停止」するプログラムをPythonで書いてみた。

gpiozeroには、Motorモジュールが用意されている。これを使えば、モータの制御がとてもカンタンだ。

# -*- 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()

いかがだっただろうか?モータードライバを使ってモーターを動かす方法、意外とカンタンだったかもしれない。今回紹介したTA8428Kとギヤードモータを使って、倒立振子ロボットを作ってみたので、よかったらこちらの記事も参考に。

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

TOSHIBA(東芝) DC モータ用 フルブリッジドライバ 7V〜27V 1.5A TA8428K
TOSHIBA(東芝) DC モータ用 フルブリッジドライバ 7V〜27V 1.5A TA8428K
Amazon
ロボカップジュニア ロボサイトギヤモータ30:1 ダイセン
ロボカップジュニア ロボサイトギヤモータ30:1 ダイセン
Amazon

人気のラズパイ

Raspberry Pi 4 Model B 8GB 技適マーク入 正規品!ラズベリーパイ4 モデルB
Raspberry Pi 4 Model B 8GB 技適マーク入 正規品!ラズベリーパイ4 モデルB
Amazon
TRASKIT Raspberry Pi 4 Model B Starter Kit
TRASKIT Raspberry Pi 4 Model B Starter Kit
Amazon
Raspberry Pi Zero W - ヘッダー ハンダ付け済み
Raspberry Pi Zero W - ヘッダー ハンダ付け済み
Amazon

人気のラズパイ周辺機器

10 インチRaspberry Pi用タッチモニター EleDuino HDMI モバイルディスプレイ
10 インチRaspberry Pi用タッチモニター EleDuino HDMI モバイルディスプレイ
Amazon
Raspberry Pi4 Model B /アルミニウム金属ケース/ファンレス/放熱シート付き
Raspberry Pi4 Model B /アルミニウム金属ケース/ファンレス/放熱シート付き
Amazon
Freenove Raspberry Pi 4 B 3 B+ 400用の究極のスターターキット
Freenove Raspberry Pi 4 B 3 B+ 400用の究極のスターターキット
Amazon
KEYESTUDIO DC 5V 4チャンネル リレーシールドモジュール 拡張ボード for Raspberry Pi
KEYESTUDIO DC 5V 4チャンネル リレーシールドモジュール 拡張ボード for Raspberry Pi
Amazon

Raspberry Piのオススメ入門書

Raspberry Piクックブック 第3版 (Make:PROJECTS)
Raspberry Piクックブック 第3版 (Make:PROJECTS)
Amazon
これ1冊でできる! ラズベリー・パイ 超入門 改訂第6版 Raspberry Pi 4/Zero W対応
これ1冊でできる! ラズベリー・パイ 超入門 改訂第6版 Raspberry Pi 4/Zero W対応
KindleAmazon
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero W対応
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero W対応
KindleAmazon
記事に関するご質問などがあれば、ぜひTwitterへお返事ください。