米国から購入

はじめに

OSOYOO Model Y 4チャンネル Hブリッジ モータードライバーは、5V MCUと互換性があり、最大4つのDCモーターまたは2つのステッピングモーターを同時に制御できます。
モータードライバーボードには、2つのPT5126チップと、2組のHブリッジ制御インターフェース(4つのPWM入力ピンと8つの方向制御ピン)が搭載されています。
これにより、4つのモーターの速度と回転方向を簡単に制御することができます。
2つのモーターしか独立して動作させることができない従来のL298Nモジュールと比較して、OSOYOO Model Yモジュールは、オムニホイールやメカナムホイールの車、その他の車両にとって理想的なモータードライバーです。
さらに、OSOYOO Model Yは、従来のL298NやL293 Hブリッジモータードライバーよりもサイズが小さく、効率がはるかに優れています。
これにより、ロボットやドローンのモーターの稼働時間を長くすることができます。
定格範囲内であればチップは発熱せず、最大出力2.8Aの連続電流に対応しています。
このボードには、低電圧検出回路とサーマルシャットダウン(過熱保護)回路が内蔵されており、安全で信頼性が高いです。
OSOYOO Model Y 4チャンネル モータードライバーボードには、4つの3.5mm固定穴があり、他のデバイスへの取り付けが容易です。このモジュールは、あらゆる種類のDIY製作に適しています。

仕様

Model Y 寸法

ボードの概要


注意:

VOUTインターフェースはVINインターフェースに直結されており、電圧レギュレータチップを経由しないため、VOUT電圧はVIN電圧と等しくなります。
その目的は、追加のデバイスに電力を供給することです。チップや回路基板の損傷を防ぐため、VOUTピンをチップの電源ピンに直接接続しないでください。
オンボードのサーボインターフェースは、外部MCUによるサーボ制御を簡素化するために設計されています。
このドライバーボードにはMCUが含まれていないため、サーボを直接駆動することはできません お客様は、外部ドライバー回路のPWMピンをサーボインターフェースのSピンに接続する必要があります。
3線式サーボを対応するヘッダーピンに接続することで、配線を簡素化し、サーボを駆動することができます。

Model Y V1.0

①電源選択スイッチ。
②異なる電源に対応するために追加のネジ端子が用意されており、プロジェクトへの電源供給に様々な選択肢を提供します。
③赤いXH2.54逆接続防止端子は電源入力インターフェースです。
④電源出力インターフェース。
電圧調整なしでVINに直結されており、他のデバイスに電力を供給できます。
⑤コントローラー信号インターフェース。5Vコントローラーと互換性があり、これを使用してモーターの回転方向、回転速度、起動、停止を制御します。
⑥PT5126-HSモータードライバー。これらは4つのDCモーターを駆動でき、各モジュールで個別に2つのDCモーターを制御できます。
必要に応じて、これらを最も一般的な赤色のTB6612モジュールに交換することも可能です。
⑦電源インジケーター。
⑧サーボインターフェース。
ロボットプロジェクトをより良く構築するために、2つのサーボポートを提供しています。それぞれ、コントローラーからの駆動ピンと3ピンの一般サーボピンに接続できます。(このインターフェースは、配線を簡素化し、サーボに5V電源を供給するために設計されています。
このドライバーボードにはMCUが含まれておらず、サーボを直接駆動することはできません。
PWMサーボ制御信号を供給するために外部MCUが必要です。

⑨XH2.54逆接続防止モーターインターフェース。
モーターを接続する際は、直接差し込むだけです。AK1/AK2は同じ駆動信号で制御され、AK3/AK4も同じ信号で制御されます。
反対側の4つのポートについても同様です。
⑩ネジ端子モーターインターフェース。
このプロジェクトに異なるモーターを組み込む機会を提供します。
⑪電源入力/出力ピンヘッダー。
同時に、外部の3線式電圧計を接続して、電源電圧を簡単に確認することができます。
⑫モーター制御インジケーター。

当社の技術チームは、Model Y v1.0において2つの個別のPT5126ボードを1つの統合ボードにまとめ、配線プロセスを合理化し、お客様の組み立てやすさを向上させました。

Model Y V2.0

説明:
上の写真には、最大8つのモーターを接続できる8つのソケットがあります。
ソケットAK1とAK2は同期しており、これをA1ペアと呼びます。
ソケットAK3とAK4は同期しており、これをA2ペアと呼びます。
ソケットBK1とBK2は同期しており、これをB1ペアと呼びます。
ソケットBK3とBK4は同期しており、これをB2ペアと呼びます。
A1ペアのモーター動作方向はチャンネルA制御ピンIN1/IN2によって制御され、速度はチャンネルA ENAによって制御されます。
A2ペアのモーター動作方向はチャンネルA制御ピンIN3/IN4によって制御され、速度はチャンネルA ENBによって制御されます。
B1ペアのモーター動作方向はチャンネルB制御ピンIN1/IN2によって制御され、速度はチャンネルB ENAによって制御されます。
B2ペアのモーター動作方向はチャンネルB制御ピンIN3/IN4によって制御され、速度はチャンネルB ENBによって制御されます。
制御信号の表は以下の通りです。

ソケット 動作方向 PWM速度制御ピン 方向ピンの値
AK1/AK2 前進 Aチャンネル ENA Aチャンネル IN1=1 IN2=0
AK1/AK2 後退 Aチャンネル ENA Aチャンネル IN1=0 IN2=1
AK3/AK4 前進 Aチャンネル
ENB
Aチャンネル IN3=1 IN4=0
AK3/AK4 後退 Aチャンネル ENB Aチャンネル IN3=0 IN4=1
BK1/BK2 前進 Bチャンネル ENA Bチャンネル IN1=1 IN2=0
BK1/BK2 後退 Bチャンネル ENA Bチャンネル IN1=0 IN2=1
BK3/BK4 前進 Bチャンネル ENB Bチャンネル IN3=1 IN4=0
BK3/BK4 後退 Bチャンネル ENB Bチャンネル IN3=0 IN4=1

寸法プログラミングガイド:
1) モーター接続図の例:

説明:
上記の例では、OSOYOO FlexiRoverフレームワーク + 520 DCモーター + メカナムホイールを使用しています。

必ずしも上記のハードウェアを使用する必要はありません。任意のフレームワークやDCモーターを使用できますが、OSOYOOのDCモーターにはXH 2.54プラグが付いており、Model Yの8つの出力モーターソケットに接続するのが簡単です。
独自のモーターを使用したい場合は、ソケットにしっかりと挿入できるXH2.54プラグをモーターにハンダ付けすることをお勧めします。
Arduino 配線接続例:

説明:
Model Y Hブリッジは、4つの独立したモーターチャンネルを制御するために12ピン(2つのPWMを含む)を必要とします。
Model Yモジュールを制御するには、UNOボードではなくArduino MEGA2560の使用を強くお勧めします。
サンプルコードのダウンロード https://osoyoo.com/download/model_Y_sample.zip:

#define SPEED               100 //速度は0〜255のPWM値
#define TURN_SPEED          100 //速度は0〜255のPWM値
#define Speed_BK1_Socket    9   //BK1モーターソケットの速度はModel-Y チャンネルB ENA PWM値で制御
#define Chnl_B_IN1          22  //BK1モーター回転方向制御ピン1はチャンネルB IN1 
#define Chnl_B_IN2          
24  //BK1モーター回転方向制御ピン2はチャンネルB IN2                               
#define Chnl_B_IN3          26  //BK3モーター回転方向制御ピン1はチャンネルB IN3  
#define Chnl_B_IN4          28  //BK3モーター回転方向制御ピン2はチャンネルB IN4 
#define Speed_BK3_Socket    10  //BK3モーターソケットの速度は
Model-Y チャンネルB ENB PWM値で制御

#define Speed_AK1_Socket    11  //AK1モーターソケットの速度はModel-Y チャンネルA ENA PWM値で制御
#define Chnl_A_IN1          5   //AK1モーター回転方向制御ピン1はチャンネルA IN1
#define Chnl_A_IN2          6   //AK1モーター回転方向制御ピン2はチャンネルA IN2
#define Chnl_A_IN3          7   //AK3モーター回転方向制御ピン1はチャンネルA IN3
#define Chnl_A_IN4       
   8   //AK3モーター回転方向制御ピン2はチャンネルA IN4 (K3)
#define Speed_AK3_Socket    12  //AK3モーターソケットの速度はModel-Y チャンネルA ENB PWM値で制御

void BK1_fwd(int speed)  //右前ホイール 前進
{
  digitalWrite(Chnl_B_IN1,HIGH);
digitalWrite(Chnl_B_IN2,LOW); 
  analogWrite(Speed_BK1_Socket,speed);
}
void BK1_bck(int speed) // 右前ホイール 後退
{
  digitalWrite(Chnl_B_IN1,LOW);
  digitalWrite(Chnl_B_IN2,HIGH); 
  analogWrite(Speed_BK1_Socket,speed);
}
void BK3_fwd(int speed) // 左前ホイール 前進
{
  digitalWrite(Chnl_B_IN3,HIGH);
  digitalWrite(Chnl_B_IN4,LOW);
  analogWrite(Speed_BK3_Socket,speed);
}
void BK3_bck(int speed) // 左前ホイール 後退
{
  digitalWrite(Chnl_B_IN3,LOW);
  digitalWrite(Chnl_B_IN4,HIGH);
  analogWrite(Speed_BK3_Socket,speed);
}

void AK1_fwd(int speed)  //右後ホイール 前進
{
  digitalWrite(Chnl_A_IN1, HIGH);
  digitalWrite(Chnl_A_IN2,LOW); 
  analogWrite(Speed_AK1_Socket,speed);
}
void AK1_bck(int speed)  //右後ホイール 後退
{
  digitalWrite(Chnl_A_IN1, LOW);
  digitalWrite(Chnl_A_IN2,HIGH); 
  analogWrite(Speed_AK1_Socket,speed);
}
void AK3_fwd(int speed)  //左後ホイール 前進
{
  digitalWrite(Chnl_A_IN3,HIGH);
  digitalWrite(Chnl_A_IN4,LOW);
  analogWrite(Speed_AK3_Socket,speed);
}
void AK3_bck(int speed)    //左後ホイール 後退
{
  digitalWrite(Chnl_A_IN3,LOW);
  digitalWrite(Chnl_A_IN4,HIGH);
  analogWrite(Speed_AK3_Socket,speed);
}
 
void stop_motor()    //停止
{
  analogWrite(Speed_AK3_Socket,0);
  analogWrite(Speed_AK1_Socket,0);
  analogWrite(Speed_BK3_Socket,0);
  analogWrite(Speed_BK1_Socket,0);
}


//Pins initialize (ピン初期化)
void init_GPIO()
{
  pinMode(Chnl_A_IN1, OUTPUT); 
  pinMode(Chnl_A_IN2, OUTPUT);
pinMode(Chnl_A_IN3, OUTPUT);
  pinMode(Chnl_A_IN4, OUTPUT); 
  pinMode(Speed_AK1_Socket, OUTPUT);
  pinMode(Speed_AK3_Socket, OUTPUT);  
  pinMode(Chnl_B_IN1, OUTPUT); 
  pinMode(Chnl_B_IN2, OUTPUT); 
  pinMode(Chnl_B_IN3, OUTPUT);
  pinMode(Chnl_B_IN4, OUTPUT); 
  pinMode(Speed_BK1_Socket, OUTPUT);
  pinMode(Speed_BK3_Socket, OUTPUT);
stop_motor();
}

void setup()
{
  init_GPIO();
  AK1_fwd(SPEED);
  delay(800);
  stop_motor();
  delay(100);
  
  AK1_bck(SPEED);
  delay(800);
  stop_motor();
  delay(100);
 
  AK3_fwd(SPEED);
  delay(800);
  stop_motor();
  delay(100);
  
  AK3_bck(SPEED);
  delay(800);
  stop_motor();
delay(100);

  BK1_fwd(SPEED);
  delay(800);
  stop_motor();
  delay(100);
  
  BK1_bck(SPEED);
  delay(800);
  stop_motor();
  delay(100); 
  
  BK3_fwd(SPEED);
  delay(800);
  stop_motor();
  delay(100);
  
  BK3_bck(SPEED);
  delay(800);
  stop_motor();
}

void loop(){
}

上記のコードをArduino MEGA2560ボードにアップロードすると、AK1、AK3、BK1、BK3のモーターが順番に前進・後退回転します。