メインコンテンツまでスキップ

磁気エンコーダ

このチュートリアルでは、Aotenjo One で 14 ビット磁気エンコーダ MT6701 を使用する方法を説明します。

事前準備

このチュートリアルでは、以下の機器を使用します。

ファームウェアをボードにアップロードするには、ST-LINK V2 クローンが必要です。安価なクローン ST-LINK V2 は 5 ドル以下で購入できます。

USB シリアル変換アダプター

Aotenjo One ボードには USB ポートがないため、シリアル経由でボードと通信するには USB シリアル変換アダプターが必要です。 このチュートリアルでは、BlackPill STM32 ボードを USB シリアル変換アダプターとして使います。市販の USB シリアル変換アダプターや、対応する別の開発ボードでも代用できます。

ヒント

次の開発ボードを USB シリアル変換アダプターとして使用できます。

  • BlackPill STM32 ボード
  • BluePill STM32 ボード
  • ESP32-DevKitC

USB シリアル変換アダプターの図

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 の場合、ファイルを手動でコピーできます。

クイックスタート

  1. モーターのシャフトに磁石を置きます。

モーターシャフトの磁石

  1. Aotenjo One ボードを ST-LINK V2 書き込み器に接続します。

    ST-LINK V2 <-> Aotenjo One
    3.3V <---> 3.3V
    GND <---> GND
    SWDIO <---> SWDIO
    SWCLK <---> SWCLK
    RST <---> NRST
    備考

STM32G4 シリーズでは、BlackPill と異なり、基板の NRST ピンも ST-LINK V2 に接続する必要があります。 あるいは、アップロード中に Aotenjo One ボードの NRST ボタンを押し続けると、同じ効果が得られます。 ::: 3. ST-LINK V2 書き込み器を PC に接続します。 4. VSCode でプロジェクトフォルダーを開きます。 5. 左側のサイドバーの「PlatformIO」タブをクリックし、「Upload」ボタンをクリックしてファームウェアをボードにアップロードします。

  1. 次のように、USB シリアル変換アダプターを Aotenjo One ボードに接続します。

    Aotenjo One <-> Blackpill STM32
    3.3V <---> 3.3V
    TX <---> PA3 (RX)
    RX <---> PA2 (TX)
    GND <---> GND
    注記

TX を RX および RX を TX に接続する必要があります。 ::: 5. 次のような USB ケーブルを使用して、USB シリアル変換アダプターを PC に接続します。

  1. 左側のサイドバーにある [PlatformIO] タブをクリックし、[Monitor] ボタンをクリックしてシリアルモニターを開きます。 PlatformIO モニター

これで、モーターの角度 (ラジアン単位) と速度 (ラジアン/秒) がシリアルモニターに表示されるはずです。値はラジアン単位であるため、6.28rad は 360 度、つまり 1 回転に相当します。モーターを回転させて、それに応じて値が変化するかどうかを確認できます。

MT6701 シリアル出力

参考文献