CANバス
このチュートリアルでは、CAN バス経由で Aotenjo One ボードを制御し、閉ループ角度制御を実行する方法を検討します。
CAN バスをまだ設定していない場合は、Aotenjo One CAN Bus チュートリアル] で配線と構成の詳細な手順を参照してください。
CANバスとは何ですか?
CAN バス (コント ローラー エリア ネットワーク) は、ホスト コンピューターなしでマイクロコントローラーとデバイスが相互に通信できるように設計された堅牢な車両バス標準です。その信頼性と効率性により、自動車および産業用途で広く使用されています。
青天井でCANバスを使用する理由
Aotenjo ボードで CAN バスを使用すると、次のような利点があります。
- 堅牢な通信: CAN バスは、騒音の多い環境に対応できるように設計されており、モーター制御アプリケーションに最適です。
- マルチデバイスのサポート: 複数の Aotenjo One ボードを 1 つの Aotenjo マスター ボードに接続できるため、複雑なマルチモーターのセットアップが可能です。
- リアルタイム制御: CAN バスは、正確なモーター制御とフィードバックに不可欠なリアルタイム通信を可能にします。
- 拡張性: 配線やソフトウェアに大幅な変更を加えることなく、Aotenjo One ボードをシステムに簡単に追加できます。
- 配線の複雑さの軽減: CAN バスは 2 線式差動信号システムを使用しており、従来のシリアル通信方式と比較して必要な配線の量が削減されます。
前提条件
このチュートリアルでは、次のハードウェアが使用されます。
- 青天井ワンボード MCU: STM32G431CBU6 バージョン: 青天井 One V1.4
- 青天井マスターボード MCU: STM32G431CBU6 バージョン: 青天井マスター V1.1
- 直径方向着磁ディスクマグネット(Aotenjo Oneに付属)
- ST-LINK V2 クローン
- BlackPill STM32 ボード
- BE4108 75T ジンバルモーター
- 電源(12V)
ファームウェアをボードにアップロードするには、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
クイックスタート
-
Aotenjo マスターボードを ST-LINK V2 プログラマに接続します。
ST-LINK V2 <-> Aotenjo Master3.3V <---> 3.3VGND <---> GNDSWDIO <---> SWDIOSWCLK <---> SWCLKRST <---> NRST備考
blackpill ボードとは異なり、NRST ピンを STM32G4 シリーズの ST-LINK V2 プログラマに接続する必要があります。
あるいは、アップロード中に青天井マスター ボードの NRST ボタンを押し続けると、同じ効果が得られます。
:::
2. ST-LINK V2 プログラマをコンピュータに接続します。
3. VSCode でプロジェクト フォルダーを開きます。
4. 左側のサイドバーの「PlatformIO」タブをクリックし、「Upload」ボタンをクリックしてファームウェアをボードにアップロードします。
-
ST-LINK V2 プログラマを取り外し、Aotenjo Master と Aotenjo One ボード間の電源用の JST XH ケーブルと CAN バス用の JST PH ケーブルを接続します。
-
Aotenjo マスターボードを USB 経由でコンピュータに接続します。
-
左側のサイドバーにある [PlatformIO] タブをクリックし、[
Monitor] ボタンをクリックしてシリアル モニターを開きます。
-
電源を入れるとモーターが回転し始め、FOC(Field Oriented Control)が初期化されます。
-
シリアル モニターに次のコマンドを入力し、Enter キーを押します。
M06.28
M0 モーターは 1 回転し、初期位置で停止します。ラジアン単位で値を変更することで、ターゲットの角度を調整できます。
M0-6.28 のように負の値を入力すると、モーターを逆方向に回転させることもできます。
M0 モーターの現在の角度を読み取るには、次のように入力します。
M0P
モーターをスリープ モードにするには、次のコマンドを使用します。
ESTOP
これはまさに、Aotenjo Master および Aotenjo One との CAN バス通信を使用してモーター巻線機を制御する方法です。 Aotenjo を使って開発を楽しんでいただければ幸いです。