11:58 pm Python, Raspberry Pi, お買い物, コンピュータ
モーターとモータードライバーは eBay で調達しました。1セット 358 円。
モーターは 4相 DC 5V の 28YBJ-48 で1ステップ 5.625 (=360/64) 度がさらに 1/64 に分周されているらしい。
ドライバーは ULN2003。ドライバーといっても ULN2003 は単なるトランジスタアレイなので「1度右に!」とかじゃなくて、正しい順番にコイルを励磁してあげる必要があるらしい。
こちらを参考に ブレッドボード使って
こんな感じで繋ぐ….
ステッピングモーターはあまり早く動かすと脱調するらしい。ここの PDF によると 28YBJ-48 は 100Hz らしい。(ん~、64*64=4,096 だから 1周最速40秒かかるのか。)
Python でプログラムを書くことにする。
高いトルクが得られる2-2相励磁にで…
とりあえず回転することを確認したいので適当なコードで…
[python]
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
GPIO.setup(17, GPIO.OUT)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)
for i in range(0,360):
GPIO.output(17, GPIO.HIGH)
GPIO.output(18, GPIO.HIGH)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.LOW)
time.sleep(0.02)
GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.HIGH)
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.LOW)
time.sleep(0.02)
GPIO.output(17, GPIO.LOW)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.HIGH)
time.sleep(0.02)
GPIO.output(17, GPIO.HIGH)
GPIO.output(18, GPIO.LOW)
GPIO.output(27, GPIO.LOW)
GPIO.output(22, GPIO.HIGH)
time.sleep(0.02)
GPIO.cleanup()
[/python]
回った!
クラス、適当に設計していきます。