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

オープンループ制御

このチュートリアルでは、開ループ制御を使用して BLDC モーターを実行する方法を検討します。

前提条件

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

ファームウェアをボードにアップロードするには、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 - シリアル アダプタとして使用する方法がわからない場合は、シリアル通信チュートリアル] を参照してください。

注意

BLDC モーターの内部抵抗が 10Ω より大きいことを確認してください。そうしないと、ボードが焼損する可能性があります。

参照。 内部抵抗の測定方法

インストール

VScode と PlatformIO

PlatformIO は、VSCode 拡張機能マーケットプレイスからインストールできます。

STM32CubeProgrammer

これはファームウェアをボードにフラッシュするために必要です。

クローンを作成 リポジトリ

git clone https://github.com/aotenjo-xyz/one.git
cd one

LED 点滅のサンプル コードは examples/openloop ディレクトリにあるため、Linux または macOS を使用している場合は、次のコマンドを実行してサンプル コードを src ディレクトリにコピーします。

rm src/*
cp examples/open_loop/main.cpp src/
cp examples/open_loop/platformio.ini platformio.ini

Windows の場合、ファイルを手動でコピーできます。

クイックスタート

  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 ボタンを押し続けると、同じ効果が得られます。 ::: 2. ST-LINK V2 プログラマをコンピュータに接続します。 3. VSCode でプロジェクト フォルダーを開きます。 4. 左側のサイドバーの「PlatformIO」タブをクリックし、「Upload」ボタンをクリックしてファームウェアをボードにアップロードします。

  1. ST-LINK V2 プログラマを取り外し、電源と BlackPill STM32 ボードを Aotenjo One ボードに接続します。最後に、BlackPill STM32 ボードをコンピュータに接続します。

    Power Supply <-> Aotenjo One
    12V <---> VCC
    GND <---> GND

    Aotenjo One <-> Blackpill STM32
    TX <---> PA3 (RX)
    RX <---> PA2 (TX)
    GND <---> GND

    Blackpill STM32 <-> Computer
    USB <---> USB

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

  1. 電源をオンにし、シリアル モニターに次のコマンドを入力して Enter キーを押します。
    T1

これで、モーターが一定の速度で回転していることがわかります。値 T1 はターゲット速度を表し、モーターの速度を制御するために調整できます。 たとえば、T6.28 と入力すると、ターゲット速度が 6.28 rad/s に設定されます。これは、モーターが 1 秒あたり 1 回転することを意味します。 T-6.28 のように負の値を入力すると、モーターを逆方向に回転させることもできます。

シリアルモニター出力

ビデオデモンストレーションは次のとおりです。

BLDC モーターのオープンループ速度制御

指揮官

このコードでは SimpleFOC ライブラリを使用してモーターを制御しているため、Commander インターフェイス を使用してモーターを制御できます。 以下に便利なコマンドをいくつか示します。

  • T<value>: ターゲット速度を設定します (rad/s 単位)。
  • L<value>: ターゲット電圧を設定します (V 単位)
  • ?: 利用可能なコマンドを取得します

シリアル モニターに ? と入力すると、使用可能なコマンドのリストが表示されます。

T:target velocity
L:target voltage

シリアルモニタに T を入力すると現在の目標速度が表示され、L と入力すると現在の目標電圧が表示されます。

参考文献