ステッピングモーター + Raspberry Pi ② モーター使いの第一歩「動いた・・・」

初めてPythonで書いたプログラムはLチカで成功したが、
A4988やDRVに繋いでみると動かない。配線はこんな感じ:

普通に考えて動くはずなのだが(汗) 以下はPython側:

#!/usr/bin/python
# coding: utf-8
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.OUT)#2:Enableに定義
GPIO.setup(3, GPIO.OUT)#3:Dir
GPIO.setup(4, GPIO.OUT)#4:Step
GPIO.setup(17, GPIO.OUT)#17:MS1
GPIO.setup(27, GPIO.OUT)#27:MS2
GPIO.setup(22, GPIO.OUT)#22:MS3
GPIO.output(2, 0)
time.sleep(3)
GPIO.output(17, 0)
GPIO.output(27, 0)
GPIO.output(22, 0)
GPIO.output(3, 0)
for num in range(0,2000):
____GPIO.output(4, 1)
____time.sleep(0.0005)
____GPIO.output(4, 0)
____time.sleep(0.0005)
GPIO.output(3, 1)# 逆回転
for num in range(0,500):
____GPIO.output(4, 1)
____time.sleep(0.0005)
____GPIO.output(4, 0)
____time.sleep(0.0005)
GPIO.cleanup()

MSxはドライバ側の問題なのでハードで設定できるのか。
EnableはLOWでないと駄目。

ドライバを何個も挿して試したら、動いた

最終手段、手持ちのドライバを何個も試したら、動いた。
どうやら使い古したドライバ側に問題があったらしい?
よ、良かった。。やっと、一歩。。
頭で考えて理論的にはできる筈なのに、イージーミスで消耗。

マジで思いっきり遠回りしたが、色々と体感的に判ってきた。
自分はプログラミングも電子工作も他の事も、最初にパッと理解できない性質で、ぐだぐだと時間を費やさなければ「やり方」が身に付かないタイプなので、データーシートを隅から隅まで読んでサッとできる人ではない。残念なのだが。。

まず5Vのステッピングモーターはこの手のドライバでは駄目だよなぁーって事。モーター選びには重要なんじゃないかな?24Vのモーターとかなら、低い電力で動かせるし、12Vや24Vを使うべきなんだろうなぁ、って事に気が付いた。遅いんだけど;

IoTとかで使うモーターは結構トルクが必要なんじゃないかな。
目標のヨーロッパ型の農業ハウスの窓の開け閉めなんて、トルクがかなり必要な感じで、家のシャッターや雨戸や自動ドアでも、ギアの知識が未だない自分は、そう考えてしまう。

とりあえずモータ、ドライバ、ラズパイ、プログラムなどの動作確認はできたので、次のプロジェクトに移りたい。
動作確認はできても、まだ色々詰める事項があるので、

本来、これもやりたかった事の一つで、太陽光パネルの自動追尾なのである。本気ではないので、手軽にやってみる。

動かなかったのはVrefの問題だったのか?

総括として、DRV8825とA4988をまとめるつもりでググったら、こんな記事が出てきた。ラズパイでDRV8825を動かしているが、FAULTピンがあって配線が異なっている。しかもVrefへの注意がある。そうそうVref。またこういう話もハマりそうなポイントだ。

A4988:最大電流=VREF x 2.5 ←MAX2AならVrefは0.8V
DRV8835:最大電流=VREF x 2 ←MAX2.5AならVrefは1.25V

手持ちのモータのキャパは知らないが、次のモータは2.5Aまでのを買おうw で、まとめると:

A4988:モータ電圧2.0 – 37V。35Vで2A。1/16 stepまで
DRV8835 : モータ電圧8.2 – 45V。24VでMAX2.5A。1/32 stepまで
トルクからするとDRV8835かな。ステップ解像度も高い。

またDRV8834という低電圧用ドライバもあるので、これを使えば2.5~10.8Vのステッピングモータも使えるらしいが、割愛。

TMC2100:モータ電圧4.75- 46V。1.2A。ステルスは1/16 step
最大電流=(VREF x 1.77A)/ 2.5V ←MAX1.2AならVrefは1.69V

上記のSilentStepStick TMC2100もあるが、コスト重視なら、DRV8835で決まりそうだ。あとはモータは24V2.5Aかな?
その場合、1.8°のモータで僕の場合は構わない。絞られた。

今回の敗因(分析)

手持ちにST-42BYH1004-5013という秋月から購入した5Vモータがあるのだが、これが今回のテストで悪さをしていた。

5Vでモータを駆動するわけなのだが、手持ちのものは12Vでしか動かない。この原因はわからないのだが、元々12Vで多用したせいで、モータに異常があるのかもしれない。だから5Vでテストしてみても、何の反応もないのは当然の事だった。まさかの敗因。

すぐにトラブルシュートするためには(反省)

もう一方で使用した12Vのモータを触っていて気が付いたのは:

EnableをLOWにした後、モータから少し音が出るか出ないか

を判定するために数秒待ったらどうか、ということ。(赤字部分)
モータが待ち受け状態(?)になるのが判るので、この音が聞こえない場合はそもそもモータとドライバのコミュニケーションが成立していないと考えても良いかも。

 

QR Code

コメントを残す

メールアドレスが公開されることはありません。

スパム対策により、日本語が含まれない投稿は無視されますのでご注意ください。