注意事項ショップページへ有償betaテスター向け情報となります。本製品は独立した2つのブラシ付DCモータ用ブリッジ回路を搭載したモータアンプです。モータドライバの他に10本のGPIO端子とUSB・RS-485の2種類のI/Fを装備していますので、様々なホストとのコミュニケーションをサポートします。Liteで開発を行う事ができます。リアルタイムオペレーティングシステムとしてFreeROTSを採用していますので、複数の処理を同時にこなすシステムが構成できます。使用方法によっては人や財産を失う恐れがある可能性があります。内部簡略ブロック[Upload]全ての電源においてGNDは内部で接続されています。MODULEUD4のモータ用電源のデカップリングコンデンサとして一次側に挿入して使用します。pdfE152_LAYOUT.pdf[Upload]UD4モータドライバ本体です。EXPANDERI2C経由でUD4にHMIを追加すると同時に10chのGPIOを増設します。pdfE167beta_LAYOUT.pdf[Upload]各機能詳細E166_CN1microUSBケーブルは同梱されませんので、市販のUSB[micro-B]<->USB[A]ケーブルを別途購入の上利用下さい。E166_CN3電源の逆接続は電源回路の即時破壊・全損扱いとなる。本端子から供給される電源によりボード内で使用されるDC5V電源とDC3.3Vが作られ、更にCN5,CN6端子から5V出力がなされる電圧変動が大きいアプリケーションの場合は、CN4とは別の電源から供給する事CN5とCN6、及びボード内で使用されるDC5V電源の総電流が7Aを超えてはならない。E166_CN4電源の逆接続はブリッジ回路の即時破壊・全損扱いとなる。各機能の詳細MPU及びセンサ電源CN2もしくはCN3に電源を印可すると、UD4内の3.3V・5V・12Vの各電源が生成されます。ユーザプログラムが既に書き込まれていれば、自動的に実行が開始されます。モータ用電源モータの逆起電力などにより電圧の変動が起こりますが、その際に半導体の絶対最大定格を超えると容易に破壊します。付属のデカップリングコンデンサは必ず電源に対して並列に挿入してください。MPU及びセンサ電源を供給せずにモータ用電源のみを供給してもモータが勝手に動く事はありませんが、その状態が長時間維持される事は想定していません。両電源ともほぼ同時に印可するようにして下さい。MPU及びセンサ電源のみが供給されモータを駆動するプログラムが既に実行されている場合、その状態で後からモータ用電源を供給してもゲートドライバは活性化しません。両電源が供給された状態になってからゲートドライバへイネーブルを発行する必要があります。USBPCのUSBバスパワーはUD4の電源として供給されません。MPU電源を供給した状態でPCと接続する事で初めてUSBシリアル変換チップが活性化します。USB(CN1)はUSBシリアル変換ICにつながっており、PCと接続するとFTDI社のデバイスドライバが要求されます。デバイスドライバはこちらのページを参考にインストールしてください。PCには仮想シリアルポートとしてCOMポートが追加されます。Xシリーズと電気的に互換性を持っています。ユーザプログラムによってDynamixelプロトコルのホストにもクライアントにも使用でき、単純なコンソールとしても機能させることができます。I/Fによるブートローダのコマンドモードはサポートしません。ブートローダ使用方法UD4に予め書き込まれているブートローダによりUSBを経由してシリアル通信を行い、PCからユーザプログラムの転送や諸設定を行う事ができます。TERMでUSBシリアル変換が提供する仮想COMポートを開き、ブートローダのコマンドモードに入ると、次のメッセージが表示されます。BL1.3>この状態で'?'を入力すると、使用できるコマンドの一覧が表示されます。(UPLOAD)UD4用にコンパイルされたユーザプログラムをフラッシュROMに転送する。LiteにてUD4向けにコンパイルされたバイナリファイルのみ。(ERASE)ブートローダ本体を除くユーザプログラムエリアに書き込まれたデータを完全消去する。一度消去したデータは復活させる事はできない。(BOOT)フラッシュROMに転送されたユーザプログラムへ実行を遷移する。ユーザプログラム領域が消去されていると実行されない。(DUMP)MPUのメモリを16進数でダンプする。ユーザプログラムが書き込まれている場合は、電源投入直後にユーザプログラムが実行されるため、ブートローダのコマンドモードにはなりません。TERM上で「!」を押したままPB1を押してリセットして下さい。ブートローダはコマンドモードへ遷移します。Liteの詳細についてはこちらで紹介していますが、UD4では公式版ではないものを使用します。Liteがインストールされた状態をそのままzip形式で圧縮し自己解凍ファイルにしたものを提供します。Liteを使用している場合は、上書きコピー等はしないよう注意して下さい。(x86)」フォルダの配下に展開されます。(x86)」フォルダの配下に移動します。Lite\GCCDevL.exe」へのショートカットをデスクトップ等に作っておくと良いでしょう。最新のノートンインターネットセキュリティーにてスキャン済みですが、相当量のバイナリファイルが他社のアンチウィルスで排除される可能性があります。正常に動作しない場合はアンチウィルスにて必要なファイルが削除されていると思われます。インストーラーを用いていない弊害がいくつか生じるため、初回のみ以下の手順を踏んで下さい。GCCDevL.exeを実行し、Languageメニューを開き、japaneseを選択。GCCDevL.exeを一端終了。Version2.6.0.55以降となります。[Upload]UD4で使用される主要なコンポーネントを簡単に紹介します。Liteソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。TERM汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。ARMGCCARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用しているため、時に互換性を失う。ターゲットファイルMPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。LiteではUD4用の設定を1種類備えています。[Upload]以下にUD4に対応した設定リストの一覧とその設定における機能を紹介します。LPC824用のペリフェラルライブラリとFreeRTOSを提供。ビルドするとブートローダにてMPUのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。TERM)が起動する。TERMとブートローダブートローダはUD4のUSBを使用してユーザーログラムの書き換えや諸々の操作を行う事ができます。ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても正常に動作しないまでか、ボードが破損する可能性があります。TERMからUD4のブートローダの各種コマンドが使用できる様になります。その他の設定は以下の通りです。TERM上で'!'キーを押しっぱなしにしながらPB1を押して下さい。TERM)が自動起動されます。COMポート以外に関しては、以下の条件で起動します。TERMが実行中であれば2重に起動しない。ボーレートや転送プロトコルは要求される設定が自動的になされる。コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。TERMのメニューから「スクリプト実行[STERM_LPC82x]」をクリックするだけで、転送するファイルを手動で選択する事無く転送にかかる処理と実行までが全て自動的に行われます。[Upload]本機能により、手動で間違ったファイルを選択して転送してしまったり、転送不可能な状態で転送をしてしまうといったミスを軽減する事ができます。Liteでは1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方はできません(完全にできないという訳でもありません)。言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。UD4は複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。LPC82xライブラリLPC82xシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。LPCOpenとシリアル通信、ブートコードを含む。LPC82x追加ライブラリLPC82xシリーズ用のよく使われるペリフェラルのラッパーライブラリ。I2C,FLASH,DELAY,SPI,ADC,DXLIB,DX2LIBを含む。cortex-M0用FREERTOSCortex-M0+用に予めビルドされたリアルタイムオペレーティングシステムFreeRTOS。本UD4β向けの専用ライブラリはライブラリファイルとして提供するのでは無く、全て「ud4.h」というヘッダファイルとしてサンプルプログラムに同梱しました。よって、コンパイル時のオプションに影響されてその都度挙動が変わる可能性があります。未完成ですがこちらにAPIの詳細を記載しています。サンプルプログラム以下よりダウンロードし展開して利用してください。詳細はコメントを参考に読み解いてください。動作するか否かは別問題なお、ARMGCCそのものがSJISに対応していないため、コメント等に日本語を使用するとコンパイルエラーが発生する場合があります。サンプルプログラムは日本語のコメントを使用していますが、全てUTF8のエンコードにしているためそれに起因するエラーが発生しません。Liteのステータスバーに表示される「SJIS(CR+LR)」をマウスで右クリックし、ポップアップメニューのリストから「UFT8」を選んでからソースプログラムを保存して下さい。「UFT8」になってさえいれば全角日本語のコメントによるコンパイルエラーは発生しません。相撲ロボット向けサンプルについていきなりフルパワーで暴走すると危険ですので、いくつかのサンプルでは以下のマクロで最終段の出力を抑えています。1~1000‰で指定パワーが上がらなのはバッテリやモータの問題ではありませんので、必要に応じてPOWERGAINの値を1~100の範囲で変更し、再度コンパイルし直してください。モータの応答が遅いのは1msあたりの増分をMOTOR_INCの値で制限しているためですので、1~1000の範囲で調整してください。相撲ロボット向けサンプルプログラムが想定している周辺機器の接続イメージは以下の通りです。各コネクタの詳細を以下に示します。8V以上を必要とする。CN1PCとUD4をUSBケーブルで接続して通信を行う。プログラムのダウンロードを行ったら外しておく。CN4モータ用の一次電源。電源ラインにヒューズを挿入する事を推奨。(GPIO9)左前土俵検出を目的としたセンサを接続。IRPXセンサを想定し、5Vの電源供給も含め3線を接続する。(GPIO8)右前土俵検出を目的としたセンサを接続。IRPXセンサを想定し、5Vの電源供給も含め3線を接続する。(GPIO7)左前ないし左にいる相手検出を目的としたセンサを接続。想定し、5Vの電源供給も含め3線を接続する。(GPIO6)前方にいる相手検出を目的としたセンサを接続。想定し、5Vの電源供給も含め3線を接続する。(GPIO5)右前ないし右にいる相手検出を目的としたセンサを接続。想定し、5Vの電源供給も含め3線を接続する。(GPIO2)ラジコン用受信器のCH1。右側のモータ(M1)のパワー及び回転方向を指令する信号が供給される前提。(GPIO1)ラジコン用受信器のCH2。左側のモータ(M2)のパワー及び回転方向を指令する信号が供給される前提。(GPIO0)ラジコン用受信器のCH3。M1左側に配した車輪を駆動するモータを接続。プラスのデューティーを指令すると後退する方向に回転する前提。M2右側に配した車輪を駆動するモータを接続。プラスのデューティーを指令すると前進する方向に回転する前提。個々の詳細に関してはサンプルプログラム内のコメントを参照していただくとして、プログラムをコンパイルしてUD4に転送して実行させるまでの基本的なフローは以下となります。EXTRA)」を選択してコンパイル。TERMの起動を促すダイアログボックスが表示されるので「OK」をクリックする。TERMは二重に起動する事はない。電源を供給したUD4とPCをUSBケーブルで接続する。TERMのポートを適宜設定しポートを開き、スクリプト実行をクリックし転送待機状態になったらPB1を押して放す。転送中のプログレスバーが100%になれば転送は完了し、転送スクリプトの処理が終了する。TERM上で「g」を送信すると転送したプログラムに実行が遷移する。下記に記載された事項以外にも、経験を踏まえた危険回避方策を講じる事。安全に配慮しない場合は人命や財産を失う恐れがある。従わない場合は保証対象外となる。知識と認識がある場合を除き、MPU及びセンサ用電源とモータ用電源は同じソースから供給しない事。付属の電源コネクタは必要に応じて利用の事。パワーラインの線材は使用環境に応じた物を任意に選定の事。最低限付属のデカップリングコンデンサは装備する事。計算上の容量が不足する場合は別途任意の容量のコンデンサを装備する事。電流をシンクできない直流電源装置等をモータ用電源として使用しない事。状況によっては逆起電力によって見かけ上の電源電圧が上昇し、半導体の耐圧を超える場合がある。ノイズが大きいモータを使用する場合は、対策を十分に施す事。アークが飛ぶ程の高インダクタンスなモータの使用は推奨しない。いったモータへ定格を超える電源を印加する事は絶対にしてはならない。モータへの急激な指令値更新は行わない事。急反転等を行うとモータ電源として仕様以下の電圧を印可していても逆起電力やノイズが過大になり、それによって半導体の耐圧を超える場合がある。最悪なケースではFETがショート状態の故障モードに陥るため、その際にバッテリ等が超過放電にならないよう最終的に電流を遮断するためのヒューズ等を電源ラインに挿入しておく事。運転中以外はバッテリは全て取り外す事。FETの許容損失電力を考慮し、場合によっては冷措置を講じる事。コネクタに対して不用意に導電性の物と接触させてはならない。移動台車等を構成した際にUSBケーブルを接続したまま使用しない事。ラジコン用のプロポをUD4に近づけると正常な動作を得られなくなる。少なくとも数メートル以上離す事。基板BOTTOMの露出パッドはいかなる場合も短絡してはならない。タスクを複数起動すると1つのタスクの実行時間が延びる。動作時間を優先する場合は、実行タスク数を制限すること。本製品にかかるいかなる損害が生じても、本製品の単価を超える保障は行わない。