一周回って元に戻った。。。
一旦はΦ6ブラシレスモータ、 今度のロボでは
4個回す予定なんで配線混むの嫌だなってことで最初はI2CのDRVをいろいろ試した。
思った以上に高速で回せない250Hzパルスくらいが限度・・・
モータダイレクトで車輪回すようなロボなら全然問題ないのだけど
今度使おうと思ってるのは40:1ギヤモータ。
それだと毎秒120度程度しか回らない。。。1回転に3秒ほど掛かる
・・・遅い。
で、
2相バイポーラステッピングモータ使うならクロックインのモータドライバ
使おうかなっていろいろ考えたけど、いろいろやりたいこと、、、
電流もリアルタイムでレベル調整とかしようと思ったら・・・
やっぱし結局クロック1本だけじゃなくて何本もポートが必要。
クロックインもいろいろあって普通は回転方向信号もいるので
最低2本ポート必要。
でもって外付け回路もそこそこ必要。
4個モータ回そうとすると、けっこうごちゃごちゃしてくることわかった。
発熱。。。損失、消費電力とか考えないなら一番簡単だけど。
結局、モータのコイルをマイコンで直接制御する2つHブリッジ入りの
モータドライバ使うことに戻った。一番使い慣れてるし。
ただ、普通にデータシート通りに2相バイポーラステッピングモータを
動かそうとしたらマイコンのポート4本必要。
それだとモータ4個、、、マイコンポートが16本。いやです。
で変則的な使い方になるけど・・・ポート2本で動かすことにした。
それならモータ4個で8本のポートで済む。
そのためにはPWMの高周波駆動がでけんといかん。
PWM使えばポート2本でベクトル制御ができるんだけど、、、
ベクトル制御・・・マイクロステップ駆動ももちろんできる。
そういう使い方ができるとはデータシートには書いてない。
アプリケーションノート探せばあるのかな?
nRFマイコンでのPWM,思った以上に自分には難解だった。
結局レジスタ操作だらけになった。他のマイコンで簡単に移植できん。。。
ESP32マイコンはそれ思うとめちゃ使いやすい。
昨日はとりあえず、PWMでOFF状態作ってモータ回した。
少々雑だったので今回もちっと調整した。
nRFマイコンはポート駆動能力が小さいのでモータドライバを使います。
これがESPマイコンだと40mA以下くらいなら
ポートの出力で直接モータ回せるので
モータドライバいらないです。 去年までのマイクロロボがその方式。
#nRF52832 #DRV8835 と組み合わせて
— しん (@shinichi_nin) 2024年11月6日
Φ6 #ブラシレスモータ
ポート2本の #PWM で回す♪ その2
脱調の不具合修正して 極低速から4000rpmまで
PWMのベクトル制御なので
これならクロックインより高精度でいける...
ちびスタックチャンは助手です... #M5Stack #Arduino #スタックチャン #Lチカ pic.twitter.com/k2Mgi1MyFo
100kHzPWMでOFF状態作って、
micro関数で時間跳ばないようにしてやると4000rpmまで脱調せずに
滑らかに回るようになった。
マイコンで作ったPWMで制御するので
基本、モータの状態はなんでも制御できる。手間は掛かるけど。
起動時とか加速、過渡時電流増とかも自由にできる。
クロックインではできない。
でもって外付け部品が少ない。パスコンだけ。これがまたいい。
これでギヤモータ。に組めば4000rpm → 1/40になるので100rpm駆動軸
そこそこマイクロロボの足の動きでは使えるかなといったところ。
動作を調べた感じだと、
やっぱしモータがそこそこ高回転、数千rpmほどに
になると誘起電圧が出るので先日、シミュレーションであたりつけた時より
低周波でもできる。
電流ゼロ・・・duty50%は 100kHzで刻む必要はない。
50kHzくらいで十分もっと下げてもいいくらい。
これはギヤモータではまた特性がちょっと変わるので
いいとこは別途調べる。
ベースキャリア周波数は低くした方がスイッチング損失が減るので
消費電流が小さくなっていきます。
その代わり・・・・パスコン、平滑コンが小さいとリップル電圧が
でかくなっていきます。
後々AD使うセンサとかに影響でやすくなったりする。
★昔をちょっと思い出すと・・・30年ほど前、
ステッピングモータを仕事でよく使ってた頃は
高速応答のサーボモータ風な使い方してた。
その頃は2相バイポーラステッピングモータは、
クロックインで動かすのが当たり前だった。
マイクロステップ駆動もあんまし見掛けなかった。
フルステップパルスかハーフステップベース。
そもそもマイコンが8bitで8MHzとか。メモリーも数kバイト。
そんな性能だったので
マイコンにPWMでベクトル制御まで演算させると割込みだらけで
他のことがまともにできんので
マイコンでベクトル制御しながらってやろうともしなかった。
アセンブラ使うしマイコンの使いこなし感?はそれなりに面白かった。けど。
面倒だった。。。
モータ回す以前にマイコンの性能を如何に引き出すかが大変だった。
実数演算、浮動小数点・・・ありえんかった。
sin cos √演算、とんでもない。
割り算なんか厳禁で近似掛け算に置き換えるとか。
この辺若い人には何言ってるの? かな。
現実の物理演算をいかに8bitでオーバフローしないようにする工夫とか
制御とは関係ないとこの労力の方がはるかに大きかった。
★今 技術の進歩すごいですね
すごいよくなったなー nRFマイコンもだけど。
前にもどっかに書いたけど
30年前は倒立振子ロボ、しょぼいやつでも半年掛かり みたいな。
今のマイコンは
現実の運動方程式そのまんまで計算できちゃう
今はM5とか使うと1日でとりあえずの倒立振子ロボならできてしまう。