0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry pi + インバータでBLモータを回転させる(BLモータの絶対角計測)

Last updated at Posted at 2025-03-21

1. はじめに

私を含め、Raspberry piを買ったはいいものの、何をやったらいいかわからず、持て余している方は多いのではないでしょうか。
特に私の感覚では、「ハードウェアを動かすこと」に困っている方が多いように思います。
それに加え、私は仕事でBLモータを使ってはいるものの、BLモータが回転するメカニズムがわかっていなかったので、Raspberry piでBLモータを回転させる実験機を作ることにしました。

実験機を作りにあたり、ESCではなくインバータ(本記事ではIHM07M1)を使うことで、
より正確にBLモータが回転するメカニズムを理解できるように努めました。

2. 本記事で参考にしたサイト

本記事は以下サイトを参考にしております。作成者の方にはこの場を借りて、お礼を申し上げます。

3. 本記事のゴールと注意点

BLモータの回転に最もよく使われる方法は「ベクトル制御」だと思われ、私も当初はベクトル制御実装を目指していましたが、
Raspberry piはPWMチャンネルが2つしかなく、BLモータの3相を独立で制御することができません。
よって本記事では「センサード120°制御+電流計測」までを解説します。

4. 本記事の構成

前述の「センサード120°制御+電流計測」を全て解説すると本文が膨大となるため、タスクとに、下記のように記事を分けます。

  1. BLモータの絶対角計測(本記事の範囲)
  2. インバータ(IHM07M1)からのPWM出力
  3. BLモータの3相電流のAD変換と読み取り(執筆中)
  4. 実験機製作(執筆中)
  5. プログラム作成(執筆中)

前半1章~3章で必要な機能の実装方法を述べ、後半4章と5章ではどのように実験機とプログラムを作ったかを述べます。

5. BLモータの絶対角計測

5.1. 使用する機器と配線図

本記事で使用する機器を以下に示します。

機器名 型番
角度センサ AS5048A
コンピュータ Raspberry pi 4 Model B

AS5048Aの通信仕様はSPIなので、Raspberry piと下図のように接続します。

5.2. AS5048A~Raspberry pi間の通信フロー

AS5048AとRaspberry piの通信フローを下図に示します。通信仕様はSPIであるため、CSがLowである間のみAS5048AとRaspberry piとのデータのやり取りが発生します。AS5048AはRaspberry piからRead CMDを受信した後に、Angle dataを返します。

AS5048Aのデータは14bitなので、Angle dataに下記係数を掛けるとdegreeに変換することができます。
$$
0.0219\ \text{deg/LSB}
$$

「SPI通信」と「AS5048Aの仕様」については下記をご参照ください。

5.3. 絶対角計測プログラム

著者の作成したAS5048Aのプログラムは以下Githubリンクにて公開しております。
https://github.com/hiyo-control/02_BL_motor/tree/main/Chapter1_AS5048A_program

プログラム作成では下記Githubで公開されているコードを参考しました。
https://github.com/eborghi10/AS5048A/tree/master/src

5.4. 動作の様子

プログラムを実行すると、下図のようにモータ角度が表示されます。
30_angle.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?