磁気エンコーダ
このチュートリアルでは、Aotenjo One で 14 ビット磁気エンコーダ MT6701 を使用する方法を説明します。
事前準備
このチュートリアルでは、以下の機器を使用します。
- Aotenjo Oneボード MCU: STM32G431CBU6 バージョン: Aotenjo One V1.4
- 直径方向着磁ディスクマグネット(Aotenjo Oneに付属)
- ST-LINK V2 クローン
- BlackPill STM32 ボード
- BE4108 75T ジンバルモーター
ファームウェアをボードにアップロードするには、ST-LINK V2 クローンが必要です。安価なクローン ST-LINK V2 は 5 ドル以下で購入できます。
USB シリアル変換アダプター
Aotenjo One ボードには USB ポートがないため、シリアル経由でボードと通信するには USB シリアル変換アダプターが必要です。 このチュートリアルでは 、BlackPill STM32 ボードを USB シリアル変換アダプターとして使います。市販の USB シリアル変換アダプターや、対応する別の開発ボードでも代用できます。
次の開発ボードを USB シリアル変換アダプターとして使用できます。
- BlackPill STM32 ボード
- BluePill STM32 ボード
- ESP32-DevKitC

BlackPill STM32 ボードを USB シリアル変換アダプターとして使用する方法がわからない場合は、シリアル通信チュートリアル を参照してください。
開発環境の準備
VSCode と PlatformIO
PlatformIO は、VSCode 拡張機能マーケットプレイスからインストールできます。
STM32CubeProgrammer
ファームウェアを基板に書き込むためのツールです。
リポジトリの取得
git clone https://github.com/aotenjo-xyz/one.git
cd one
磁気エンコーダーのサンプルコードは examples/MT6701 ディレクトリにあるため、Linux または macOS を使用している場合は、次のコマンドを実行してサンプルコードを src ディレクトリにコピーします。
rm src/*
cp examples/MT6701/main.cpp src/
cp examples/MT6701/platformio.ini platformio.ini
Windows の場合、ファイルを手動でコピーできます。
クイックスタート
- モーターのシャフトに磁石を置きます。

-
Aotenjo One ボードを ST-LINK V2 書き込み器に接続します。
ST-LINK V2 <-> Aotenjo One3.3V <---> 3.3VGND <---> GNDSWDIO <---> SWDIOSWCLK <---> SWCLKRST <---> NRST備考
STM32G4 シリーズでは、BlackPill と異なり、基板の NRST ピンも ST-LINK V2 に接続する必要があります。
あるいは、アップロード中に Aotenjo One ボードの NRST ボタンを押し続けると、同じ効果が得られます。
:::
3. ST-LINK V2 書き込み器を PC に接続します。
4. VSCode でプロジェクトフォルダーを開きます。
5. 左側のサイドバーの「PlatformIO」タブをクリックし、「Upload」ボタンをクリックしてファームウェアをボードにアップロードします。
-
次のように、USB シリアル変換アダプターを Aotenjo One ボードに接続します。
Aotenjo One <-> Blackpill STM323.3V <---> 3.3VTX <---> PA3 (RX)RX <---> PA2 (TX)GND <---> GND注記
TX を RX および RX を TX に接続する必要があります。 ::: 5. 次のような USB ケーブルを使用して、USB シリアル変換アダプターを PC に接続します。
- 左側のサイドバーにある [PlatformIO] タブをクリックし、[
Monitor] ボタンをクリックしてシリアルモニターを開きます。
これで、モーターの角度 (ラジアン単位) と速度 (ラジアン/秒) がシリアルモニターに表示されるはずです。値はラジアン単位であるため、6.28rad は 360 度、つまり 1 回転に相当します。モーターを回転させて、それに応じて値が変化するかどうかを確認できます。
