可動戦車模型愛好会作品掲示板


[トップに戻る] [アルバム] [留意事項] [ワード検索] [過去ログ] [管理人用]
おなまえ
Eメール
タイトル
コメント
参照URL
添付File
暗証キー (英数字で8文字以内)
画像認証 (右画像の数字を入力) 投稿キー
文字色
M5ATOM 投稿者:せいめい 投稿日:2020/07/19(Sun) 15:24 No.5741

森本さんに紹介してもらったM5ATOM。ESP32-PICO-D4チップ塔載でWi-Fi、Bluetooth付いてます。
スイッチサイエンスさんのページ
https://www.switch-science.com/catalog/6260/
・M5ATOM Matrix 24 x 24 x 14 mm
・M5ATOM Lite 24 x 24 x 10 mm

これを使ってラジコン戦車を動かしてみたいと思います。

コントローラーどれにする? - せいめい 2020/07/20(Mon) 19:53 No.5743
M5ATOMはArduinoの開発環境Arduino IDEでプログラムを組みます。
コントローラーは自作する元気も無いので既製品を使います。

・iOSアプリ RCWController
複数台の戦車でもスマホ1台ですむ。戦車はWi-Fiのアクセスポイントとして扱われるのでWi-Fi設定で切り換える。

・PS4、PS3コントローラー
プロボと同じようにスティックで操作できる。ボタンも手探りで操作できるので手元を見る必要がなく操縦に集中できる。
ESP32でPS3コントローラーを使うライブラリ esp32-ps3 Arduino IDEでも使えます。(PS4用ライブラリはPS4-esp32)
https://github.com/jvpernis/esp32-ps3

今回はPS3コントローラーを使います。


モータードライバどれにする? - せいめい 2020/07/22(Wed) 17:46 No.5746
M5ATOMの少ないピンをどう使うか。
GPIOピン6本とGrove互換インターフェース(たぶんI2C用)があり、それぞれにモータードライバ基板が繋がります。
まずは今まで使ってきたDRV8835を使って1/25ラジコン戦車を動かしてみます。
GPIOピン6本のうち4本を使用。残り2本。

DRV8835使用ステッピング&DCモータドライバモジュール
http://akizukidenshi.com/catalog/g/gK-09848/


M5ATOM(ESP32)のPWM - せいめい 2020/07/23(Thu) 10:35 No.5748
ArduinoでPWMを使う関数 AnalogWrite() がM5ATOMではコンパイルエラーになる。ライブラリがそのまま使えるんじゃなかったのか?
ネットで調べてみるとESP32にはちゃんとPWMの関数群が用意されていてこれを使いなさいと言うことらしい。
で、始めにセットアップ関数で周波数と分解能を自分で決める仕様。
 ledcSetup(チャンネル, 周波数, 分解能)
今まではArduinoにお任せだったので具体的な数字なんて考えてませんでした。
Arduinoの仕様を調べると周波数は約490Hz, 8bit。これに合わせればとりあえず今まで通りなわけだけど
今のマイコンはこの仕様ができた数年前より高性能なわけだからもっと周波数を上げてやればいいのかな?
ESP32の仕様だと 8bitに設定した場合は最大で312.5kHz
ちょっとArduinoとの差が大きすぎてよくわからないです…。とりあえず 5kHz 8bit で動かしました。

Re: M5ATOM - 森本康生 2020/07/24(Fri) 06:33 No.5749
ledsetup関数のパラメータ(周波数、分解能)について私見を述べます。関数の名前から連想されるのは、PWMと言っても、モーターのスピード調整専用ではなく、もともとはLEDの明暗調整のためのものではないかと推測します。各パラメータがモーターの回転の何に影響があるか考えると、回転数とトルクです。サーボばらしのモーターを回転させる場合を参考にすると、デジタルサーボで500Hz,アナログサーボで50Hzです。分解能はPWMをどの位細かく変化させるかという意味で、8ビットなら256段階ということだと推測します。別の参考値として、TOCOSモジュールのモーター制御では、1KHzがディフォルト値になっていて、十分問題なく制御できます。この値はより高い周波数まで変更可能ですが、試したことはありません。せいめいさんが5KHz、8ビットで試してOKなら、最適なのかどうかは不明ですが、問題ない設定なのかもしれません。
Re: M5ATOM - 森本康生 2020/07/24(Fri) 08:57 No.5750
せいめいさんが値を決定するにあたり、マイコンの速度が速くなっているから、できるだけ速くしたほうがよいだろうという考えで仮設定したのだと思いますが、そうも言えない(マイコンの処理スピードとPWM周波数は関係ない=遅いマイコンでもPWM回路モジュールが内蔵されていれば速くできる)ので、必ずしも高速にしても意味はないと思います。むしろ、わたしはあまり周波数をあげるとモーターの回転が追随できなくなると思います。周波数をあげるとモーター回転子にかかる電圧は最大値なのに、平均電流がさがって回転数がさがるとともにトルクもさがってしまいます。厳密には回転子に巻かれたコイルはインピーダンスをもっているため、リニアに変化させられません。スピード最大にしたときはDC(周波数ゼロ)で、脈流時は瞬間的に電圧ゼロと言った方がわかりやすいでしょう。特に周波数が高い場合、分解能を細かくしてもほとんど変化なく、スピードコントロールもスティック操作と比例できないと思います。結局、最適値は実験的に決める必要があります。5KHzが高すぎるとは言えません。
Re: M5ATOM - せいめい 2020/07/24(Fri) 09:46 No.5752
森本さんいつも有難うございます。
>>デジタルサーボで500Hz,アナログサーボで50Hzです
デジタルサーボで500Hzですか。今回はサーボばらしのモーターも使う予定です。
私としては 周波数上をげる=低速がスムーズになる みたいな期待があったので5kHzにしてみたのですが
>>あまり周波数をあげるとモーターの回転が追随できなくなると思います。
>>……回転数がさがるとともにトルクもさがってしまいます……
なるほど、これでは逆効果になってしまってる可能性が。1kHzに修正しておこう。

実際に効果があるか、問題ないかはこれから長時間可動させてみないと解らないです。
できれば周波数を変えると戦車がどんな動きになるのか色々と試したいのですが、、
”スムーズな低速”も1/25以上ならまだしも1/35だと物が小さくてパッと見ただけでは気づかないかも。
費用(作業時間)対効果が小さい改造はなるべく避けたい(笑)

モータードライバ part2 - せいめい 2020/07/24(Fri) 23:08 No.5753
M5ATOMのGroveインターフェースにモータードライバを接続、GPIOピンは6本まるまる使える。

seeedstudio GROVE - I2C ミニモータードライバ
DRV8830を2個使ってモーターを2つ制御。

ところが、このボードのArduino用ライブラリはM5ATOM(ESP32)に未対応なのでI2Cを扱うWireライブラリを使って
ボード上のDRV8830に直接コマンドを送って操作します。

こちらのブログを参考にさせて頂きました。
https://makers-with-myson.blog.ss-blog.jp/2014-05-15


I2Cのモータードライバ - 森本康生 2020/07/25(Sat) 08:27 No.5754
さすが! 言って見れば、お惣菜屋で必要なごちそうをそろえてしまうようなものですね。I2Cのモータードライバのサイズもそこそこで1/35に使うのなら、レイアウトで何とか出来て、しかも、ブレッドボードが不要ですね。ATOMのIOピンは全部別目的で使える! ライブラリもARDUINO IDEで楽にリンクでき、至れり尽くせり。参りました。
I2Cのモータードライバ - 森本康生 2020/07/25(Sat) 10:46 No.5755
ふと思ったのは、I2Cは並列接続できるから、I2Cモータードライバをもう一枚接続して、砲塔旋回、砲身上下も可能なんじゃないですかね? サーボばらしだとIO接続でライブラリも別に必要ですよね。まあ、旋回メカや上下メカをサーボのメカが使えるか否かだから、選択の余地はあると思いますが。サーボばらしのサーボのアンプは未使用という手もありますから。ソフトのことまで考えるとどうなんでしょうかね?
Re: I2Cのモータードライバ - せいめい 2020/07/25(Sat) 12:41 No.5756
私も同じこと考えてました。
この製品は4つのI2Cアドレスが設定できるので2枚で4モーター制御できると思います。
ケーブルも二股でいいんじゃないかな。製品的にはハブを介して接続が正しいようですが。
なおM5Stack用製品には同じI2Cアドレスの基盤を複数制御できるハブがあるみたいです。
1/35戦車にはサイズオーバーかもです。

画像はseeedstudioのwikiから
https://wiki.seeedstudio.com/Grove-Mini_I2C_Motor_Driver_v1.0/


I2C HUB - 森本康生 2020/07/25(Sat) 21:42 No.5757
このハブならそれほどのサイズにはならないのでは?
単なる並列接続なので、バッサリ半分に切断しても使えそう。


処理 記事No 暗証キー

- Joyful Note -