【自動運転#19】モータをラズパイを使って、回してみた。【ソフトウェアPart9】

目次

環境

Raspberry pi zero

エディターはラズパイに初めから付いている、Thonnyを使ってます。

前回まで

前回はようやくモータ、モータドライバ、ラズパイ本体を電子回路で繋ぐことができたので、

今回はプログラムでモータを回してみたいと思います。

部品

  • ピンソケット2種類
  • 基板
  • モータドライバ
  • Raspberry Pi Zero
  • ジャンプワイヤー
  • モバイルバッテリ

準備

モータドライバーの番号とラズパイGPIOと繋ぐ場所

この写真では上から1番です。
モータドライバ端子名と機能繋ぐ先
1番GNDラズパイGPIO39番
2番OUT1 出力端子モータの端子
3番NC何も繋げません。
4番Vref 制御電源端子モータドライバ8番と10kΩと繋いでます。
5番IN1 入力端子ラズパイGPIO35番
6番IN2 入力端子ラズパイGPIO37番
7番VCC ロジック側電源端子ラズパイGPIO1番(3.3V)
8番VS 出力側電源端子ラズパイGPIO2番(5V)
9番NC何も繋げません。
10番OUT2 出力端子モータの端子
*モータ端子はどちらに繋げてもいいです。

と書きましたが、正直、Vref,VCC,VSはどうしたらいいか、よくわかっていません。ごめんなさい。

勉強したことは、

  • VSとVCCはボルト(V)の大小関係はない
  • VSの電圧はVrefの電圧と同じか、Vrefの電圧より小さくして使用しなければならない。

ということくらいです。

写真じゃ変わりづらいですが、こんな感じです。

モータを回すプログラミングコード

実際のコードです。モータを1秒ONと1秒OFFを繰り返すだけのシンプルなプログラムです。”motor.py”という名前にしました。


import RPi.GPIO as GPIO
import wiringpi #GPIOを制御するライブラリ
from time import sleep

#GPIOのポートを指定
VREF = 2 #GPIO5V
motor_pin1 = 19 #GPIO35
motor_pin2 = 26 #GPIO37

#GPIOの初期化
GPIO.setmode(GPIO.BCM) #BCMモードに設定
GPIO.setup([VREF,motor_pin1,motor_pin2], GPIO.OUT)

#モータを回す

try:
    while True:
        #モータを回す
        print("回る")
        GPIO.output(motor_pin1,GPIO.HIGH)
        GPIO.output(motor_pin2,GPIO.LOW)
        sleep(1)

        #モータを停止する
        print("停止")
        GPIO.output(motor_pin1,GPIO.LOW)
        GPIO.output(motor_pin2,GPIO.LOW)
        sleep(1)
except KeyboardInterrupt:
    pass

GPIO.cleanup() #GPIOを初期化

動作確認

(ラズパイ側)

上のプログラミングファイル(motor.py)をダブルクリック。

“Run”をクリック。

すると、下の動画のような動きをします。

回りました!!

今後は。

PWMというのを使うと回転速度を指定できるらしいのでそのうち、やってみようと思います。

上の方にも書いてますが、VCC、VS、Vrefのことをよく理解していないので、もしかしたら間違って繋いでいるかもしれません。ご了承ください。

使った部品

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次