ESP32 モータドライバボード

後継としてRev2 ボードを近日リリース予定です。

概要

ESP32を使用した汎用のモータドライバボードを開発しました。ESP32をコアとして、ブラシモータ、2相ステッピングモータ、3相ステッピングモータ、サーボモータなど複数のモータに対応すべく、Hブリッヂを3回路搭載しています。シンプルにHブリッヂをESP32から直接制御する仕組みにしてありますので、ソフト変更だけで色々な種類のモータに対応することが可能です。電流のセンス抵抗も搭載しているので、モータ駆動電流をモニタすることも可能です。電源周りは整流ダイオード、ヒューズ、バリスタ、耐圧26Vの3端子レギュレータなど、車載での使用も想定した作りになっています。ESP32にはBluetoothやWiFiなどの無線機能が搭載されているので、スマホからモータをコントロール等の用途に最適な基板となっています。遠隔操作でサーボやモータを自由にコントロールできますので、手軽にラジコンやロボットなどを作ることができます。スイッチサイエンス経由で販売しています。また、このボードはサスペンションコントロールシステムにも使用されています。

回路図

Parameter記号ConditionMinTypMaxUnitComment
電源電圧Vdd51220V
消費電流IddIout=900mA, ESP32=100mA1AApplication, Motorに依存
ロジック入出力電圧HVL(H)3.3V
ロジック入出力電圧LVL(L)0V
モータ出力電流Iout1(3)Aモータドライバデータシートを確認すること。
モータ出力CH数Nch3ch
ESP32ESP32 4MB
基板サイズ35x64x12(H)mmケース:テイシン電機 TB-51推奨

Data Sheet

ESP32を使用したモータドライバボードです。ESP32をメインCPUとして、Toshiba TB67H450FNGを3個搭載していますので、ブラシモータ、2相ステッピングモータ、3相ステッピングモータ、サーボモータなど複数のモータに対応できます。HTB67H450FNGには1CH分のHブリッヂと制御回路が含まれています。本モータドライバボードはダイレクトPWM制御(TB67H450FNGを参照)を想定した回路構成としており、ESP32から直接PWM制御する仕組みにしてありますので、ソフト変更だけで色々な種類のモータに対応することが可能です。0.47ohmの電流センス抵抗も搭載しているので、モータ駆動電流をESP32のADCを使用してモニタすることも可能です。CMOS構造のチップを多用していますので、基本的なラッチアップ対策は当然のこと、電源周りは整流ダイオード、ヒューズ、バリスタ、耐圧26Vの3端子レギュレータなど、車載での使用も想定した作りになっています(12V BATTを想定しています。ただし、車載使用を保証するものではありません。)。ESP32のF/WはISPコネクタ(SV3)より書き換えが可能です。ISPに必要な信号(EN, RX, TX, IO0, IO15, +3.3V, GND)にアクセスできます。出荷時はOTA用のF/Wが書かれていますので、専用のWriterなどを使用せずにWiFiからF/Wを書き換えすることも可能です。

基板レイアウト

  • SV1, SV2, SV3, SV4コネクタそのものはもちろん、コネクタ間も2.54mmの倍数となっているので、ピンヘッダなどを利用して2.54ピッチのユニバーサル基板にそのまま挿すことができます。
  • ESP32、HTB67H450FNGのE-PAD部分はPCB裏面から半田を流し込むこともでき、手付を考慮したパターンとしています。
  • SW1, SW2, SW3のショート/オープンを選択することで電流センス抵抗(R12)の有無をIC1とIC2/3のコンフィグレーションを変更することができます。例えば、IC1でサーボコントロール。IC2/3で2相ステッピングモータコントロール(電流センス有)など色々な用途にコンフィグレーションできます。
  • 3端子レギュレータは、リードタイプ(U1)、面実装タイプ(U2)のどちらにも対応できます。
  • 外形は35x64x12(H)mmでテイシン電機 TB-51にぴったりのサイズとなっています。
  • 基板単品としての販売は想定していませんが、要望があれば対応可能です。お問い合わせください。

開発環境

基本的にESP32のF/Wが開発できる環境であれば問題ありません。簡単な例としてArduino環境を記載しておきます。
Arduino環境の準備として、BoardManagerからesp32を選択しておきます。https://github.com/espressif/arduino-esp32

Arduino GUIより、Board->ESP32 Arduino->ESP32 Dev Moduleと選択すれば準備完了です。

出荷時点でOTAコードを含んだF/Wが書き込まれていますので、F/WをWiFi経由で書き換えできるようになっています。電源を入れると以下のWiFiアクセスポイント(AP)がPCから見えるようになります。APにssid/passを使ってLoginした後、Arduino GUIから192.168.10.1のリモートポートを選択すればF/Wの書き換えが可能です。

// WiFi Setting for OTA
const char *ssid = "OTA_AP";
const char *pass = "password";
const IPAddress ip(192, 168, 10, 1);
OTAのPortを選択する。

サンプルプログラム

Arduino Sample Program
  • DCブラシモータ — マブチのDCモータを想定したサンプルプログラムです。
  • OTA — Over The Airのサンプルプログラムです。
  • Bluetooth Classic Uart — Bluetooth ClassicでUart通信をするサンプルプログラムです。
  • Bluetooth Low Energy Uart
  • 2相ステッピングモータ
  • サーボモータ
Reference Project
アームクローラーラジコン
サスペンションコントロールシステム

使用上の注意点・免責事項

  • CMOSプロセスを使用したICはラッチアップを起こします。自分もデバッグ中、ラフにI/Oを触ってしまいESP32をラッチアップさせて破壊してしまいました。I/Oにアクセスする際には必ず直列抵抗を挟むなどラッチアップ対策を行ってください。
  • モータからの逆起電力などでICの最大定格を超えてしまうことがあります。モータ駆動の際には必ず波形を確認して最大定格を超えていないことを確認してください。F/Wの組み方やモータの特性次第で逆起電力は変化しますので、必ず実使用状態で確認を行ってください。
  • ESP32やHTB67H450FNGがラッチアップや破壊を起こした場合、チップが高温になり焼損することがあります。
  • 万が一焼損等の問題が発生した時に、人身事故や物損事故に繋がる用途での使用は控えてください。
  • 最大定格や使用上の注意事項についてはESP32HTB67H450FNGの仕様書をご確認ください。
  • 出荷時には各I/Oの動作テストとOTA書き込みチェックを行っておりますが、万が一初期不良がありましたら交換させていただきます。(商品到着から14日以内)

コメント

タイトルとURLをコピーしました