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

磁気エンコーダ

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

前提条件

このチュートリアルでは、次のハードウェアが使用されます。

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

USB - シリアルアダプター

Aotenjo One ボードには USB ポートがないため、シリアル経由でボードと通信するには USB - シリアル アダプターが必要です。 このチュートリアルでは、Blackpill STM32 ボードを USB - シリアル アダプターとして使用して Aotenjo One ボードと通信しますが、安価な USB - シリアル アダプターや Blackpill などの別の STM32 ボードを 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

LED 点滅のサンプル コードは 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
    備考

blackpill ボードとは異なり、NRST ピンを STM32G4 シリーズの ST-LINK V2 プログラマに接続する必要があります。 あるいは、アップロード中に Aotenjo One ボードの NRST ボタンを押し続けると、同じ効果が得られます。 ::: 3. ST-LINK V2 プログラマをコンピュータに接続します。 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 - シリアル アダプタをコンピュータに接続します。

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

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

MT6701 シリアル出力

参考文献