タグ別アーカイブ: STEPPER MOTOR

STM32F401CCU6 STEPPING MOTOR CONTROL1

STM32F401CCU6開発ボードでSTEPPING MOTORを動かします。まずは、Rotary  Encoderを計測してみました。
Encoderの読み込みには、TIM3を使用しました。

エンコーダー 元 AB 相 5-24v 400 パルス 増分の光学式ロータリーエンコーダー 本体サイズ 39 * 35.5 mm NPN 出力
https://www.amazon.co.jp/%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80%E3%83%BC-5-24v-%E5%A2%97%E5%88%86%E3%81%AE%E5%85%89%E5%AD%A6%E5%BC%8F%E3%83%AD%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%BC%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80%E3%83%BC-%E6%9C%AC%E4%BD%93%E3%82%B5%E3%82%A4%E3%82%BA-35-5/dp/B076Q5W251

MXの機能で「Encoder Mode」を設定すれば、コードを自動生成してくれます。
STM32F401CCU6は、USBも使用できるのでCDCでEncoder値を取り出せます。USB CDCもMXでコードの自動生成ができます。

STM32F401CCU6は、小さいですが高機能です。ピン数が少ないので、大きなシステムは組めませんが、単機能であれば十分な性能を生かすことができます。

Intel Quark D2000 Zephyr STEPPING MOTOR


D2000でステッピングモータを回しました。
バイポーラ ステッピングモーター4SM-42BYG011
http://akizukidenshi.com/catalog/g/gP-05372/
SparkFun ROB-12779 EasyDriver ステッピングモータドライバ
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4YRY
EasyDriver – Stepper Motor Driver
https://www.sparkfun.com/products/12779
ドライバIC A3967を使用しているのでパルス出力と方向出力のみでステッピングモータを回すことができます。
ZephyrのPWMのサンプルは、”PWM_0″を対象にしています。
PWM_0は、JTAGピンと競合しているため使用できません。PWM_1を使用するようにしました。

ピンの機能割付けを行いました。
struct device *pinmux = device_get_binding(PINMUX_NAME);
PWM1_PIN(24ピン)を機能C(PWM)に設定します。
if (pinmux_pin_set(pinmux, PWM1_PIN, PINMUX_FUNC_C)) {
これでPWM_1側が使えるようになります。

電源は、DC12Vを使用しています。
65W級スイッチングACアダプター12V5A GF65I-US1250
http://akizukidenshi.com/catalog/g/gM-00510/
D200ボードには12Vから三端子レギュレータで作成したDC5Vを入力しています。
エンコーダカウントが1秒間6400カウントに調整しました。一周1600カウントなので1秒4周です。240rpmで回したことになります。

サンプルプログラムは以下にあります。
https://github.com/jendo1969/d2000/blob/master/Step_motor/src/main.c

C2000 PICCOLO AND STEPPER MOTOR4

Jpeg
TI C2000 Piccolo LaunchPadのステッピングモーターです。今回は台形制御に続き、固定小数点演算ライブラリIQmathを使用してS字カーブを追加しました。
S字カーブで加速、減速できるようにしました。
今回は、速度の計算に2次関数があるので固定小数点演算ライブラリIQmathを使用した効果があったのではないでしょうか。

C2000 PICCOLO AND STEPPER MOTOR3

TI C2000 Piccolo LaunchPadのステッピングモーターです。前回追加したボタンにスタートストップを割り付けました。
台形制御で加速、減速できるようにしました。
速度の計算には、固定小数点演算ライブラリIQmathを使用してみました。
http://processors.wiki.ti.com/index.php/IQmath_Library_for_C28x?keyMatch=IQmath&tisearch=Search-JP-Everything
http://www.ti.com/lit/sw/sprc990/sprc990.pdf#search=%27IQmath+C2000+PICCOLO%27
http://www.tij.co.jp/jp/lit/an/jaja230a/jaja230a.pdf#search=%27IQmathLib+C2000%27
豊富な関数が用意されているため非常に簡単に浮動小数点の演算が導入できました。
Jpeg

C2000 PICCOLO AND STEPPER MOTOR2

TI C2000 Piccolo LaunchPadのステッピングモーターにボタンを追加しました。
Jpeg
このボタンの1個を使用してMS1とMS2を制御しました。
2つの入力でMicrostep Resolutionを設定できます。
MS1  MS2   Resolution
L     L    Full step (2 phase)
H    L    Half step
L    H   Quarter step
H   H   Eighth step

MS1とMS2はプルアップされているので 無結線だとEighth stepです。HHの設定は、低速でもとてもスムースですが、LLの設定では、カクカク感が半端ないです。各設定での違いが分かった面白いです。
Jpeg

C2000 PICCOLO AND STEPPER MOTOR

TI C2000 Piccolo LaunchPadでステッピングモーターを回しました。Jpeg
ドライバは、A3967: 変換機能付きマイクロステッピング ドライバを搭載したSparkfunのモータドライバを使用しました。
EasyDriver – Stepper Motor Driver
https://www.sparkfun.com/products/12779
http://www.digikey.jp/product-detail/ja/sparkfun-electronics/ROB-12779/1568-1108-ND/5318750
http://www.allegromicro.com/ja-JP/Products/Motor-Driver-And-Interface-ICs/Bipolar-Stepper-Motor-Drivers/A3967.aspx

モータは、同様にSparkfunのバイポーラステッピングモータを使用しました。
Stepper Motor with Cable SM-42BYG011-25
https://www.sparkfun.com/products/9238
http://www.digikey.jp/product-detail/ja/sparkfun-electronics/ROB-09238/1568-1105-ND/5318747
Jpeg

ドライバには、STEP 入力に 1 つのパルスを入力するだけで動かすことができます。2個のパルスを位相をずらして入力する必要がないので手軽です。マイクロステップ等の設定は、おいて置きまずは、回してみました。
Jpeg

© 2014 Spineedge Corporation.