立命館大学 大学院 講義資料
(C) by T.IZUMI @ Ritsumeikan U, Sep 2016 - 無断複製・再配布を禁ず
Zynqによるモーター制御
0. Zybot-R の Servo&Motor
まずZybot-RのMotorの仕様と接続を確認する。
Servo Motors
Motors
設計条件の確認と検討
これらZybot-Rのモータを制御するPWMを設計する。
これまでの講義と演習の内容、仕様書、設計ファイル、実機をよく確認し、
さらに自身で仕様を検討して、
以下の下線部・空欄を埋めよ。
- PWM とは_________の略である。
- サーボモータのPWMの周期は_____にする。
- サーボモータのパルス幅は最大_____、最小_____にする。
- 車輪モータに対して、HB5のDIR信号で_____をEN信号で_____を指示する。
- HB5のSA,SB信号で車輪モータの_____を計測することができる。
- 車輪モータの出力制御のPWMの周期は_____にする。
- PL部のクロックは_____である。
- PWMを実現するためのカウンタは___bitにする。
- 次の信号が接続されているコネクタ、ピン、信号名をまとめよ。
信号 | コネクタ名 | コネクタ ピン番号 | FPGA ピン番号 | Verlog記述中 の信号名 |
入出力 の方向 |
---|
カメラ上下サーボの制御信号 |
Pmod JD |
9 |
V17 |
jd9 |
output |
カメラ左右サーボの制御信号 |
| | | | |
右車輪モータのDIR信号 |
| | | | |
右車輪モータのEN信号 |
| | | | |
右車輪モータのSA信号 |
| | | | |
右車輪モータのSB信号 |
| | | | |
左車輪モータのDIR信号 |
| | | | |
左車輪モータのEN信号 |
| | | | |
左車輪モータのSA信号 |
| | | | |
左車輪モータのSB信号 |
| | | | |
設計の基本方針
以下では、
Zybot-Rのモーター制御のためのPWM制御回路を自身で設計する。
次の基本方針に沿って設計するとよい。
- 前の演習の設計をベースに追加・改造する。
- 汎用的なPWMモジュールをPL部の回路として設計する。
(使いまわす。必要に応じて、これを部品としてより複雑なモジュールを設計する。)
- まずはPL部のみで設計・動作テストを行う。
- PS-PL間のGPIOを増設してPWMモジュールと接続する。
- PS部のプログラムでPWMモジュールを制御する。
- (初級)カメラ用サーボモータの制御。
- (中級)サーボモータのデフォルト位置(値0での位置)を可動範囲の中心にする。リセット時にデフォルト位置になるようにする。(安全設計)
- (中級)車輪モータの出力、方向の制御。
- (中級)パルス幅の上限、下限を設定できるようにする。(安全設計)
- (中級)パルス幅出力を繰り返し(車輪出力制御用)と単発(カメラ角度制御用)で切り替えられるようにする。
- (上級)車輪モータの回転数・回転方向の測定。
- (上級)車輪モータが目標回転数になるように制御する。
回転数を検知して出力をフィードバック制御する。
参考:いずみサンプル設計の仕様
- axi_gpio_1, port 1 に上下カメラ用PWM値を出力する。
ゼロで中央位置、マイナス値で上、プラス値で下。
- axi_gpio_1, port 2 に左右カメラ用PWM値を出力する。
ゼロで中央位置、マイナス値で右、プラス値で左。
- axi_gpio_2, port 1 に右輪用PWM値を出力する。
ゼロで停止、マイナス値で後退、プラス値で前進。
- axi_gpio_2, port 2 に左輪用PWM値を出力する。
ゼロで停止、マイナス値で後退、プラス値で前進。
- axi_gpio_2, port 1 から右輪の回転数を入力する。
電源投入時点でゼロ、前進するとカウントアップ、後退するとカウントダウン。
- axi_gpio_2, port 2 から左輪の回転数を入力する。
電源投入時点でゼロ、前進するとカウントアップ、後退するとカウントダウン。
- linaro版のPWM制御と仕様がことなるので注意!
- Vivado プロジェクト名: zynqpwm,
ファイル名: zybo_top_pwm.v(前の演習のzybo_top.vを改造), pwm.v(新規設計), uart.v, hex2oled.v, zybo.xdc, debug.xdc(これらは前の演習のまま)
- SDK プロジェクト名: testpwm, ファイル名: testpwm.c(前の演習の testgpio.cを改造)
1. PWM制御回路の設計
- 自分自身のPWM制御回路を設計せよ。
- 実機動作確認せよ。
2. PWM制御回路用テストプログラムの設計
※自身での設計を途中でギブアップした場合、サンプルの生成結果
zynqpwm_generated.tgzを使用する。
SDKで[File],[Switch Workspace],[Other]から生成結果のzynqpwm/zynqpwm.sdk/を開く。
- 自身のPWM制御回路をPS部に接続せよ。
- テストプログラムを設計せよ。
- 実機動作確認せよ。
泉 知論
@
立命館大学
理工学部
電子情報工学科
その他の講義&演習資料はこちら