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モータを回転させる(インバータからPWM出力)

Last updated at Posted at 2025-04-05

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. インバータ(IHM07M1)からのPWM出力

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

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

機器名 型番
BLモータ A2212 KV1000
インバータ IHM07M1
DCDCコンバータ AE-LTC3111
DCジャック AE-DC-POWER-JACK-DIP
ACアダプタ M050200-A010JP
コンピュータ Raspberry pi 4 Model B

上表で示した機器を下図のように接続します。

接続図にある、

  • IHM07M1の印加電圧
  • UVW各相へのPWM
  • UVW各相へのEnable

についての補足を下記に示します。

IHM07M1の印加電圧

IHM07M1のデータシートより、J1には8V~48Vの間の電圧を印加することができます。
今回「15V」と決めたのは、手元にあったDCDCコンバータの最大出力電圧が「15V」だったからです。

UVW各相へのPWM

IHM07M1のJ2からPWMを出すには、Raspberry piからIHM07M1へPWMを加える必要があります。
Rapsberry piでPWM出力のできる端子は下記です。

  • PWM Channel 0:GPIO12(32Pin)、GPIO18(12Pin)
  • PWM Channel 1:GPIO13(33Pin)、GPIO19(35Pin)

Raspberry piのデータシートから引用

上表が示すようにRaspberry piにはPWMチャンネルが2つしかないため、独立で出力できるPWMは2つまでです。
本記事で紹介する「センサード120°制御」は1チャンネルずつPWMを指定するので問題はありませんが、「ベクトル制御」は3チャンネル独立にPWMを指定する必要があるため、Raspberry piの機能ではベクトル制御を実装することはできません。

IHM07M1の回路図より、C10_23、C10_21、C10_33にUWVのPWMを入力する必要があります。

※ 上図はIHM07M1のデータシートからの抜粋です

UVW各相へのEnable

詳しくは後述しますが、「センサード120°制御」のためにはUVW相の「どの相からどの相へ電流を流すか」を指定しなければいけません。それをするために、Enableを使います。

IHM07M1の回路図より、C7_1~V7_3とRaspberry piのGPIOを接続します。GPIOはON/OFFができればいいので、どれを選んでも問題ありません。

※ 上図はIHM07M1のデータシートからの抜粋です

5.2. IHM07M1からのPWM発生確認

IHM07M1にて、

  • Enableが正常に動作するか
  • J2からPWMが出力されるか

の動作確認をするために、下図の1~6を繰り返すプログラムを作成します。

※ 図はこちらのサイトから利用させていただきました。

下表のようにPWMとEnableを変化させます。

No U相 PWM V相 PWM W相 PWM U相 Enable V相 Enable W相 Enable
1 Output 0 0 ON OFF ON
2 Output 0 0 ON ON OFF
3 0 0 Output OFF ON ON
4 0 0 Output ON OFF ON
5 0 Output 0 ON ON OFF
6 0 Output 0 OFF ON ON

今回は「Enterキー」を順番に押すとNo1~No6の順に変化するプログラムを作成し、J2から意図したPWMが出力されるかを確認します。

5.3. インバータPWM発生プログラム

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

プログラム作成では下記Githubで公開されているコードを参考しました。
https://github.com/RR-Inyo/bldc6p

5.4. 動作の様子

J2とオシロスコープを繋ぎ、プログラムを実行するとPWMが確認できます。

また、J2とBLモータを接続し、Enterキーを押し続けるとBLモータを回転させることができます。
その様子は下記のyoutubeリンクからご覧ください。

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?