ESP32を用いてDCモータを実装したので、そのやり方について紹介したいと思います。
この記事を読むことで、Wifi搭載、話題のマイコンであるESP32でDCモータが動かせるようになります。
ーーーーーーーーーーーーーー
追記
今回使用しているモータドライバL298NとモータFA-130RAは相性が悪く、動作が不安定です。(下手したら壊れる可能性もあります)
なので、正常に動作するバージョンの記事を急ぎ作成しますので、そちらを参考にしていただければと思います。
おまけ
L298N:駆動電圧5V-
FA-130RA:駆動電圧1.5V-3.0V
駆動電圧が一致しないので問題ありと判断しました。
ーーーーーーーーーーーーーーー
動かしている動画が以下のものです。
DCモータを動かせることで、ロボット、IoT、DIYなど幅広い分野を自作できるようになり、趣味でも業務でも自由度が広がること間違いなしです!
Arduino Nanoでの実装版はこちらを参考にしてください。
ESP32, DCモータの簡単な説明
ESP32
ESP32の大きな特徴はWifi, Bluetoothを搭載しているところです。そのうえでArduinoよりも安価に購入でき、ArduinoコードやC++などいくつかの言語の互換性があります。そのため、1つのマイコンでいろいろなことを試したい方には大変おすすめなマイコンです。
DCモータ
これがあることでルンバのような移動ロボットや、扇風機のような家電機器なども自作可能になります。また、移動ロボットを作る場合には、ギアボックスというものを併用することで、モータの回転速度を下げてトルク (力)を強くするといったことも重要になります。ギアボックスも一緒に紹介しておきます。
上記であればDCモータも付属しているので、すぐにロボット開発に取り組めます。
実験構成
- ESP32
- DCモータ (FA-130RA)
- モータドライバ (L298N)
- DC/DCコンバータ (LM2596)
- 電池ボックス (1.5V × 4本)
- ジャンパ線多数
ESP32、DCモータは上記のものを使用しています。
モータドライバは将来2つのモータを1つの基板で制御したいと思い、安めのもので探した結果L298Nになりました。
DC/DCコンバータはモータドライバを駆動させるために使用します。12Vの入力電圧が必要であるため、今回の入力電圧4.8Vを昇圧する必要があります。
今回の入力電圧4.8Vは将来これでESP32も動作させたいと思ったため、こちらを使用しました。
また、4.8Vである理由はエネループを使用しているからです。通常は電池4本で6Vです。
ジャンパ線は何を使用してもいいですが、一応リンクを張っておきます。(オスメス、メスメスが必要なので両方張っておきます)
実験
Arduino IDEでESP32を使うためのセットアップ
Arduino IDEでESP32を使用する場合、以下の手順でボードのボードマネージャーにインストールしなければいけません。
-
Arduino IDEを立ち上げて、メニューから「ファイル」→「環境設定」を開き、「追加のボードマネージャのURL」にhttps://dl.espressif.com/dl/package_esp32_index.jsonと入力し「OK」をクリックします。
-
「ツール」→「ボード」→「ボードマネージャ」を開きます。「esp32」と入力し、「esp32 by Espressif Systems」をインストールします。
-
「ツール」→「ボード」で、「ESP32 Dev Module」を選択します。
ESP32自動書き込みの準備
私が購入したESP32は、プログラムを書き込む時にENスイッチやbootスイッチを操作しなければ、書き込みができない仕様になっていました。 (ものによっては無痛に書き込めますので要確認)
そのため、自動書き込みをするために、ENとGNDの間に0.22uF~2.2uFのコンデンサを追加する必要がありました。
私の場合、1.0uFの抵抗をはんだ付けしました。 (少々強引ですが無事動作しています。)
配線
ESP32のピンアサインは以下の通りです。
@【ESP32】analogReadする方法 - ソースに絡まるエスカルゴ
配線は以下のようにします。
配線ができると以下の画像のようになります。
実行コード
ここまで出来たら以下のコードを実行することで動作確認ができます。
上記のソースコードでは、モータの正転と逆転を繰り返すプログラムを実装しています。実際には、ここにエンコーダ等をつけて回転数を計測し、移動量を計算したりして、ロボットの制御をしたりします。
まとめ
今回は、ESP32でDCモータを動かすために必要なものの紹介と、サンプルプログラムの紹介をしました。
参考資料
esp32-wroomDevkitCをarduino IDEでセットアップからサーボ駆動まで(Windows) - Qiita
ESP32 Arduino IDEのセットアップからLチカまで - JH7UBCブログ