ドライバボード4 / Driver Board 4
概要 Abstract
モータ4個を制御するモータドライバボード。メインボードまたはPCと2MbpsのUART(8bit no parity 1 stopbit)で接続する。
一つのUARTに、IDが異なる7個までのボードを並列に接続可能。
Motor driver board to control 4 motors。Connect to PC or Main board via UART of 2MBPS (8bit no parity 1 stopbit).
Up to seven boards with different IDs can be connected to one UART pararelly.
接続 Connection
https://gyazo.com/2bffa31a4e652ab7e09d6ecc5d1c1b0c
モータの電源はPWR端子から供給してください。マイコン用のVDD(3.3V)とモータ駆動用のVM(2.7V~10.8V)の2つが必要です。GNDは共通です。モータのピーク電流は各1.0A、定常各0.6A、電源コネクタは定格4Aです。
VDD, VSSはUART端子により接続されます。一つのボードに電源を供給すると接続されている他のボードに供給されます。
VM+はPWR端子だけと長っています。UARTのVM端子とVM+を接続する場合は、ジャンパ(PWRコネクタとUART2のあたりにある2つの四角いランド)をハンダブリッジなどでショートさせてください。
UARTのVMは1Aまでです。1Aを超える場合は、各ボードのPWRのVM+とGNDを使ってください。
Motor power muset be provided through PWR connector. VDD(3.3v) for microcontroller and VM(2.7-10.8V) for motor drive are needed. GND is common. Motor's peak and average maximum current are 1.5A and 1A. PWR is upto 4 A.
UART connector conects VSS and VDD.
VM+ is only connected to PWR, VM of UART is not connected. To connect, short solder jumper between PWR and UART connectors.
UART's VM is limited to 1A. For more current, use PWR's VM+ and GND.
初期化の手順
UARTに接続しているボードを列挙する。MainForm.ListBoard()
ボードID1~7を指定して、CI_BOARD_INFOコマンドで接続されているボードの種類を確認。
各ボードのコマンド長を、CI_CMD_LENコマンドを使って伝える。
コマンドの送受信
コマンドによって、戻り値があるものと無いものがある。戻り値がある場合は、UART上で戻り値が重ならないように、ウェイト文字(0(null 文字)を送信)を入れる必要がある。 ウエイト文字の長さは$ \max(0, 戻り値長+20-コマンド長)以上が必要。
code: CommandID.cs
CI_NONE, //0 As reset makes 0 and 0xFF, must avoid use of them in header.
CI_BOARD_INFO, //1 Board information.
CI_SET_CMDLEN, //2 Set command length for each board id.
CI_ALL, //3 Send all data and return all status
CI_SENSOR, //4 Return sensor data
CI_DIRECT, //5 Directly set servo targets (positions and velicities).
CI_CURRENT, //6 Set currents as servo targets.
CI_INTERPOLATE, //7 Send new frame for interpolation.
CI_FORCE_CONTROL, //8 Position and force control with interpolation.
CI_SET_PARAM, //9 Set parameter.
CI_RESET_SENSOR, //10 Reset sensor.
CI_NCOMMAND,