しばらく手に入らなかったRaspberry Pi PicoがGW前に手に入ったため、ステイホーム的に遊んでみる。
C/C++とMicroPythonのライブラリがあるが、基本MicroPythonで行くことにする。
何故?C/C++は飽きた…。
環境構築
まずはステッピングモータを回すということでモータを入手。
Ren He 5V ステッピングモータ+ 28BYJ-48 ULN2003ドライバーボード セット Arduino用 3個セット
という激安のステッピングモータ(3個セットで¥689)をAmazonで購入した。
こいつの良いところは安いところと5Vで動き、抵抗が200Ωであること。
つまり、USB電源で動く。
このステッピングモータはユニポーラなのでとりあえず1相励磁で動かす
1相励磁はその名のごとく1相づつ動かす
そのためとても制御が簡単
コードは以下
from machine import Pin
import utime
IN1 = Pin(2, Pin.OUT)
IN2 = Pin(3, Pin.OUT)
IN3 = Pin(4, Pin.OUT)
IN4 = Pin(5, Pin.OUT)
wait_ms = 2
while True:
# CW
IN1.value(1)
IN2.value(0)
IN3.value(0)
IN4.value(0)
utime.sleep_ms(wait_ms)
IN1.value(0)
IN2.value(1)
IN3.value(0)
IN4.value(0)
utime.sleep_ms(wait_ms)
IN1.value(0)
IN2.value(0)
IN3.value(1)
IN4.value(0)
utime.sleep_ms(wait_ms)
IN1.value(0)
IN2.value(0)
IN3.value(0)
IN4.value(1)
utime.sleep_ms(wait_ms)
CCWにしたい場合はINx.valueの回転方向を逆にすると良い
なお、wait_ms=1にすると脱調して動かなくなる。
カタログスペックでは
無負荷周波数引き:>600Hz、無負荷周波数抜く:>1000Hz
とまぁ分かりそうで分からないことが書いてあるが、1ms=1kHzが限界に近いのは事実のようだ。