トピック関連記事
48時間以内の記事は New Mark で表示されます
ステッピングモータドライバ
ユニポーラステッピングモータドライバ&コントローラを作ろうと思っています。
まぁ、ネタとしては今更なんですけど。

最近ステッパーもバイポーラが主流ですよね。以前はユニポーラが押していたように思うのですけど。
ドライバも安いのはバイポーラのみです。

バイポーラなら、A4988、MRV8825、L6470、TB6560、TB6600と色々ドライバボード(モジュール)となっています。
一方ユニポーラは、相変わらずサンケンのSLAシリーズ位です。更にボード化はあまり見当たりません。
いや、まぁ見つけてはあるのですけど、https://www.monotaro.com/p/5630/7265/
です。価格の約1万円は社用なので良いのですけど、「出荷目安:44日」ではどうにもなりません。
SECさんの所も休業状態ですし…。

※先週、「1個動かなくなったから見てくれ!」と言われて、オリエンタルモータのステッパーを見たのですけど、
ドライバがやられているようでした。取りあえず、他の用途で用意してあったTB6560ボードで、バイポーラ接続で回して急場をしのぎました。

で、調べてみても、オリエンタルモータもユニポーラドライバは販売していません。それどころか、コントローラで使っている
SG8030まで生産中止になるそうです。
https://www.orientalmotor-shop.jp/shop/product_details_ec.action?hinmei=SG8030J-D&seriesCd=O000
※こんなのが4万もするんですよね。(*_*;

うちの会社の場合、ほぼ、定速で回すだけです。その程度なら作っちゃうか、という事で、Arduino+1602+自作ドライバボード
という感じで行こうと思っています。

で、ドライバはSLA7073か7078に決めたのですけど、回路図を見ていて思いついたのがカレントダウンです。

抵抗値の切り替えかぁ?そう言えば…

という事で、今回は、添付図の赤線部分をX9Cで2値切り替えて動かそうと思います。
※X9Cは5個200円程度で購入しました。
残念ながら私のは10kΩ(実測9.0kΩ)で、回路図の1kΩものではありませんけど、それでも、R1を22kΩにすれば30段階になりそうです。
ほぼ、0.1A毎に指定できます。
(R1を付けなくても9段階あり、それでも十分なんですけど。)

※実はもう一つMCP42010というのも安かったんで買ってあります。でも脇役としてはちょっと邪魔なんですよね。

猛牛ロック 2019/07/16(Tue) 00:17 No.1748
Re: ステッピングモータドライバ
猛牛ロックさん,こんばんは。

レス遅くなりました。

ドライバーの自作ですか。

ちょっとうらやましいです。

お役にはとうてい立てそうにもありませんが,

以前,オリジナルマインドの

https://www.originalmind.co.jp/goods/07961

のモーターのドライバーについて,メーカーに問い合わせたことがあります。

型番等は,失念してしまったのですが,確か Yahoo ショッピング等で,

商品を紹介してもらったように記憶してます。

結局高いのでやめて,SECさんのところろの買ったのかな,
と思います。


=====
ところで,別件なのですが,ご教示お願いできますでしょうか。

4×4のキーパッドのarduinoのライブラリーながめているのですが,

今まで,C 等では,みたことのない記述がありました。

ネットでくぐっても不明で,ちょっと頭抱えてます。

// TwiKeypad::KeyToChar

int16_t TwiKeypad::ReadReg(uint8_t RegAdr)
{
if(ptw==NULL) return -1;
ptw->beginTransmission(TwiAdr);
ptw->write(RegAdr);
ptw->endTransmission(false);
ptw->requestFrom(TwiAdr,uint8_t(1));
int16_t result=-1;
while(ptw->available()) {
result=ptw->read();
} // while
return result;
} // TwiKeypad::ReadReg

ここの,「−>」はどういう意味なのでしょうか。
mabo   2019/07/18(Thu) 23:06 No.1749
Re: ステッピングモータドライバ
71mmのステッパーですか。大きいですね。
「TRIOに接続してお使い頂けます。」となっているので、SLA7078で大丈夫なのでしょう。

このあたりは判りにくい所ですね。
NEMA23モータの大き目のものでも電流は1.5A以下の物も結構あります。
それならA4988(最大2A)やDRV8825(最大2.5A)でも、良いんじゃないか?とも思いますけど、
それらはNEMA17専用の気がします。
電流値が低いという事はその分電圧が高い、という事で、より発熱に繋がり駄目という事なのでしょうかね。
爪サイズのヒートシンクでは無く、もっと大きいのを付ければ大丈夫なのかな?

いずれにしても、ユニポーラの安いドライバはありませんね。
TRIOも3軸で49800円です。以前のクワトロは4軸で31,290円だったのに。


I2C接続4×4キーパッドですか。
これって、しなぷすさんが作ったやつですね。(中はPIC16F1503)

「->」はアロー演算子ですね。
私も、使った事はありません。

式の左辺がポインタ変数の場合はアロー演算子を使うのだと思います。
ただ、これはライブラリ側ですよね?
ユーザー側は

TwiKeypad A;

と実体を作った後は

int data=A.ReadReg(レジスタアドレス);

という形で、レジスタアドレスに入っている値を取得するんだと思います。
猛牛ロック   2019/07/19(Fri) 04:37 No.1750
Re: ステッピングモータドライバ
猛牛ロックさん,おはようございます。

ご説明ありがとうございます。

私の一番苦手な,構造体がらみの演算子だったんですね。

アロー演算子ということで,くぐったら,

詳しい説明のサトあったので,なんとなく理解できました。


========
>I2C接続4×4キーパッドですか。
>これって、しなぷすさんが作ったやつですね。(中はPIC16F1503)

そうです。

マトリックスにダイオード使ってない安いものをamazonで,
注文して,使おうと思いました。

キーセンスのプログラム自分で作るようかなと思い,
しなぷすさんがお作りになった,PIC書き込みのプログラムと,

arduino 用のライブラリー眺めていたところです。

arduino で使えば,専用のライブラリーがあるようようですし,

I2Cの通信をするのに,wire.h をインクルードすれば使える手軽さも魅力なのですが,

無謀にも,ものたりなさ感じで,できるかどうかわかりませんが,

PICでやろうともがいでいるところです。

やりたい事はいろいろあるのですが,なかなか,進みませんね。
mabo   2019/07/19(Fri) 11:52 No.1751
Re: ステッピングモータドライバ
基板の線を引いて、じゃあ削ろうかな!と思った矢先に問題が発生しました。

現在使っているコントローラSG8030S-Dの半互換品にしようと思っているのですけど、
SG8030S-Dの出力クロックは30000Hzまでサポートしています。
じゃあ、その位まで出せるようにしよう、と思ってちょっとcalc(エクセルみたいなもの)で、表を作ってみたのですけど、
一番長くかかる=遅い設定にすると何と45000クロックにもなる事が判明しました。
こんなになると、テーブル(配列)に保存して、使う訳にはいきません。
じゃあ、1回ごとに次の周期を計算したらどうかな?と思い、周期計算のみをUNOで計算させて、計測したのですけど、
ちょっと工夫を凝らして計算しても、一向に速くなりません。具体的には下記のコードです。

float V=100;
float Va=100;
uint32_t target=30000;
long time;
void setup() {
word cnt=1;
Serial.begin(115200);
time=millis();
while(target>V) {
cnt++;
V=V+1000000UL/Va/V;
}
time=millis()-time;
Serial.println(time);
Serial.println(cnt);
Serial.println(V);
}

実際に計測しているのは
while(target>V) {
cnt++;
V=V+1000000UL/Va/V;
}
です。次の(加速した)速度Vを出していって、30000Hzまで、何回パルスかかって、その時間は何msになるのか見ています。
その結果が
1890ms
44998回(ステップ)
30000.17[Hz]
です。1ステップあたりの計算時間が42usもかかってしまいます。
でも、30000Hzですから、その速度では周期は33.333usしかありません。
自分としては「それ以外の作業」を考えると、10us程度以下じゃないと難しいと感じました。

floatがいけないのかと思い、uint32_tにしたりして試しましたけど、誤差、時間共に悪化しました。

で、手元にあった、STM32F1ボード(BLUE PILL)でやらせた所、
352
44998
30000.17
7.82us/step
になりました。
なので、こちらで行こうと考えています。でも、3.3Vなので、1602キーパッドも使えません。
(元々シールドなので、UNOタイプのボードじゃないと意味は無いのですけど)
そして、X9Cも5V専用なので使えません。

今の所、表示器はNOKIA5110にしようと検討しています。
猛牛ロック   2019/07/22(Mon) 23:42 No.1752
Re: ステッピングモータドライバ
猛牛ロックさん,こんばんは。

===========
猛牛ロックさんのやられているプログラム,

なんとなく理解できるのですが,細かいところは,

私の能力超えてるかななんて思います。

処理速度等のことも考えなきゃいけないようなので,

その辺,難しいんでしょうね。

遙か昔ですが,短時間で処理したいもの(ソート処理)がプログラムのなかにあったので,

その部分だけ,市販のアセンブラーのプログラム買って,

Cとリンクさせたことあります。

フロートの処理だと,やはり時間かかるんでしょうね。

===========
開発するには,遙かにarduino系(細かい分類わかりません)が便利なような気がします。

デバッカー等使わなくても,PCのモニターに書き込めるので。

PICだと,LCD使って表示するのに不具合がどこにあると,確かめるだけでも,あれこれ考えないいけないので,

無駄に時間かかると思います。



========
私には,

>なので、こちらで行こうと考えています。でも、3.3Vなので、1602キーパッドも使えません。

この,3.3Vが,ちょっとやっかいでした。PICに3.3VのLCDそのままつないで,破損させました。(汗)

これは,私のおっちょこちょい?のなせる技ですけど。(笑)

ということで,5V電源の

https://www.amazon.co.jp/gp/product/B07C2TCWFD/ref=ppx_yo_dt_b_asin_image_o00_s00?ie=UTF8&psc=1

購入しました。

購入の予定なかったのですが,

https://www.amazon.co.jp/gp/product/B079Q6X5Q6/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1

を購入して届いたのですが,なんと,LCDは別売だったのでした。(がっかりしました。これもトホホでした。)

「シェル」というのは,ケースなのでしょうかね。

◯zonは不親切です。
mabo   2019/07/24(Wed) 23:12 No.1753
Re: ステッピングモータドライバ
PCF8574を使ったI2C-1602ですけど、あまり好きじゃないです。
表示にえらい時間を喰います。
100kHzしか出せないのに、1ピン上げるのにも8ビット送信しなければならないし、通信のプロトコル?が4ビットモードなので、
無駄が多すぎます。
多分、秋月の本来のI2C-1602と比べると3倍位は送信回数が必要なのではないでしょうか。更に速度が1/4なので、(秋月のは400kHz)
10倍以上、作業時間がかかります。

私もそのモジュールは所有していますけど、使う気にはならないですね。74HC595の方が、よりシンプルで速いと思います。まぁ1ピン増えてしまいますけど。
1602(通常サイズ)は、ほぼそのまま使っています。

LCDはケースに固定して、そのピンヘッダにマイコン基板を差し込む形で固定して…、というのがケーブルを使わずに済むので楽です。


そうそう、X9Cですけど、よく検討してみたら、BLUE PILL(STM32F1ボード)に載ってる3.3Vの電圧レギュレータって、入力は5.5V以下なんですよね。
元々UNOに9Vを入れる予定でいたのですけど、BLUE PILLは、外からは5.0Vを入れて3.3Vを出力するように設計されています。

なので、その点も方針変更で、ACアダプタ?から5Vを基板に入れて、それを利用することにしました。
かえって、カレントダウン的には良くなったかもしれません。

※私もこの間、方針が決まらないばかりに、無駄な買い物をしてしましました。

1602キーパッド 2個
9VのACアダプタ 4個
arduino uno互換品 4個
LGT8F328Pボード  数個
などです。

LGT8F328PボードはニセATMEGA328Pなのですけど、倍の32MHzまで出て、チョコチョコ高性能になっています。これにしようかとも思ったのですけど、データシートが中国語のみのようなので、今回は見送りました。

猛牛ロック   2019/07/30(Tue) 23:47 No.1754
Re: ステッピングモータドライバ
取り敢えず、基板切削→取り付けまでしました。
まだ電気は流していません。

X9Cが見えなかったので、右下画像も入れました。BLUE PILLの下に隠れる形です。

幾つかの小さな失敗がありましたけど、今の所、おおむね順調です。
(とはいえ、電気を流したわけでは無いので、基板パターンが正しいかも未確認ですけど)

でも、問題はこれからです。
LCDのメニューを作るのが一番面倒なんですよね。
今回は初のARMマイコンなので、その点もデータシートとにらめっこです。
(日本語マニュアルはあるのですけど、実際にArduino IDEでどのように記述すればいいのか?
マイコン&レジスタの理解と、コンパイラの問題と2段階あるので大変です。)

猛牛ロック   2019/08/02(Fri) 13:47 No.1755
Re: ステッピングモータドライバ
猛牛ロックさん,こんばんは。亀レスになって,すみません。

このところ,実家の草刈りやらなんやらで,ばてぎみで,

工作?していませんでした。

猛牛ロックさんのドライバー基盤,いいですね。

CNCで削れれば余分な配線しなくてもいいかなと思いますが,

なかなか,実行できないでいます。

私の方もやっと部材がそろってきたので,暇見てあれこれやろうかな,と思います。

キーボードですが,ダイオードとバッファプログラム等のついているしなぷすさんのと,

単なるマトリックスの中華製のものと二つ買ってしまいました。

中華製のものは,キーセンスのプログラムくまないとなので,

ちょっと面倒かなと思います。



=======

74HC595の情報もありがとうございます。

この辺,私は,無知で,表示スピードのことは,

考えずに選んでしまいました。

私の場合は,実用面もさることながら,とりあえず,試せれば満足な気持ちなれるかなと思います。

mabo   2019/08/07(Wed) 22:31 No.1756

処理 記事No 暗証キー

- JoyfulNote v6.02 -
++ Edited by Hamel ++