ステッピングモータを自作のドライバ回路とプログラムで動かしてみた

本サイトはアフィリエイト広告を利用しています。
FPGA

自作のドライバ基板でステッピングモータを回してみました。

Pythonで簡単にプログラムを作って、パルス波形を作成しています。

基板の回路図、プログラム含めて紹介します。

 

スポンサーリンク

ステッピングモータを自作のドライバ回路とプログラムで動かしてみた

自作のドライバ基板でステッピングモータを回してみました。

ドライバICはDRV8833を使用しています。ステッピングモータは汎用の28BYJ48です。

 

ステッピングモータの1-2相制御(ハーフステップ)を行いました。

KV260というFPGAボードから簡単にPythonで制御しています。

オシロスコープで波形含めて確認しました。詳細を紹介していきます。

 

自作のモータドライバ基板

自作のモータドライバ基板に関しては、下記コンテストで使用したものです。

AMD(Xilinx)のFPGAコンテストに参加した感想

AMD(Xilinx)のFPGAコンテストに参加した感想
AMD(Xilinx)とHackster(Avnet)が合同主催する、海外のコンテストに参加していました。 AMD Pervasive AI Developer Contest の「Robotics AI」部門です。 KR260というFPG...

 

PCBGOGOで基板作成したものです。その際のブログ記事は下記です。

モータドライバの回路を自作してみる(DCモータ編)

モータドライバの回路を自作してみる(DCモータ編)
モータドライバの回路を自作して、基板作成しました。 ICはDRV8833です。2chのDCモータを正転・反転制御する基板です。 回路図からアートワークまで作成した旨を紹介します。 モータドライバの回路を自作してみる(DCモータ編) モータド...

 

回路図の基板データ・実装部品に関しては、下記リポジストリに詳細を残しています。

GitHub - iotengineer22/PCB-DRV8833-TEST: DRV8833-PCB-KiCad-DATA
DRV8833-PCB-KiCad-DATA. Contribute to iotengineer22/PCB-DRV8833-TEST development by creating an account on GitHub.

 

今まで自作基板でDCモータはテストしていましたが、ステッピングモータは未実施でした。

ICのDRV8833としては、2つのDCモータ・1つのステッピングモータを制御できます。

そのため、今回ステッピングモータで試してみました。

 

ステッピングモータ

ステッピングモータ28BYJ48に関しては、下記のものです。

 

下記記事でも、ラズパイと一緒にセットで付いてきたドライバ基板でテストしています。

ステッピングモータをラズパイで制御して、波形まで確認してみた

ステッピングモータをラズパイで制御して、波形まで確認してみた
ステッピングモータを購入してみました。ラズパイからPythonで制御しています。 オシロスコープで波形取得するまで確認した旨を紹介します。 ステッピングモータをラズパイで制御して、波形まで確認してみた ステッピングモータを購入してみました。...

 

今回はコネクタ先を切って、自作ドライバ基板に接続しています

モータ電源は5Vのため、今回は評価ボードのUSBコネクタから引き出しています。

 

下記のようなUSBから電源引き出せる端子台形状のものは便利です。

 

テストプログラム

本来Verilog・VHDLからしっかりしたクロックでパルス波形を作るべきですが…

今回はPython(jupyter notebook)で簡単にテスト的に作っています。

 

今回使っているKV260でのセットアップ方法に関しては、下記記事を参考ください。

KV260とDPU-PYNQでYOLOXの物体検出してみる

KV260とDPU-PYNQでYOLOXの物体検出してみる
KV260とDPU-PYNQで物体検出してみました。 YOLOXを使って、高速に物体検出しています。 jupyter_notebooksとpythonの両方でテストしてみました。 KV260とDPU-PYNQでYOLOXの物体検出してみる ...

 

また下記GitHubのリポジストリに今回のプログラム・モデル含めて記載しています。

kv260-ubuntu-test/jupyter_notebooks/pynq-stepper at main · iotengineer22/kv260-ubuntu-test
This repository present solution for my KV260 Ubuntu test - iotengineer22/kv260-ubuntu-test

 

オシロスコープ

オシロスコープは下記で紹介しているRIGOLの趣味向けの4ch品を使用しています。

オシロスコープの使い方!初めての人向けに多くの測定事例を紹介

オシロスコープの使い方!初めての人向けに多くの測定事例を紹介
オシロスコープの使い方を一から紹介します。 電源の入れ方からトリガーのかけ方までを写真・動画交えて分かりやすく説明します。 初心者の方でも簡単にオシロを使った測定方法を学ぶことができます。

 

ステッピングモータの動作テスト

KV260でのステッピングモータをの動作方法例を紹介します。

実際のテスト動画は下記です。

 

評価ボードはKV260を使用しています。プログラムはPythonを使っています。

下記例のようにjupyter notebookのフォルダにプログラムとモデルを用意します。

 

最初にプレ・準備テストです。

ステッピングモータの1-2相制御が出来ているか、LED基板とオシロで確認しています。

LEDと波形が狙い通りの点灯・波形をしています。ステップ周波数は12.5Hzです

GPIOを使用して、1-2相制御できていることが確認出来ました。

 

LED基板に関しては、下記記事で発注した旨を紹介しています。

プリント基板の発注を個人でやってみた(PCBGOGO編)

プリント基板の発注を個人でやってみた(PCBGOGO編)
PCBGOGOでプリント基板を個人発注をしてみました。 PCBGOGOは初めてで、新規のためクーポンが使えて格安で作れました。 発注から入金、基板到着までの流れを紹介します。 プリント基板の発注を個人でやってみた(PCBGOGO編) PCB...

 

続いて自作ドライバ回路を使って、ステッピングモータを制御しています。

ドライバICはDRV8833を使用しています。自作基板です。

モータ電源は評価ボードのUSB5Vを使っています。

 

正常に回転して、波形も問題ないことを確認しています。

ステップ周波数を10倍の125Hzにしての動作確認もしています。

問題なく動作できています。

 

ステッピングモータと画像認識のテスト

KV260にWebカメラとステッピングモータを接続した応用編のテストです。

Webカメラでオレンジボールを物体検出したら、ステッピングモータを回すように制御しています。

 

Pythonのプログラムを開始します。

 

実際のテストプログラムは下記に保存しています。

 https://github.com/iotengineer22/kv260-ubuntu-test/blob/main/stepper-motor/app_gst-yolox-real-normal-camera-stepper.py

 

テスト動画が下記です。

 

オレンジボールがWebカメラで検出できないときは、ステッピングモータは回りません。

検出できているときだけ、ステッピングモータが回転することが分かります。

 

まとめ

自作のドライバ基板でステッピングモータを回してみました。

Pythonで簡単にプログラムを作って、パルス波形を作成しています。

基板の回路図、プログラム含めて紹介しました。

 

簡単にテストできますので、ぜひ皆様もドライバ基板を作ってみてください。

PCBGOGOで基板作成したものです。その際のブログ記事は下記です。

モータドライバの回路を自作してみる(DCモータ編)

モータドライバの回路を自作してみる(DCモータ編)
モータドライバの回路を自作して、基板作成しました。 ICはDRV8833です。2chのDCモータを正転・反転制御する基板です。 回路図からアートワークまで作成した旨を紹介します。 モータドライバの回路を自作してみる(DCモータ編) モータド...

 

回路図の基板データ・実装部品に関しては、下記リポジストリに詳細を残しています。

GitHub - iotengineer22/PCB-DRV8833-TEST: DRV8833-PCB-KiCad-DATA
DRV8833-PCB-KiCad-DATA. Contribute to iotengineer22/PCB-DRV8833-TEST development by creating an account on GitHub.

コメント