ページへ戻る

− Links

 印刷 

BTA022​/BTA023 ユニバーサルドライバ3 :: Besttechnology

knowledge:BTA022/BTA023 ユニバーサルドライバ3

ページ内コンテンツ
    • 概要
    • 仕様
      • 同梱内容
      • 基本仕様
      • 内部簡略ブロック
      • 外観
      • 外形・端子配置
        • CN1
        • CN2
        • CN3
        • M1
        • M2
        • PB1(プッシュボタン)
        • PB2(プッシュボタン)
        • PB3(プッシュボタン)
        • DIP1(ロータリーディップスイッチ)
        • LED1
        • LED2
        • LED3
        • LED4
        • J1~J8
        • J9~J11
        • J12
        • JP1
    • 各機能の詳細
      • 電源の印加順序
      • MPU電源
      • USB
      • ブートローダ
        • UD3ブートローダのアップデート
        • 使用方法
      • Bluetooth
    • 開発環境
      • GCC Developer Lite
        • ターゲットファイル
        • SIMPLE TERMとブートローダ
    • UD3向けターゲットファイル及びライブラリ
    • サンプルプログラム
      • 相撲ロボット向けサンプルについて
      • 基本操作フロー
    • 注意事項

ショップページ(BTA022)へ[1]
ショップページ(BTA023)へ[2]

概要 anchor.png[3]

本製品は2個のDCモータ用ブリッジ回路を搭載したインテリジェンスモータコントローラです。
モータドライバの他に11本のデジタル入出端子を備え、そのうち8本はアナログ入力を兼用します。また、リアルタイムカーネルとしてToppersを採用し、マルチタスクによる複数の処理を同時にこなすことが出来ます。

  :idea:本製品は使用方法によっては人や財産を失う恐れがある可能性があります。本ドキュメントを熟読し、危険性の理解と運用方法を順守してください。

Page Top

仕様 anchor.png[4]

Page Top

同梱内容 anchor.png[5]

型式数量備考
ユニバーサルドライバ3本体1E093C
USBケーブル1150cm
コネクタキット1Dynamixel I/F(MPU・センサ電源)用 (50-37-5043[6]x1, 08-70-1040[7]x5)
モータ電源用 (No.05023[8]x1)
モータ用 (No.05001[9]x2)
Page Top

基本仕様 anchor.png[10]

品番BTA022/BTA023
リビジョンE093B or E093C
動作温度範囲0~+50℃ 結露無きこと
寸法外形:53x73mm (±1mm)
取り付け穴:45.7x66.7mm 4-φ2.2
厚み突起物を含み約25mm
重量70g以下
MPUE093B:AT91SAM7S256もしくはAT91SAM7S512
E093C:AT91SAM7S256
MPU内蔵メモリフラッシュROM:256kもしくは512kbyte(ブートローダ領域を含む)
RAM:64kbyte
モータ電源入力: DC5~DC24V (絶対最大定格電圧:75V)
出力: UD3定格20A (FET 定格電流:240A パルス電流:960A)
許容損失電力(25℃): 300W
MPU及びセンサ電源入力: DC8~24V (絶対最大定格電圧:DC35V)
出力: DC5V 7A(最大)
I/F入力用プッシュスイッチx2
入力用4bitロータリーDIPスイッチx1
リセット用プッシュスイッチx1
モータドライバ2ch Hブリッジ
4象限の制御領域
1~200kHz(1kHz単位で任意)のPWMキャリア周波数
ワイヤレスBTA023のみBluetoothモジュール(ZEAL-C01)装備
コネクタホストPC間: USB (miniB)x1
GPIO: 2.5mmピッチ3ピンオスヘッダ(信号・5V・GND)x11
モータ用電源:近藤科学 ストロングゴールドコネクターx1
モータ用: 近藤科学 レーシングコネクターx2
Dynamixel I/F (MPU&センサ電源用):molex 22-03-5045x1
GPIO機能GPIOは全部で11ch装備し以下の機能を割当可能(排他含)
汎用入力:11ch(プルアップON/OFF機能あり)
汎用出力:11ch(オープンドレイン出力機能あり)
アナログ入力:8ch(分解能10bit)
パルス幅計測:3ch(分解能16bit 基準クロックは47k~24MHzの中で5段階)
PWM出力:3ch(分解能16bit 基準クロックは47k~24MHzの中で5段階)
環境配慮Rohs未対応
Page Top

内部簡略ブロック anchor.png[11]

ud3_block.png
Page Top

外観 anchor.png[12]

写真はBTA023です。BTA022にはBluetoothモジュールが装備されません。

TOPBOTTOM
SIDE
Page Top

外形・端子配置 anchor.png[16]

ud3_layout.png
(単位:mm)

以下特に断りのない限り本図のレイアウトを正として端子番号やそれらの方向、位置等を示す。

Page Top
CN1 anchor.png[17]
  :idea:電源の逆接続は電源回路の即時破壊・全損扱いとなる。
リビジョンE093Bに限り本端子に電源が印加され、CN3(モータ用電源)の電源供給が断たれている状態では、モータのイネーブル信号を発行してはならない。イネーブルするとゲートドライバに過大な負荷がかかり破損する。

基板側ヘッダー22-03-5045[18]
ハウジング50-37-5043[6]
ターミナル08-70-1040[7]
  • Dynamixel I/Fに準拠したコネクタで、RS485によるシリアル通信及び5Vロジック・3.3Vロジック・12Vゲートドライバの一次電源を兼ねる
  • 図右より順に ①:DM(RS485), ②:DP(RS485), ③:+(センサ&MPU電源), ④:-(GND) の端子割り当て
  • RS485による通信を行わない場合は①②ピンは未接続にしておく
  • 入力絶対最大定格:DC35V
  • 入力定格電圧:DC8~24V(リプルなき事)
  • ④ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
  • 本端子から供給される電源によりボード内で使用されるDC5V電源とDC3.3Vが作られ、更にJ1~J12端子からの5V出力がなされる
  • CN3とは別の電源から供給する事
  • J1~J12及びボード内で使用されるDC5V電源の総電流が7Aを超えてはならない。
Page Top
CN2 anchor.png[19]
  • USB Mini-B
  • PC(ホスト)と本ボード上のMPU(デバイス)間のUSBによる通信用
  • USBバスパワーによるロジック電源供給用(CN1からの電源が優先)
  • USBバスパワーからはJ1~J12及びゲートドライバへの電源供給は行われない
Page Top
CN3 anchor.png[20]
  :idea:電源の逆接続はブリッジ回路の即時破壊・全損扱いとなる。
リビジョンE093Bに限りCN1に電源が印加され、本端子の電源供給が断たれている状態では、モータのイネーブルを発行してはならない。イネーブルするとゲートドライバに過大な負荷がかかり破損する。

ストロングゴールドコネクター オスNo.05022[8]
ストロングゴールドコネクター メスNo.05023[8]
  • Hブリッジ(モータ)電源供給用
  • 図上より順に ①:+(モータ電源), ②:-(GND) の端子割り当て
  • 入力定格電圧:DC5~24V (DC16V以下を推奨)
  • 入力絶対最大定格:DCV75V
  • ②ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
  • 本端子から供給される電源がHブリッジ回路に供給されM1ないしM2端子を介して負荷へと供給される
  • CN1とは別の電源から供給する事
Page Top
M1 anchor.png[21]
レーシングコネクター メスNo.05002[9]
レーシングコネクター オスNo.05001[9]
  • 負荷接続用端子
  • 図左より順に ①:M1+, ②:M1+, ③:M1-, ④:M1-
  • ①と②端子(M1+)および③と④端子(M1-)は各々ボード内で接続されている
  • DCモータ等を接続した場合の回転方向はモータに依存するが、ソフト的にプラスのデューティを指定するとM1+側からプラスの出力が得られる
Page Top
M2 anchor.png[22]
レーシングコネクター メスNo.05002[9]
レーシングコネクター オスNo.05001[9]
  • 負荷接続用端子
  • 図左より順に ①:M2+, ②:M2+, ③:M2-, ④:M2-
  • ①と②端子(M2+)および③と④端子(M2-)は各々ボード内で接続されている
  • DCモータ等を接続した場合の回転方向はモータに依存するが、ソフト的にプラスのデューティを指定するとM2+側からプラスの出力が得られる
Page Top
PB1(プッシュボタン) anchor.png[23]
  • ブートローダおよびアプリケーションにて使用
Page Top
PB2(プッシュボタン) anchor.png[24]
  • ブートローダおよびアプリケーションにて使用
Page Top
PB3(プッシュボタン) anchor.png[25]
  • 押下でMPUの強制リセット
Page Top
DIP1(ロータリーディップスイッチ) anchor.png[26]
  • アプリケーションにて使用
  • 4bit(16段階)
Page Top
LED1 anchor.png[27]
  • 橙色
  • ブートローダ内でコンソール入力があるとフラッシュ
  • アプリケーションにてプログラマブルに点灯・消灯
Page Top
LED2 anchor.png[28]
  • 赤色
  • CN1から電源を供給した後、ボード内で5V電源が供給開始されると点灯
  • CN2(USBバスパワー)の接続でもリーク電流で点灯する場合がある
Page Top
LED3 anchor.png[29]
  • 緑色
  • Bluetoothによるワイヤレス接続が確立すると点灯
  • BTA022の場合は常時消灯
Page Top
LED4 anchor.png[30]
  • 赤色
  • CN3から電源を供給すると点灯
    リビジョンE093CからはCN1の電源供給が無いと点灯しない
  • CN1(MPU&センサ電源)の接続でもリーク電流で点灯する場合がある
  • 電源供給を断っているにもかかわらずLEDが点灯している場合は、コンデンサに蓄積した電荷が残っている状態である。完全に消灯していない状態でCN3のリードを導電性の物で短絡するとアークが飛び危険である。
Page Top
J1~J8 anchor.png[31]

2.5mmピッチ3ピンヘッダ

  • 図左より順に ①:SIG, ②:5V出力, ③:GND の端子割り当て
  • J1~J8の各①ピン(SIG端子)がGPIO0~GPIO7に相当する
  • ①ピン(SIG端子)は5V入力トレラント対応
    IEC61000-4-2 level4のESD保護
    電流制限用に47Ωの直列抵抗搭載
    出力時の最大電圧は3.3V
  • ②ピン(5V出力)はJ0~J4とJ5~J8の2グループで共通で、各々4Aトリップのリセッタブルヒューズを装備
  • ③ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
  • プログラマブルな内蔵プルアップ抵抗(約100kΩ)を搭載。
Page Top
J9~J11 anchor.png[32]

2.5mmピッチ3ピンヘッダ

  • 図左より順に ①:SIG, ②:5V出力, ③:GND の端子割り当て
  • J9~J11の各①ピン(SIG端子)がGPIO8~GPIO10に相当する
  • ①ピン(SIG端子)は5V入力トレラント対応
    IEC61000-4-2 level4のESD保護
    電流制限用に47Ωの直列抵抗搭載
    出力時の最大電圧は3.3V
  • ②ピン(5V出力)はJ9~J12共通で4Aトリップのリセッタブルヒューズを装備
  • ③ピン(GND)はボード内全て(ロジックおよびモータ電源)において共通
  • プログラマブルな内蔵プルアップ抵抗(約100kΩ)を搭載。
Page Top
J12 anchor.png[33]
  • 出荷時にピンヘッダ等は未実装
  • 図左より順に ①:SIG, ②:5V出力, ③:GND の端子割り当て
  • ①ピン(SIG端子)と③ピン(GND)を短絡すると5V用DCDCコンバータがシャットダウン(ボード内の5V・3.3V・12Vの電源がOFFになる)し消費電流が0.3mA以下に減少する
    なおUSB(CN2)からのバスパワーは本端子の影響を受けないため、シャットダウン中でもMPUのみ活性化する
  • シャットダウンさせない場合は①ピン(SIG端子)をオープンにしておく事
Page Top
JP1 anchor.png[34]
  • 基板BOTTOM側 CN1近傍に配置された半田ジャンパで、ショートする事でRS485 I/Fのターミネータが活性化する
  • 出荷時にショート(ターミネータON)
Page Top

各機能の詳細 anchor.png[35]

Page Top

電源の印加順序 anchor.png[36]

リビジョンE093Bにおいて、CN1とCN2の電源の接続時には誤動作や破損を防ぐため、出来る限り以下の順序に従ってください。本制限はリビジョンE093Cには適用されません。なお、CN2から供給されるPCからのUSBバスパワーは本手順に影響しません。

電源ON

  1. CN1にMPU及びセンサ用電源を接続しLED2の点灯を確認(この時点でモータのイネーブルが発行されてはいけない)
  2. CN3にモータ用電源を接続(これ以後にモータのイネーブルを発行する事)

電源OFF

  1. 負荷を駆動していない状態でCN3からモータ用電源を切断(この時点でモータのイネーブル信号はディスエーブルにしておく)
  2. CN1からMPU用電源を切断
Page Top

MPU電源 anchor.png[37]

MPU電源の入力方法は3つあり、各々目的が異なります。

  • CN1
    外部の電源装置からCN1に電源を接続すると、モータを除く本ボード上の全ての電源(3.3V・5V・12V)回路が活性化し、LED2が点灯します。この状態であればJ1~J12の②ピンから5Vが出力されます。
    ユーザプログラムが書き込まれていれば自動的に実行が開始されます。
    J12に入力される信号により3.3V・5V・12V回路全ての電源供給のON/OFF(省電力モード)が可能です。
  • CN2(PCからのUSBバスパワー)
    電源が入ったPCとUSBケーブルで接続すると同時に本ボード上の3.3V回路(MPU・Bluetooth)と一部の5V回路(RS485 I/F)に電源が供給され、J1~J12への5Vの電源は行われず、ゲートドライバは停止し、LED2は点灯しません。
    ユーザプログラムが書き込まれていれば自動的に実行が開始されます。
    この状態ではJ1~J12の②ピンから5V電源が供給されない都合、GPIOの信号の入出力が正常に行えません。 J12に入力される信号とは連動しません。
  • CN1とCN2両方
    いずれかから入力される電圧の高い方を優先する回路となっているため、両社を接続したとしても大抵の場合はCN1からの電源が優先されることになります。
    ユーザプログラムが書き込まれていれば自動的に実行が開始されます。
    J12に入力される信号がOFF(省電力モード)の場合は3.3V回路(MPU・Bluetooth)と一部の5V回路(RS485 I/F)のみが機能し、ONの場合はモータを除く本ボード上の全ての電源(3.3V・5V・12V)回路が活性化します。
Page Top

USB anchor.png[38]

PCのUSBバスパワーでボード内の電源供給を行う他に、PCとMPUとの有線による通信手段を提供します。
PCとUSBケーブルで接続し、予め書き込まれたブートローダのコマンドモードが起動すると、PCからは増設シリアルポートとして見えます。

Page Top

ブートローダ anchor.png[39]

Page Top
UD3ブートローダのアップデート anchor.png[40]

本ドキュメントではブートローダのバージョンが2.4以前であることを前提に記述しています。次の手順に従ってブートローダを最新のバージョンに更新してください。

  1. アップデートファイルの入手
    以下のURLよりZIP形式で圧縮されたアップデートファイルをダウンロードします。なお、このファイルはV2.0よりも前のバージョンからV2.5にアップデートする場合は利用できません。
    UDIII_Bootloader_update_v2.5.zip[41]
    ダウンロードしたZIPファイルを解凍し、同梱される UDIII_UpdateToV2.5.bin を任意のフォルダにコピーします。
  2. アップデートファイルの転送
    UD3をPCに装着しブートローダを起動します。SIMPLE TERMでUD3の仮想COMポートを開き、ブートローダのコマンドモードになっていることを確認します。
    'w'コマンドを入力した後'y'を入力し、ブートローダをアプリケーションプログラムの受信待機状態にします。
    --< UDIII Ver.2.4 by BestTechnology >--
    >w
     START UPLOAD...
     ARE YOU SURE? (Y/N) y
    次にSIMPLE TERMの転送メニュー→ファイル送信をクリックし、先に解凍した UDIII_UpdateToV2.5.bin を指定して転送を開始します。
     <SUCCESS>
    >
    SUCCESSの文字が表示されたらアップデートプログラムのダウンロードは完了です。
  3. アップデートプログラムの実行
    アップデートプログラムはユーザプログラムとして提供され、ブートローダから実行されない限り更新は行われません。アップデートプログラムの転送が完了したら'g'コマンドを入力し、アップデートプログラムを実行させます。
    しばらくしてUD3からアラーム音が発せられLEDが点滅すれば、アップデートプログラムが実行されている状態となります。SIMPLE TERMのターミナルウィンドウには以下の表示がなされます。
     Push space key to update UDIII bootloader v2.5
    ここでスペースキーを押すとアップデート処理が開始され、それ以外のキーを押すとアップデートがキャンセルされます。
    スペースキーを押すと以下の様なメッセージが順に表示され、成功すれば新しくなったブートローダの起動メッセージが表示されます。
     Push space key to update UDIII bootloader v2.5
     Start to burn ....success
     Verifying ...........................................succcess
     Please unplug USB cable ...
    再度UD3をPCに装着しブートローダを起動し、SIMPLE TERMのターミナルウィンドウに以下のメッセージが表示されたらアップデートは成功しています。
    --< UDIII Ver.2.5 by BestTechnology >--
    >
  4. Bluetoothの設定
    ブートローダを更新するとBluetoothの諸設定が初期化されます。Bluetoothを使用する場合は再度必要な設定を行ってください。

更新内容:
V2.5 (2011/07/22)

  • Bluetoothモジュール検出の条件が厳し過ぎて未検出するのを回避
  • Bluetoothの設定時に表示上の文字が崩れるのを修正

V2.4 (2011/07/1)

  • Bluetoothの設定をユーザアプリに引き継ぐ様に修正
  • E093Cで追加されたモータ用電源供給検出に対応

V2.3 (2011/3/5)

  • DIPスイッチの取り込みフローを修正

V2.0 (2010/9/20)

  • 初期リリース
Page Top
使用方法 anchor.png[42]

本装置を操作するための専用プログラムが予め搭載されており、USB(ボーレート:任意)・Bluetooth(ボーレート:任意)・Dynamixel I/F(ボーレート:1Mbps)のいずれかを経由してユーザプログラムの転送や諸設定を行う事が出来ます。
SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。

--< UDIII Ver.2.5 by BestTechnology >--
>

この状態で使用出来るコマンドは'?'を入力すると表示されます。

>?
--< UDIII Ver.2.5 by BestTechnology >--
 [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH
>
  • w (UPLOAD)
    UD3用にコンパイルされたユーザプログラムをフラッシュROMに転送するモードです。ダウンロードして実行出来るファイルは、GCC Developer LiteにてUD3向けにコンパイルされたバイナリファイルのみです。
  • g (BOOT)
    フラッシュROMに転送されたユーザプログラムへ実行を遷移します。ユーザプログラムエリアが消去されていれば実行されません。
  • i (FLASH INFO)
    ユーザプログラム用フラッシュROMの状態を表示します。
  • e (ERASE)
    ブートローダ本体を除くユーザプログラムエリアに書き込まれたデータを完全消去します。消去したデータは復活させる事が出来ません。
  • b (BLUETOOTH)
    Bluetoothの設定モードに遷移します。Bluetooth経由でブートローダのコンソールにアクセスしている場合は設定出来ません。USBケーブルでPCと接続された状態でのみBluetoothの設定変更が出来ます。

なお、ユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。ユーザプログラムの転送や消去といった操作を行う場合は、以下の手順に従ってください。

  1. UD3にUSBないし外部電源を接続し電源を印加する
  2. PB1とPB2を押しっぱなしにする
  3. その状態のままPB3を1秒程度押してから放す
  4. ブートローダのコマンドモードに入ると「ピロッ」という起動音とLED1が一度フラッシュするので、押していたPB1とPB2を放す。
  5. SIMPLE TERMで該当のCOMポートを開けば、コマンドモードの操作が可能になる。
Page Top

Bluetooth anchor.png[43]

BTA023のみBluetoothによるシリアルコンソールやリモートコントローラの無線化に対応します。搭載されるBluetoothモジュールであるZEAL-C01の出荷時の設定は以下の通りです。

  • サポートプロファイル:SPPのみ
  • DTE速度:460.8kbps (UD3搭載のMPUとZEAL間のUSARTの速度)
  • PINコード:0000 (文字列の'0000')
  • 認証:あり (SIXAXISモード以外時に適用)
  • 暗号化:なし
  • デバイス検出への応答:あり
  • フロー制御:ハード的に無効
  • 機器名称:UDIII-xxxxxxx (xxxはシリアル番号)
  • パフォーマンスレベル:9 (可能な限り高速動作,省電力に貢献しない)
  • 接続モード:自動待ち受け

このうち、ユーザ自ら変更出来るのは接続モードとPINコードで、ブートローダから選択及び変更が出来ます。ブートローダからBluetoothの設定を行う場合は、コマンドモードのプロンプトが'>'の状態で'b'を入力します。Bluetoothの設定モードに入ると、プロンプトは'BT'に変わります。この状態で使用出来るコマンドは'?'を入力すると表示されます。なお、Bluetooth経由でブートローダのコンソールを操作している場合はBluetoothの設定が行えませんので、その場合は他のI/Fを使用してください。

--< UDIII Ver.2.5 by BestTechnology >--
 [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH
>b
 CONNECTING TO BLUETOOTH MODULE ......
BT>?
-- BLUETOOTH CONFIGURATION --
 [o]:SLEEP [w]:MASTER [c]:SLAVE [s]:SIXAXIS [a]:AUTHENTICATION [p]:PIN CODE
 [h]:INQUIRY [i]:info [ESC]:exit
BT>
  • i (INFO)
    ZEAL-C01のMACアドレスと、現在のBluetoothの接続モードを表示します。自動待ち受けの場合は'WAITING MODE'、自動接続の場合は接続先のMACアドレスが表示されます。
  • ESC (EXIT)
    Bluetoothの設定モードを抜けます。
  • o (SLEEP MODE)
    Bluetoothモジュールを待機状態に設定します。他のBluetooth機器からの検索や接続が出来なくなります。
  • w (MASTER MODE)
    自動待ち受けに設定します。他のBluetooth機器から本装置を検索させ、接続させる場合に選択します。
  • c (SLAVE MODE)
    自動接続に設定します。本装置から他のBluetooth機器を検索及び選択、もしくは直接MACアドレスを入力して自動的に接続させる場合に選択します。
    BT>c
     SEARCHING...
     0: INPUT MAC
     1: 001122334455 (RC100B)
     2: 5566778899AA (HOGEHOGE)
     3: BBCCDDEEFF00 ()
     OTHER: exit
     NO =
    接続先がSPPに対応している必要があります。なお、接続先がPINコードを要求する場合はPINコードを合わせておく必要があります。
  • s (SIXAXIS MODE)
    PlayStation®3用のワイヤレスコントローラであるSIXAXISないしDUALSHOCK®3からの接続を待ち受けます。
    使用するSIXAXIS側に予めUD3に搭載されたBluetoothモジュールのデバイスアドレスを設定しておく必要があります。SIXAXISの設定変更に関してはこちら[44]を参照ください。
  • p (PINコード設定)
    PINコードを設定します。現在設定されているPINコードが表示されるので、最大16文字までの0から9の任意の数字を入力します。未設定は許容しません。
Page Top

開発環境 anchor.png[45]

Page Top

GCC Developer Lite anchor.png[46]

GCC Developer Liteの詳細についてはこちら[47]
コンポーネントの選択中にフルインストールないし「ユニバーサルドライバⅢ(AT91SAM7S)でのみ使用)」を選択する事で必要なコンポーネントが自動的にインストールされます。

GDL_UD3_Select.png

UD3で使用される主要なコンポーネントを簡単に紹介します。

  • GCC Developer Lite[48]

    ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。

  • SIMPLE TERM[49]

    汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。
    USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。

  • ARMGCC

    ARMコア向けC/C++言語向けのコンパイラ。出来る限り最新のパッチを適用しているため、時に互換性を失う。

  • デバイスドライバ

    弊社提供のAT91SAM7シリーズ向けUSB CDCエミュレーションドライバ。

  • ターゲットファイル

    MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、USBをシリアルポートとして使用するためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。

Page Top
ターゲットファイル anchor.png[50]

GCC Developer Lite[47]ではUD3用の設定を1種類備えています。

GDL_CompileOption_TargetList.png

以下にUD3に対応した設定リストの一覧とその設定における機能を紹介します。

  • UD3

    USB・Bluetoooth・RS485 I/Fを介してDynamixelプロトコルをサポートするタスクとUD3搭載機能を簡便に使用するためのライブラリとして提供される。
    同時にOSとしてAT91SAM7Sシリーズ用Toppersカーネルもリンク対象となる。

    ビルドするとブートローダにてMPUのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。
    ビルドが成功すると、STERM.exe(SIMPLE TERM)が起動する。

Page Top
SIMPLE TERMとブートローダ anchor.png[51]

ブートローダはUD3のUSB・Bluetooth・RS485を使用して外部からユーザーログラムの書き換えや操作を行う事が出来ます。
ブートローダを使用して動作するプログラムが構成出来る設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常に動作しないまでか、ボードが破損する可能性があります。

  • UD3 (Bootloader)

PCとUD3をUSBケーブルで接続して使用するケースを紹介します。
USBを仮想シリアルポートとして認識させるためのPC用デバイスドライバは、GCC Developer Lite[47]をインストールした際にWindowsのシステムフォルダにコピーされます。USBケーブルでUD3とPCを接続するとデバイスドライバを要求されますが、自動検索させる事でインストールが行われます。
インストール後、新しいCOMポートがWindowsのデバイスとして追加され、SIMPLE TERMから該当するCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「AT91 USB to Serial Converter」が表示されたポートを選択)しオープンするとブートローダの各種コマンドが使用可能となります。その他の設定は以下の通りです。

Baudrate:USB経由では意味を持たないので何でも構わない
Databits:8
Stopbits:1
Parity:Non
Flow Control:Non
Protocol:Xmodem
AT91SAM7_BL_COM.png

なお、ユーザプログラムが既に書き込まれている場合は、電源投入およびリセット直後にユーザプログラムが実行される仕様です。こちらの手順にてブートローダのコマンドモードにしておく必要があります。

先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)が自動起動されます。COMポート以外に関しては、以下の条件で起動します。

  • 既にSIMPLE TERMが実行中であれば2重に起動しない。
  • ボーレートや転送プロトコルは要求される設定が自動的になされる。
  • コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。
  • ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用出来る様になる。
UD3_STERM_SCRIPT1.png

UD3がブートローダのコマンドモードであれば、「スクリプト実行[STERM UD3]」をクリックするだけで転送するファイルを手動で選択する事無く転送にかかる処理と実行までが全て自動的に行われます。

UD3_STERM_SCRIPT2.png

本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事が出来ます。

Page Top

UD3向けターゲットファイル及びライブラリ anchor.png[52]

GCC Developer Lite[47]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全に出来ないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照出来ますし、ユーザがソースを修正しライブラリを再構築する事も可能です。

UD3は複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。

  • SAM7S用ライブラリ
    AT91SAM7Sシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。
  • AT91SAM7Sシリーズ用 TOPPERS/ASP
    μITRON4.0仕様準拠であるリアルタイムカーネルToppers[53] ASPのAT91SAM7Sシリーズ向けベステクカスタム版。OSを搭載してもある程度のリアルタイム性を確保出来る事から採用。
  • UD3ライブラリ
    UD3ライブラリはToppersを採用することで、2チャンネルあるモータドライバを全く違う目的で各々個別のタスクで動かしたり、ホストPCとDynamixelプロトコルで通信を行うタスクを走らせながらシステムを運用といった機能を提供。
    実際にはToppersのそれを意識する必要はほとんどない。
    使用できるAPIは膨大なため、別途こちら[54]のページにて詳細を公開。
Page Top

サンプルプログラム anchor.png[55]

APIを使用したいくつかのサンプルプログラムを用意しました。以下よりダウンロードして解凍した上でご利用ください。詳細はコメントおよびUD3 Library[54]のドキュメントを参考に読み解いてください。

Page Top

相撲ロボット向けサンプルについて anchor.png[61]

いきなりフルパワーで暴走すると危険ですので、いくつかのサンプルでは以下のマクロで最終段の出力を抑えています。

#define POWERGAIN 30   // ★出力を調整するためのゲイン 0~100%で指定

パワーが上がらなのはバッテリやモータの問題ではありませんので、必要に応じてこの値を0~100の範囲で変更し、再度コンパイルし直してください。

相撲ロボット向けサンプルプログラムが想定している周辺機器の接続イメージは以下の通りです。

各コネクタの詳細を以下に示します。

CN1
MPU及びセンサ用の一次電源。供給電圧は8V以上を必要とする。
CN2
PCとUD3をUSBケーブルで接続して通信を行う。プログラムのダウンロードを行ったら外しておく。
CN3
モータ用の一次電源。電源ラインにヒューズを挿入する事を推奨。
J1 (GPIO0)
左前土俵検出を目的としたセンサを接続。ここではBTE003B 反射型フォトインタラプタ[63]を想定し、5Vの電源供給も含め3線を接続する。
J2 (GPIO1)
右前土俵検出を目的としたセンサを接続。ここではBTE003B 反射型フォトインタラプタ[63]を想定し、5Vの電源供給も含め3線を接続する。
J3 (GPIO2)
左前ないし左にいる相手検出を目的としたセンサを接続。ここではBTE023 800mm光センサ[64]を想定し、5Vの電源供給も含め3線を接続する。
J4 (GPIO3)
前方にいる相手検出を目的としたセンサを接続。ここではBTE023 800mm光センサ[64]を想定し、5Vの電源供給も含め3線を接続する。
J5 (GPIO4)
右前ないし右にいる相手検出を目的としたセンサを接続。ここではBTE023 800mm光センサ[64]を想定し、5Vの電源供給も含め3線を接続する。
J8 (GPIO7)
ラジコン用受信器の電源供給用。未使用のJ6ないしJ7でも構わない。5Vで利用出来る受信器を想定。
J9 (GPIO8)
ラジコン用受信器のCH1。右側のモータ(M1)のパワー及び回転方向を指令する信号が供給される前提。
J10 (GPIO9)
ラジコン用受信器のCH2。左側のモータ(M2)のパワー及び回転方向を指令する信号が供給される前提。
J11 (GPIO10)
非常停止時に0.2秒以上LOWの信号を出力する何らかの非常停止装置を想定。
M1
右側に配した車輪を駆動するモータを接続。プラスのデューティーを指令すると後退する方向に回転する前提。
M2
左側に配した車輪を駆動するモータを接続。プラスのデューティーを指令すると前進する方向に回転する前提。
Page Top

基本操作フロー anchor.png[65]

個々の詳細に関してはサンプルプログラム内のコメントを参照していただくとして、コンパイルしてUD3に転送して実行させるまでの流れを書いておきます。

  1. GCC Developer Liteで任意のソースをコンパイラオプションで「UD3」を選択してコンパイル。
  2. コンパイル成功と同時にSIMPLE TERMが勝手に起動する。二重に起動する事はない。
  3. PCとUD3をUSBケーブルで接続し、PB1とPB2を押しながらPB3のリセットを押す。PB3だけを放しUD3から「ピロッ」という起動音が聞こえたら全てのボタンを放して構わない。
  4. SIMPLE TERMのポートを適宜設定しポートを開くと、SIMPLE TERMのターミナルウィンドウに起動メッセージが表示されたら転送可能状態。
  5. SIMPLE TERMの転送メニューからスクリプト実行をクリックし、プログラムの転送を開始する。スクリプトはプログレスバーが100%になれば転送を完了し、転送したプログラムを実行する。
  6. 転送したプログラムに実行が遷移する際にSIMPLE TERMで開いているポートが切断されるが、プログラムが正常に実行されてしまえば再度活性化してポートが自動的に開く。
Page Top

注意事項 anchor.png[66]

  :idea:下記に記載された事項以外にも、経験を踏まえた危険回避方策を講じる事。
安全に配慮しない場合は人命や財産を失う恐れがある。
また従わない場合は保証対象外となる。

  • 搭載されるMPUはロットにより2種類混在するが選択は出来ない。
  • 知識と認識がある場合を除き、MPU及びセンサ用電源とモータ用電源は同じソースから供給しない事。
  • 一般的な直流電源装置をモータ用電源として使用しない事。モータの状態によっては容易に見かけ上の電源電圧が上昇し、破損の恐れがある。
  • モータ用の電源を印加せずMPU・センサ用の電源のみを印加している状態ではモータのイネーブルを行ってはならない。イネーブルするとゲートドライバの負荷が上がり、発熱ないし破損する。
  • 高いモータ用電源の使用はひかえる事。当然アクチュエータにもよるが、ノイズ等の影響を考慮し公称7.4Vバッテリパックを2本直列程度にとどめる事を強く推奨する。
  • ノイズが大きいモータを使用する場合はノイズ対策を十分に施す事。アークが飛ぶ程の高インダクタンスなモータの使用は推奨しない。また、そういったモータへ定格を超える電源を印加する事は絶対にしてはならない。駆動回路のアバランシェ破壊を誘発する可能性が高くなる。
  • 基本的にフルパワーからのモータの瞬時逆回転は許容しない事。急反転等を行うと仕様以下の電源電圧であっても逆起電力やノイズにより見かけ上の電源電圧が上昇し、もしその電圧がFETの絶対最大定格を超えた場合はFETが即時短絡破壊する。
  • 最悪ケースでFETがショート状態の故障モードに陥るため、その際にバッテリ等が超過放電にならないよう最終的に電流を遮断するためのヒューズ等を電源ラインに挿入しておく事。
  • モータ駆動用のHブリッジが破損するときわめて大きな短絡電流が流入する。その際モータ用電源として接続したバッテリが電流制限ないし保護機能を持っていない場合は、極めて重篤な事態を生じる可能性がある。
  • 運転中以外はバッテリは全て取り外す事。
  • 許容損失電力を考慮し、場合によっては強制空冷措置を講じる事。
  • コネクタのリードに直接半田したり不用意に導電性の物と接触させてはならない。
  • 移動台車等を構成した際にUSBケーブルを接続したまま使用しない事。
  • FET部分を覆うシールドプレートは取り外してはならない。
  • Bluetoothを使用する場合は電波が遮蔽されないよう留意する事。
  • ラジコン用のプロポをUD3に近づけると正常な動作を得られなくなる。最低でも数メートル以上離す事。
  • ゲートON中は指令値が0であっても電気的にバックドライバビリティが低下する。
  • タスクを複数起動すると1つのタスクの実行時間が延びる。動作時間を優先する場合はシングルタスクにとどめておくことを推奨する。
  • 本製品にかかるいかなる損害が生じても、本製品の単価を超える保障は行わない。

Last-modified: 2013-07-14 (日) 12:09:52 (JST) (3939d) by takaboo