banner

ブログ

Aug 29, 2023

ポテンショメータの制御

M5Stack コアは、IoT プロジェクトを構築し、プロトタイプを迅速かつ簡単に作成するために設計された、モジュール式で積み重ね可能なプログラム可能な開発モジュールです。 このモジュールは ESP32 マイクロコントローラーに基づいており、さまざまなセンサー、入力、出力、およびカラー液晶ディスプレイ (LCD) が付属しています。 さらに、M5Stack コアは 54 x 54 x 18 mm の長方形モジュールとしてパッケージ化されており、2 インチの薄膜トランジスタ (TFT) LCD を備えています。

前述したように、このユニットには 3 つのプッシュ ボタン、スピーカー、microSD カード スロットなど、いくつかの入出力オプションがあります。 図 1 は、M5Stack コアを示しています。

M5Stack コアの最もユニークな機能の 1 つは、そのモジュラー設計エコシステムです。 このモジュールは他の M5Stack モジュールと簡単にスタックできるため、ユーザーは機能を追加してプロジェクトの機能を拡張できます。 M5Stack モジュラー エコシステムには、カメラ、GPS、バッテリー モジュール ユニットなど、さまざまなモジュールが用意されています。

この記事では、M5Stack コアを使用した角度センサーとサーボ モーター ユニットについて説明します。 この実践的なプロジェクトの成果は、M5Stack コア TFT ディスプレイを備えたポテンショメータベースのサーボ モーター コントローラーの構築です。

M5Stack コア ポテンショメータ ベースのサーボ モーター コントローラー プロジェクトは、既製の電子製品とソフトウェアを使用してヒューマン コンピューター インタラクション (HCI) デバイスを構築できる多用途性と容易さを示します。 このプロジェクトの目的は、人間によるシステムへの関与などの HCI コンセプトを、小型の ESP32 ベースのコントローラーを使用してどのように実現できるかを説明することです。 ESP32 ベースのプラットフォームでは、電気機械オブジェクトと人間と物理的なコンピューティングの相互作用が行われます。 このプロジェクトでは、M5Stack コアの TFT LCD を使用して電気機械システムから相互作用データを表示および取得する方法を読者が理解できるようにします。 このようなデータは、Python、PyTorch、Pandas などのプログラミング言語を使用してサイバー物理システム (CPS) の機械学習の概念を調査するために使用できます。

このプロジェクトの主要な技術情報源として、M5Stack 電子ブループリント ブックを参照することをお勧めします。 より具体的には、第 2 章「M5Stack ユニッ​​トの実践」では、ESP32 モジュラー コントローラーとプログラマブル センシングおよびコントロール ユニットの電子回路とセットアップに関する技術的な洞察を提供します。 この本には、読者を惹きつける実践的なプロジェクトやインタラクティブなクイズも含まれています。 基本的に、このプロジェクトは本の延長として考えることができます。 したがって、このプロジェクトではソフトウェアのセットアップ手順の詳細については説明しません。

以下は、構築する電子部品のリストであり、M5Stack コア ポテンショメータ ベースのサーボ モーター コントローラー プロジェクトの探索に役立ちます。

部品表 (BOM):

M5Go IoT スターター キットには、さまざまなセンサー、ジャンパー ワイヤー、RGB LED、USB C ケーブルが含まれています。 角度センサーはキットに含まれています。 このプロジェクトでは、10 KΩ ポテンショメータと 1 KΩ 抵抗を使用して、M5Stack 角度センサーの自作バージョンを構築します。 第 2 章では、はんだなしブレッドボード上の電子部品の電気配線と M5Stack コア コントローラーへの自作センサーの取り付けについて詳しく説明します。

プロジェクトの全体的なコンセプトは、メインの ESP32 組み込みプラットフォームとして M5Stack コアを使用する小型サーボ モーター コントローラーのプロトタイプ構築を説明することです。 このプロジェクトの初期セットアップでは、サーボ モーターを制御するために外部ポテンショメータを追加します。 ポテンショメータは回転情報を M5Stack コアに提供します。 次に、M5Stack コアはアナログ分圧データを同等のパルス幅変調 (PWM) 制御信号に変換し、それによって電気配線サーボ モーターを動作させます。 図 2 に試作機のシステムブロック図を示します。

次に、角度センサーの同じ内部電子部品を使用して、ポテンショメータの回路が M5Stack コアの ESP32 マイクロコントローラーに電気的に配線されます。 M5Stack 角度センサーは、10 KΩ ポテンショメータと直列に接続された 1 KΩ 抵抗を使用して構築されています。 この回路構成は、指定された ESP32 アナログ/デジタル汎用入出力 (GPIO) ピンにさまざまな離散アナログ信号値が存在できるようにする分圧機能を提供します。 図 3 に M5Stack 角度センサーを示します。

さらに、この回路アプローチにより、グランドに対するポテンショメータの最大出力電圧を +3.3 V にすることができ、さらに ESP32 マイクロコントローラの GPIO ピンは +3.3 V に準拠します。 したがって、分圧回路の最大出力電圧 +3.3 V は ESP32 マイクロコントローラーに損傷を与えることはありません。 自作角度センサーの電子回路図を図 4 に示します。

J1 参照番号は、角度センサー PCB にはんだ付けされた 4 ピンのメス コネクタを表していることに注意してください。

ここから、図 5 に示す電気配線図を参考にして、はんだなしブレッドボード上に電子回路を配線し、自作の角度センサーを M5Stack コアに取り付けることができます。

M5Stack コアの TFT LCD レイアウトは UiFlow ソフトウェアを使用して設計できることに留意してください。これについては次のセクションで説明します。

次に、Dupont ワイヤを使用して、M5Stack コアと自作角度センサー無はんだブレッドボード回路の間に延長ハーネスを作成します。 図 5 に示すように、3 本の Dupont ワイヤを白色の 4 ピン メス ヘッダー コネクタに挿入して、回路と M5Stack コア コントローラを電気的に接続します。 図 6 は、この電気配線インターフェースの接続と取り付け方法を示しています。

このプロジェクトでは、UiFlow というプログラムを使用しました。 UiFlow は、コントローラー、モジュール、センサー、ユニットからなる M5Stack 製品のプログラミングとプロトタイピングのプロセスを簡素化するように設計されたソフトウェア開発プラットフォームです。 このソフトウェアは、M5Stack コア ESP32 マイクロコントローラーをプログラミングするためのグラフィカル ユーザー インターフェイス (GUI) を提供します。 開発者は、コード ブロックをドラッグ アンド ドロップして論理コードを作成し、ESP32 マイクロコントローラーをプログラムできます。 UiFlow を使用すると、オンライン エディターまたはデスクトップにダウンロード可能なソフトウェア パッケージを使用してコーディングできます。

UiFlow オンライン エディタは、M5Stack Web サイトの次の URL アドレスから入手できます。 Windows、Apple、Linux ベースのマシンでも利用できるデスクトップ バージョンもあります。

ポテンショメータの回転データを表示するための M5Stack コア TFT LCD のレイアウト設計を図 7 に示します。

UiFlow の詳細については、M5Stack 電子ブループリント ブックの第 2 章で追加情報を参照してください。

ポテンショメータが M5Stack コアに接続されている場合、電気コンポーネントからの回転値を表示するにはソフトウェアが必要です。 UiFlow ソフトウェアはポテンショメータの回転角度を度単位で表示するために使用され、コード ブロックはサーボ モーター コントローラーの 3 つの主要な操作で構成されます。

命令コード ブロックの機能は次のもので構成されます。

UiFlow コード ブロックを図 8 に示します。

コード ブロック パレットには、コード ブロックに加えて、サーボ ユニットと角度センサー ユニットが含まれています。 これらのユニットは、コントローラー製品プロトタイプ全体内でこれらのデバイスを適切に動作させるための一連の新しいコード ブロックを追加します。 図 8 に示すように、「servo_0、servo_0 を角度回転する」および「angle_0 値を取得する」は、コード ブロック パレットに追加された新しい単位命令です。 これらのコード ブロックを含めるには、単位プラス ボタンを選択します。 デバイスのリストからサーボ ユニットとアングル ユニットを選択すると、必要なコード ブロックがパレットに追加され、プロジェクトのコントローラーのコード ビルドが完了します。 ソフトウェアの IDE コントロール パネルで RUN ボタンを選択すると、UiFlow コード ブロックが M5Stack コア上で実行されます。

ポテンショメータの回転角度を表示するだけでなく、図 8 に示す UiFlow コード ブロックはサーボ モーターを制御します。 サーボ モーターを M5Stack コアに取り付けるには、ポテンショメータに使用されるのと同じ電気配線技術が必要です。 図 9 に示す部分的な電子回路の概略図は、M5Stack コア ESP32 GPIO13 ピンに接続されたサーボ モーターの電気配線を示しています。

電子回路図の J2_A コネクタは、M5Stack コアの A ポートを表します。 J2_B 参照番号は、サーボ モーターの黒色の 3 ピン メス コネクタに挿入された電線ジャンパー ハーネス ピンを表します。

M5Stack Core からサーボ モーターへの電気配線を図 10 に示します。

完成した M5Stack コア ポテンショメータ ベースのサーボ モーター コントローラー プロトタイプを図 11 に示します。

プロジェクトの最後の参考資料として、図 12 に、M5Stack コア ポテンショメータ ベースのサーボ モータ コントローラの完全な電子回路図を示します。

ポテンショメータを調整すると、M5Stack コアの TFT LCD に表示される角度位置までサーボ モーターが回転します。 サーボ モーターの回転掃引範囲は 0° ~ 180° であり、TFT LCD ではポテンショメータでそのような角度をダイヤルインし、それに応じて表示できます。 サーボ モーター コントローラーの動作を示す短いビデオ クリップが提供されています。 プロトタイプのサーボ モーター コントローラーの動作を確認するには、ここでビデオをご覧いただくか、以下でご覧ください。

このプロジェクトの意図的な側面は、ESP32 プラットフォームを使用して HCI サーボ モーター コントローラーを作成するためのユニークで革新的なアプローチを説明することでした。 M5Stack コアは、ESP32 ベースのモジュラー IoT エコシステムであり、既製の電子コンポーネントとユニットを使用してさまざまな CPS デバイスのプロトタイプを簡単に作成できます。 このプロジェクトでは、ビジュアル プログラミング言語 (VPL) が、開発者が機能するプロトタイプを数分以内に迅速に構築するのにどのように役立つかを示しました。 M5Stack コアの小型フォーム ファクターを使用すると、小型ウェアラブル コントローラーとヒューマン マシン インターフェイス (HMI) を開発し、オートメーション、ロボット工学、スマート ホーム、教育テクノロジー開発分野などの分野に導入できます。

図 1. 図 2. 図 3. 図 4. 図 5. 図 6. 図 7. 図 8. 図 9. 図 10. 図 11. 図 12.
共有