目次
環境
Raspberry pi zero
エディターはラズパイに初めから付いている、Thonnyを使ってます。
前回まで
前回はようやくモータ、モータドライバ、ラズパイ本体を電子回路で繋ぐことができたので、
今回はプログラムでモータを回してみたいと思います。
部品
- ピンソケット2種類
- 基板
- モータドライバ
- Raspberry Pi Zero
- ジャンプワイヤー
- モバイルバッテリ
準備
モータドライバーの番号とラズパイGPIOと繋ぐ場所
モータドライバ | 端子名と機能 | 繋ぐ先 |
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のことをよく理解していないので、もしかしたら間違って繋いでいるかもしれません。ご了承ください。