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

CANバス

このチュートリアルでは、CAN バス経由で Aotenjo One ボードを制御し、閉ループ角度制御を実行する方法を紹介します。

CAN バスをまだ設定していない場合は、Aotenjo One CAN Bus チュートリアル で配線と構成の詳細な手順を参照してください。

CANバスとは何ですか?

CAN バス (コントローラー エリア ネットワーク) は、ホスト コンピューターなしでマイクロコントローラーとデバイスが相互に通信できるように設計された堅牢な車両バス標準です。その信頼性と効率性により、自動車および産業用途で広く使用されています。

AotenjoでCANバスを使用する理由

Aotenjo ボードで CAN バスを使用すると、次のような利点があります。

  • 堅牢な通信: CAN バスは、電気的ノイズの多い環境に対応できるように設計されており、モーター制御アプリケーションに最適です。
  • マルチデバイスのサポート: 複数の Aotenjo One ボードを 1 つの Aotenjo Master ボードに接続できるため、複数のモーターを組み合わせたシステムを構成できます。
  • リアルタイム制御: CAN バスは、正確なモーター制御とフィードバックに不可欠なリアルタイム通信を可能にします。
  • 拡張性: 配線やソフトウェアに大幅な変更を加えることなく、Aotenjo One ボードをシステムに簡単に追加できます。
  • 配線の簡略化: CAN バスは 2 線式差動信号システムを使用しており、従来のシリアル通信方式と比較して必要な配線の量が削減されます。

CAN 終端スイッチを ON にする条件

CAN 終端抵抗は、CAN バスの物理的な両端にある基板でのみ有効にしてください。信号の反射を抑え、安定した通信を確保するために必要です。両端の間にある基板では、終端スイッチを OFF にしてください。

備考

下図では Aotenjo Master が CAN バスの末端にあるため、Master の CAN 終端スイッチを ON にします。

備考

下図のように Aotenjo Master を CAN バスの途中に配置する場合は、Master の CAN 終端スイッチを OFF にします。バスの両端にある基板の終端スイッチは ON にしてください。

事前準備

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

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

開発環境の準備

VSCode と PlatformIO

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

STM32CubeProgrammer

ファームウェアを基板に書き込むためのツールです。

リポジトリの取得

git clone https://github.com/aotenjo-xyz/master.git
cd master
git checkout v1.0

クイックスタート

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

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

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

  1. ST-LINK V2 書き込み器を取り外し、Aotenjo Master と Aotenjo One ボード間の電源用の JST XH ケーブルと CAN バス用の JST PH ケーブルを接続します。

  2. Aotenjo Master ボードを USB 経由で PC に接続します。

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

  4. 電源を入れるとモーターが回転し始め、FOC(Field Oriented Control)が初期化されます。

  5. シリアルモニターに次のコマンドを入力し、Enter キーを押します。

    M06.28

M0 モーターは 1 回転し、初期位置で停止します。ラジアン単位で値を変更することで、目標角度を調整できます。 M0-6.28 のように負の値を入力すると、モーターを逆方向に回転させることもできます。

M0 モーターの現在の角度を読み取るには、次のように入力します。

M0P

モーターをスリープ モードにするには、次のコマンドを使用します。

ESTOP

当社の巻線機も、このように Aotenjo Master と Aotenjo One を CAN バスで接続して制御しています。 Aotenjo を使って開発を楽しんでいただければ幸いです。