Motor Bridge Cape v1.0
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Motor Bridge Capeは、2つのTB6612FNG統合デュアルHブリッジを使用して双方向モーター制御を特徴としており、2つのステッピングモーターまたは4つのブラシ付きDCモーターを6〜15V DC電源で制御し、モーターごとに約1Aの電流を消費します。このケープは、最大入力電圧15VでBBGまたはBBBに5Vの規制電力を提供します。また、6つのサーボ制御インターフェースと6つの拡張I/Oを備えています。これらすべての機能は、オンボードのSTM32F0コプロセッサによって提供されます。MCUは、BeagleBone®とI2CまたはUARTインターフェースを介して通信できます。
特徴
- 4つのDCモーターまたは2つのステッピングモーターを駆動可能
- 6つのサーボを駆動可能
- Mbedプラットフォーム
- STM32F0コプロセッサ
- 2つのTB6612FNG
- 6つの拡張I/O
- BBGとI2CまたはUARTインターフェースで通信可能
仕様
- バッテリー入力電圧: 6〜15V
- Hブリッジ動作電圧: 6〜15V
- DC/DC 5V出力電流: 最大2A
- 3V3出力電流: 最大350mA
- 4つのHブリッジドライバー、各定格電流: 1.2A、ピーク電流: 3.2A
- 6つのサーボドライバー、動作電圧: 5V、総電流は1.5A以下
- 入力逆接続保護
- 過電流保護: 3Aの使い捨て高速ヒューズ
ハードウェア概要
- 3A使い捨てヒューズ: 過電流保護
- リセットボタン: コプロセッサをリセット
- SWDインターフェース: デバッグインターフェース
- プロトタイプボード: 他の回路を拡張
- GPIOs: 他の回路を拡張
- サーボ: サーボモーターインターフェース
- STM32F030R8: コプロセッサ
- DC/DC: 電圧変換回路
- TB6612FNG: HブリッジIC
- インジケーター: モーター方向の表示ランプ
- 動作モードスイッチ: スタンバイまたは動作
- 入力逆接続保護: 回路保護
- Motor4/Motor3: 2つのDCモーターまたは1つのステッピングモーターを駆動
- Motor2/Motor1: 2つのDCモーターまたは1つのステッピングモーターを駆動
- バッテリー: モーターに電力を供給
使い始める
このセクションでは、BBGでMotor Bridge Capeを使用する方法を説明します。始める前に、GithubからMotor Bridge Cape Driverライブラリコードをダウンロードしてください。
Motor Bridge Capeライブラリを使用するには、MotorBridge.pyファイルをプロジェクトに追加します。そして、Pythonファイルをプロジェクトにインポートし、Motor Bridge Capeのオブジェクトを作成します。
import MotorBridge
motor = MotorBridge.MotorBridgeCape()
依存関係のインストール
sudo apt-get update
sudo apt-get install build-essential python-pip python-dev python-smbus git
sudo pip install Adafruit-GPIO
ステッピングモーター
Motor Bridge Capeのステッピングモーターインターフェースは以下の図のように示されています。
ステッピングモーターの機能
以下はステッピングモーターの機能についての簡単な説明です。
StepperMotorAInit()
説明: ステッピングモーターAポートを初期化します。
StepperMotorAMove(MoveSteps,StepDelayTime)
説明: ステッピングモーターAを駆動します。
MoveSteps: ステッピングモーターが移動するステップ数。正の値は時計回り方向を示します。負の値は反時計回り方向を示します。
StepDelayTime: 各ステップの待機時間。単位: us。
StepperMotorBInit()
説明: ステッピングモーターBポートを初期化します。
StepperMotorBMove(MoveSteps,StepDelayTime)
説明: ステッピングモーターBを駆動します。
MoveSteps: ステッピングモーターが移動するステップ数。正の値は時計回り方向を示します。負の値は反時計回り方向を示します。
StepDelayTime: 各ステップの待機時間。単位: us。
ステッピングモーターの例
以下のコードをプロジェクトにコピーしてPythonファイルとして保存してください。
import MotorBridge
import time
def StepperMotorATest():
print 'Hello From MotorBridge'
motor.StepperMotorAInit()
motor.StepperMotorAMove(1000,1000) # 1000ステップ、各ステップ1000us
time.sleep(1)
motor.StepperMotorAMove(-1000,1000) # 1000ステップ、各ステップ1000us
time.sleep(1)
def StepperMotorBTest():
print 'Hello From MotorBridge'
motor.StepperMotorBInit()
motor.StepperMotorBMove(1000,1000) # 1000ステップ、各ステップ1000us
time.sleep(1)
motor.StepperMotorBMove(-1000,1000) # 1000ステップ、各ステップ1000us
time.sleep(1)
if __name__=="__main__":
motor = MotorBridge.MotorBridgeCape()
StepperMotorATest()
StepperMotorBTest()
DCモーター
Motor Bridge CapeのDCモーターインターフェースは以下の図のように示されています。
DCモーターの機能
以下はDCモーターの機能についての簡単な説明です。
DCMotorInit(MotorName,Frequency)
説明: DCモーターを初期化し、周波数を設定します。
MotorName: 1〜4はMotor1〜Motor4を表します。
Frequency: DCモーターの周波数を設定します。
DCモーターの周波数を変更すると、他のDCモーターの周波数も変更されます。
DCMotorMove(MotorName,Direction,PWMDuty)
説明: DCモーターを駆動します。方向とPWMデューティを設定します。
MotorName: 1〜4はMotor1〜Motor4を表します。
Direction: 1は時計回りを表します。2は反時計回りを表します。3はモーターを停止します。
PWMDuty: 0〜100はPWMデューティの0%〜100%を表します。
motor.DCMotorStop(MotorName)
説明: DCモーターを停止します。
MotorName: 1〜4はMotor1〜Motor4を表します。
DCモーターの例
以下のコードをプロジェクトにコピーしてPythonファイルとして保存してください。
import MotorBridge
import time
MotorName = 1
ClockWise = 1
CounterClockWise = 2
PwmDuty = 90
Frequency = 1000
if __name__=="__main__":
motor = MotorBridge.MotorBridgeCape()
motor.DCMotorInit(MotorName,Frequency)
while True:
motor.DCMotorMove(MotorName,ClockWise,PwmDuty)
time.sleep(2)
motor.DCMotorMove(MotorName,CounterClockWise,PwmDuty)
time.sleep(2)
print "hello"
motor.DCMotorStop(MotorName)
time.sleep(2)
サーボ
Motor Bridge Cape のサーボインターフェースは以下の画像のように示されています。
サーボの機能
以下はサーボの機能についての簡単な説明です。
ServoInit(ServoName,Frequency)
説明: サーボを初期化し、周波数を設定します。
ServoName: 1 ~ 6 は Servo1 ~ Servo6 を表します。
Frequency: サーボの周波数を設定します。デフォルト値は 50 Hz です。
ServoMoveAngle(ServoName,Angle)
説明: サーボを駆動し、角度を設定します。
ServoName: 1 ~ 6 は Servo1 ~ Servo6 を表します。
Angle: 0 ~ 180 は 0 度から 180 度を表します。
サーボの例
以下のコードをプロジェクトにコピーし、Python ファイルとして保存してください。
import MotorBridge
import time
ServoName = 2
Frequency = 50
Angle1 = 20
Angle2 = 160
if __name__=="__main__":
motor = MotorBridge.MotorBridgeCape()
motor.ServoInit(ServoName,Frequency)
while True:
print 'Servo Test'
motor.ServoMoveAngle(ServoName,Angle1)
time.sleep(2)
motor.ServoMoveAngle(ServoName,Angle2)
time.sleep(2)
ファームウェアのアップグレード
もし Cape に問題がある場合は、アップグレードを試してください。このセクションでは、BeagleBone® Green を使用して Motor Bridge Cape のファームウェアをアップグレードする方法を説明します。この方法は BBGW や BBB にも適用可能です。
Motor Bridge Cape を BBG/BBGW/BBB に挿入し、USB ケーブルを使用して BBG をコンピュータに接続します。
BBG をインターネットに接続し、以下の画像のように SSH を介してアクセスします。
- 以下のコマンドを実行して Github からコードをダウンロードします。
git clone https://github.com/Seeed-Studio/MotorBridgeCapeFirmware
- "MotorBridgeCapeFirmware" ディレクトリに移動し、"make flash" コマンドを実行してファームウェアをフラッシュします。
cd MotorBridgeCapeFirmware/ && make flash
数秒後、ターミナルに "Verification OK" という情報が表示されます。
- 以下のコマンドを実行してファームウェアが正しくフラッシュされたか確認します。
i2cdetect -y -r 1
I2C アドレス 0x4b が表示された場合、ファームウェアが正常に更新されたことを意味します。
既知の問題
I2C アドレスが見つからない
Q: ファームウェアを更新しましたが、I2C アドレスが検出されません。
A:P9_23 ピンが High であることを確認してください。P9_23 ピンは STM32 のリセットピンに接続されています。MotorBridgeCape クラスの初期化関数で P9_23 ピンを High レベルに設定しています。
ファームウェアを更新できない
Q: ファームウェアを更新しようとすると、エラー情報に UART2 が見つからないと表示されます。
A: BB-UART2 を有効にする必要があります。BBG は UART2 を使用して Motor Bridge Cape にファームウェアをフラッシュします。
vi /boot/uEnv.txt
次に "cape_enable=capemgr.enable_partno=BB-UART2" をコメントアウト解除します。エディタを保存して終了し、最後にボードを再起動してください。
Cape が動作しない
Q: ファームウェアを正常に更新し、I2C アドレスを検出できましたが、Cape が動作しません。
A: ボード上に動作モードスイッチがあることに注意してください。スイッチが動作モードに設定されていることを確認してください。それでも問題が解決しない場合は、フォーラムにお問い合わせください。
make flash が失敗する
Q: "Can't init. Ensure BOOT0=1 BOOT1=0, and reset Device" というエラーコードで make flash を実行できません。
A: 以下の手順に従って問題を解決してください。
- ステップ 1:
sudo nano /boot/uEnv.txt
を実行し、uEnv.txt の末尾に以下の 2 行を追加します。
uboot_overlay_addr0=/lib/firmware/BB-UART2-00A0.dtbo
enable_uboot_cape_universal=1
- ステップ 2: BBGW を再起動します。
- ステップ 3: 再度
sudo make flash
を実行します。
回路図オンラインビューア
この部品は geppetto で利用可能です。Seeed と Geppetto を使った簡単なモジュラー電子設計をお試しください。今すぐ作成しましょう。geppetto.seeedstudio.com
リソース
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご提供しております。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。