![見出し画像](https://assets.st-note.com/production/uploads/images/125863529/rectangle_large_type_2_95ad37d6b9b659c60aa40236c684f61f.jpeg?width=1200)
Arduinoでブラシレスモーター回してみた
こんにちは、Rcatです。
今回は次の工作に向けてブラシレスモーターの稼働実験を行いましたので、まとめてみました。
本記事は一番最後の項目以外すべて無料です。安心して読み進めてください。
ブラシレスモーターについて
今回は通常のブラシモーターと異なり、電子制御で回転するブラシレスモーターを使用することにしました。
ただ、ブラシレスモーターは普通のモーターと仕様の表現が異なるようで、電圧や電流の仕様はよくわかりませんでした。
調べたとこによると電圧 x KV値が回転数になるようです。
![](https://assets.st-note.com/img/1703752375078-cE4tyqsAUR.png?width=1200)
商品説明見ると高電圧大電源を流してベンチマークしているみたいなので、このくらいの範囲であれば許容範囲という感じで使っていきましょう。というかこんな大電流流せる電源がないんですが。
![](https://assets.st-note.com/img/1724046966584-fmjcL2JCS5.png)
寸法関係はこんな感じ。モーター裏の4つの穴は地味に距離が違うので最初気づきませんでした…。
モーターのサイズ的には、直径は380モーターなどを結構大きめのに近いですね。高さ方向がかなり短いので、これでどこまで頑張れるのかというとこですね。
![](https://assets.st-note.com/img/1724049068020-4VAQ8kEv3Q.png?width=1200)
スピードコントローラーについて(ESC)
ブラシレスモーターは線が3本あり、普通のモーターのようにつなげば回るわけではありません。
それを制御するための専用のコントローラーがありますので、そちらも用意しました。よくわからないので、適当に安いのを買ってみました。
制御の方法としてはArduinoのサーボライブラリを使ってサーボのパルスと同様の方法で制御できるみたいです。
![](https://assets.st-note.com/img/1703752577903-fcsUKbFXmN.png?width=1200)
配線図
配線図はこちら。
モーターとコントローラーの3本線を接続します。コントローラー側の線に色はついていないので、適当に接続します。回らない場合は順番を入れ替えるといいらしいです。
次にサーボモーターと同じコネクターがついた線が出ていますので、これを制御回路と接続します。なお、電源の端子は繋がなくても動作させることができました。サーボの信号線はプログラムで定義したところにつないでください。
なお、今回の制御回路にはそこら辺に転がっていたESP32-C3を使用しています。
最後に太い線を5ボルト以上の電源に接続すれば完了です。
どこまで電圧を下げられるかやってみましたが、5ボルト以下にすると回りませんでした。
![](https://assets.st-note.com/img/1703751126763-LkZGnkkCUJ.png?width=1200)
プログラム
Arduino側
今回動作させているプログラムは下記のようになっています。
なお、自作のESP32 WEB工作テンプレートを改造しているため、下記をコピーしただけでは動作しません。テンプレートの方に関しては、下記をご覧ください。
ブラシレスモーターを回す手順は、まずキャリブレートの後に回転数の情報を送信するという順番です。
下記で言うと、ServoSetup関数が一番最初に呼び出され、その中でピンのアタッチとキャリブレーションが行われます。
キャリブレーションとはこれから送信するパルス幅の最大値と最小値をESCに送信し、覚えてもらう行為です。
調べてもなぜ2秒待つのかという情報にまではたどり着くことができませんでしたが、このように上限2秒、下限2秒以上を送ることで初期化ができるらしいです。
そして実際に動かしているのが39行目です。
最小パルス幅が1000最高が2000なので、その範囲内にパーセンテージを変換し動かしています。
周辺のプログラムが複雑なのはパソコンやスマートフォンから制御できるテンプレートを使用しているからです。
実際に動作映像でスピードが変化しているのはパソコンから数字を入力してるからです。
![](https://assets.st-note.com/img/1703753102257-4MgepmqwSb.png?width=1200)
JavaScript
別になくてもいいんですが、いちいちURL打ち替えるのもなかなか面倒くさいので操作画面を作成しました。
こんな感じで上のバーをスライドさせて出力を変更するか、決まった出力であれば、下の6つのボタンを使って設定することができます。
そして極めつけは緊急停止ボタンです。堂々と大きな丸いボタンをデザインしました。無駄に凝ってますね。もちろんこれを押せば一瞬で出力を0にできます。
![](https://assets.st-note.com/img/1725014615875-Zv1PyYYqkl.png?width=1200)
この画面を適用する方法はこちら
今回使っているテンプレートスケッチにはESP32をクラウドストレージのように使う機能が搭載されているので、配布されているデータに入っているindexというデータをドラッグ&ドロップでアップロードするだけです。
次回以降はIPアドレスを入力した時点で、トップ画面がこの操作画面に変わります。詳しい仕様については、テンプレート紹介の方をご覧ください。
![](https://assets.st-note.com/production/uploads/images/152514636/picture_pc_b4bc44d9f4736e1a8b94f87831647710.gif?width=1200)
動作映像
実際の動作がこちら
パレスの幅を変更することで、回転速度も制御できていることがわかります。
まとめ
今回はブラシレスモーターのテストをしました。
コントローラーの部分を今回適当に選んでいましたが、公式の説明書がないのがちょっと痛かったです。商品レビューでも具体的な使い方を書いてくれているような人はいなかったので、ちょっと苦労しました。
それではこれを使った工作でまたお会いしましょう
実験用ソースコード配布
以下のリンクより今回の実験に使ったソースコードを入手できます。
注意点
ダウンロード前に必ず利用規約をご確認ください。
また本作をダウンロードするには、利用規約同意時に発行されるパスワードのほかにキーワードが必要です。
キーワードは有料区間にて開示されています。
なお、今回は有料で配布している記事のプログラムがベースなので、それと同等以上の価格設定にしてあります。
そのため、本記事をお買い上げいただくと、ベースとなった以下のテンプレートをダウンロードするためのキーワードも同時開示されます。
ここから先は
¥ 300
情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。