RaspberryPiPicoで2種類のモータドライバTB6612FNGとDRV8835を使ってMicroPythonでモータを正転・静止(空転)・逆転・ブレーキさせてみました。
DRV8835(Pololu製)
TB6612FNG(SparkFun製)
なお、今回使用したモータドライバとモータとその他の部品はこちらになります。
モータドライバ DRV8835(Pololu製)
モータドライバ TB6612FNG(SparkFun製) ピンヘッダ付き
モータドライバ TB6612FNG(SparkFun製) ピンヘッダなし
モータ
電池ボックス
ワニ口ーオスのジャンパワイヤ
※Raspberry Pi Pico・ブレッドボード・ジャンパワイヤ(オス)については記述を省略させていただきます。
まず、通常の方法でMicroPythonのファームウェアをセットアップします。
設定方法は下記のURLに記載されています。
URL: https://www.raspberrypi.org/documentation/rp2040/getting-started/#getting-started-with-micropython
また、当ブログでは下記の記事に記載しています。
次に、開発環境の設定していない場合は設定します。
当ブログでは下記の記事に記載しています。
Raspberry Pi Pico設定が終ったら、各モータドライバでモータをお動かすために配線を行っていきます。今回はそれぞれ下記のように配線いたしました。
DRV8835(Pololu製)
DRV8835についてはFritzingにモータドライバの図がないので、画像を貼り付けています。
今回の配線はIN/IN modeで行っており、モータは1つで動かしています。
TB6612FNG(SparkFun製)
次にプログラムですが、ラズパイマガジンや参考にしたサイトをもとに、次のようにプログラムいたしました。
DRV8835
from machine import Pin
import time
AIN1_PIN = 18
AIN2_PIN = 19
mot1 = Pin(AIN1_PIN, Pin.OUT)
mot2 = Pin(AIN2_PIN, Pin.OUT)
while True:
#foward(正転)
mot1.value(1)
mot2.value(0)
time.sleep(5)
#coast(空転)
mot1.value(0)
mot2.value(0)
time.sleep(5)
#reverse(逆転)
mot1.value(0)
mot2.value(1)
time.sleep(5)
mot1.value(1)
mot2.value(1)
time.sleep(5)
TB6612FNG
from machine import Pin,PWM
import time
pwma_PIN = 2
AI1_PIN = 3
AI2_PIN = 4
mota1 = Pin(AI1_PIN, Pin.OUT)
mota2 = Pin(AI2_PIN, Pin.OUT)
pwma = PWM(Pin(pwma_PIN))
pwma.freq(1000)
duty=50
while True:
#foward(正転)
mota1.value(1)
mota2.value(0)
duty_16 = int((duty*65536)/100)
pwma.duty_u16(duty_16)
time.sleep(5)
#coast(空転)
mota1.value(0)
mota2.value(0)
duty_16 = int((duty*65536)/100)
pwma.duty_u16(duty_16)
time.sleep(5)
#reverse(逆転)
mota1.value(0)
mota2.value(1)
duty_16 = int((duty*65536)/100)
pwma.duty_u16(duty_16)
time.sleep(5)
mota1.value(1)
mota2.value(1)
duty_16 = int((duty*65536)/100)
pwma.duty_u16(duty_16)
time.sleep(5)
参考にしたサイトと雑誌
DRV8835(Pololu製)
※メーカのサイトです。各ピンの役割やモードと配線などが書かれています。
・ラズパイ工作パーツ大全 2021-2022 P21
※主にプログラムを参考にさせていただきました。
こちらで使用しているのは秋月電子通商製で配線がことなります。
TB6612FNG(SparkFun製)
※メーカのサイトです。各ピンの役割やモードなどが書かれています。
※主にプログラムを参考にさせていただきました。
※下の方にTB6612FNGとLEDの使用例があり、主に配線を参考にさせていただきました。
Comments