1: 2021-02-17 (水) 23:27:22 takaboo ソース 現: 2022-07-15 (金) 01:12:02 takaboo ソース
Line 25: Line 25:
| 型式 | 数量 | 備考 |h | 型式 | 数量 | 備考 |h
|本体 | 1|- | |本体 | 1|- |
-|ケーブル | 1|- |+|Robot Cable X3P | 1|- | 
 +|Robot Cable X4P | 1|- | 
***基本仕様 [#x1141bd0] ***基本仕様 [#x1141bd0]
|BGCOLOR(#d0d8e0):CENTER:||LEFT:|c |BGCOLOR(#d0d8e0):CENTER:||LEFT:|c
Line 93: Line 95:
-電源と通信用信号ラインが接続 -電源と通信用信号ラインが接続
| Pats Name | JST Parts Number |h | Pats Name | JST Parts Number |h
-|基板用ヘッダー |[[B3B-EH>https://www.jst-mfg.com/produc​t/detail.php?series=58]] |+|基板用ヘッダー |[[B3B-EH, B3B-EH-A>https://www.jst-mfg.com/product/detail.​php?series=58]] |
|ハウジング |[[EHR-3>https://www.jst-mfg.com/product​/detail.php?series=58]] | |ハウジング |[[EHR-3>https://www.jst-mfg.com/product​/detail.php?series=58]] |
|ターミナル |[[SEH-00x>https://www.jst-mfg.com/produ​ct/detail.php?series=58]] | |ターミナル |[[SEH-00x>https://www.jst-mfg.com/produ​ct/detail.php?series=58]] |
Line 109: Line 111:
****CN4 [#keaa8c78] ****CN4 [#keaa8c78]
#ref(E097B_CN4.png) #ref(E097B_CN4.png)
--RS-458 I/F+-RS-485 I/F
#ref(DXLSHARE/RS485_IF.png) #ref(DXLSHARE/RS485_IF.png)
-電源と通信用信号ラインが接続 -電源と通信用信号ラインが接続
| Pats Name | JST Parts Number |h | Pats Name | JST Parts Number |h
-|基板用ヘッダー |[[B4B-EH>https://www.jst-mfg.com/produc​t/detail.php?series=58]] |+|基板用ヘッダー |[[B4B-EH, B4B-EH-A>https://www.jst-mfg.com/product/detail.​php?series=58]] |
|ハウジング |[[EHR-4>https://www.jst-mfg.com/product​/detail.php?series=58]] | |ハウジング |[[EHR-4>https://www.jst-mfg.com/product​/detail.php?series=58]] |
|ターミナル |[[SEH-00x>https://www.jst-mfg.com/produ​ct/detail.php?series=58]] | |ターミナル |[[SEH-00x>https://www.jst-mfg.com/produ​ct/detail.php?series=58]] |
Line 196: Line 198:
**プログラムの開発環境 [#ffd43480] **プログラムの開発環境 [#ffd43480]
***GCC Developer Lite [#xcbed9da] ***GCC Developer Lite [#xcbed9da]
-GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]で紹介していますが、LPC84xでは公式版ではないものを使用します。~ +GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]で紹介しています。「基本パック」と「ARMパック」を[[ダウンロード>GCC Developer Lite#DOWNLOAD]]してインストールしてください。なおARMパックインストールの際に表示されるコンポーネントの選択画面では「LPC84xでのみ使用」を選択してください。 
- +#ref(ArmPackLPC84x.png)
--''2021/02/17''~ +
-初回リリース~ +
-206,766,990 byte~ +
-MD5sum:64a768e7c99842e4a48a14fda6b566f6~​ +
-#ref(https://www.besttechnology.co.jp/do​wnload/USER/TECHSUPPORT/GDL2.6.0.93_LPC8​xx.exe) +
- +
-本来であればインストーラーを用いて必要なファイルを自動的にインストールするものですが、ここではGCC Developer Liteがインストールされた状態をそのままzip形式で圧縮し自己解凍ファイルにしたものを提供します。~ +
-他のバージョンのGCC Developer Liteを使用している場合は、上書きコピー等はしないよう注意して下さい。~ +
-ダウンロードしたフィルを実行すると、「C:\Program Files」もしくは「C:\Program Files (x86)」フォルダの配下に展開されます。既に別のバージョンを使用している場合は、ダウンロードしたファイルを予めアーカイバで展開しておき、ルートフォルダ名をBestTech2等に変更するなどしてから、「C:\Program Files」もしくは「C:\Program Files (x86)」フォルダの配下に移動します。~ +
-また展開される「GCCDevL.exe」へのショートカットをデスクトップ等に作っておくと良いでしょう。 +
- +
-なお最新のノートンインターネットセキュリティーにてスキャン済みですが、自己解凍ファイルを実行するとPCの設定によってはスマートスクリーン・セキュリティー警告・ユーザアカウント制御等のメッセージがしつこく表示されます。ダウンロードしたファイルのサイズやハッシュ値が上記と同一であれば「実行(R)」や「はい」を選択してインストールを進めて構いませんが、気がかりな場合はインストールそのものを中止して下さい。 +
- +
-#ref(GDL_CAmess0.png,40%) +
-#ref(GDL_CAmess1.png,70%) +
-#ref(GDL_CAmess2.png,70%) +
- +
-これらのメッセージが表示されないままインストールそのものを拒否されたり、インストーラーファイルが削除される事も考えられます。その場合はWindowsの署名に関するポリシーを変更したり、アンチウィルスの制限を緩める等の措置を講じる必要があります。~ +
-またOSの設定において8.3形式のファイルの生成が有効になっていないとコンパイル作業に支障が生じます。予め[[管理者権限でコマンドプロンプトを起動>https://www.google.com/search?q=administ​rator+command+prompt]]し、以下の様に[[fsutil>https://www.google.com/search?q​=fsutil+behavior+disable8dot3]]を使って8.3形式のファイル名の生成を有効化してから使用して下さい。 +
- C:\>fsutil behavior set disable8dot3 0 +
- 現在のレジストリの状態は 0 です (すべてのボリューム上で 8dot3 名の作成を有効にします)。 +
- +
- C:\>+
LPC845で使用される主要なコンポーネントを簡単に紹介します。 LPC845で使用される主要なコンポーネントを簡単に紹介します。
Line 231: Line 210:
~ARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用している。 ~ARMコア向けC/C++言語向けのコンパイラ。できる限り最新のパッチを適用している。
-''[[CoFlash>https://sourceforge.net/pro​jects/coflash/]]'' -''[[CoFlash>https://sourceforge.net/pro​jects/coflash/]]''
-~CMSIS-DAPに対応したICEを使用してFLASH ROMへ任意のプログラムを直接書き込むツール。LPC82x及びLPC84xのみに対応。+~CMSIS-DAPに対応したICEを使用してFLASH ROMへ任意のプログラムを直接書き込むツール。
-''ターゲットファイル'' -''ターゲットファイル''
~MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。 ~MPUの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、GDBにてデバッグする際に使用する初期化ファイル、シリーズ毎に異なるメモリマップを定義したリンカスクリプトファイル、スタートアップルーチンを含む。基本的にコンパイル済みライブラリとしてソースとリンクして使用する。
Line 251: Line 230:
***サンプルコードとコンパイル済みファイルの転送及びと実行 [#la4263e0] ***サンプルコードとコンパイル済みファイルの転送及びと実行 [#la4263e0]
-以下のリンクにZIP形式の圧縮ファイルで設置しました。適宜アーカイバにて解凍して使用して下さい。+以下のリンクにZIP形式の圧縮ファイルで設置しました。アーカイバ等にて適宜解凍して使用して下さい。
-ソースファイル(srcフォルダ)と一緒にコンパイル済みのbinファイル(binフォルダ)、GCC Developer Liteをインストールせずともコンパイル済みのbinファイルが転送できるWindows向け各種ツール等が同梱されています。出荷時に「smpl12(dx2client_imu).bin」が書き込まれていますが、統合環境なしに簡易的にコンパイル済みのバイナリファイルを転送して試すには以下の手順を踏んで下さい。+ソースファイル(srcフォルダ)と一緒にコンパイル済みのbinファイル(binフォルダ)、GCC Developer Liteをインストールせずともコンパイル済みのbinファイルが転送できるWindows向け各種ツール等が同梱されています。出荷時に「smpl19(dxclient_imu)_V2.bin」が書き込まれていますが、統合環境なしに簡易的にコンパイル済みのバイナリファイルを転送して試すには以下の手順を踏んで下さい。
+[[DXHUB]]等にDXMIOを接続し、PCとDXMIO間で通信できる環境を整備する +[[DXHUB]]等にDXMIOを接続し、PCとDXMIO間で通信できる環境を整備する
+DXMIOへの電源供給を断っておく +DXMIOへの電源供給を断っておく
-+同梱のconf.batを実行するとDXMIOへコンパイル済みのbinファイルを転送するための設定がなされたSIMPLE TERM(STERM.exe)が起動する++同梱の.\tools\sterm\conf.cmdを実行するとDXMIOへコンパイル済みのbinファイルを転送するための設定がなされたSIMPLE TERM(STERM.exe)が起動する
+起動したSTERMの'''ファイルメニュー'''→'''プロパティ'''をクリックし、''Connect to''のドロップダウンリストから任意のCOMポート番号を選択して''OK''ボタンを押す +起動したSTERMの'''ファイルメニュー'''→'''プロパティ'''をクリックし、''Connect to''のドロップダウンリストから任意のCOMポート番号を選択して''OK''ボタンを押す
+STERMの'''通信メニュー'''→'''ポートオープン'''をクリックし該当ポートを開いておく +STERMの'''通信メニュー'''→'''ポートオープン'''をクリックし該当ポートを開いておく
Line 261: Line 240:
+STERMの'''転送メニュー'''→'''スクリプト実行'''をクリックすると10秒の転送タイムアウト画面が表示されるので、タイムアウトする前にDXMIOへ電源を供給する +STERMの'''転送メニュー'''→'''スクリプト実行'''をクリックすると10秒の転送タイムアウト画面が表示されるので、タイムアウトする前にDXMIOへ電源を供給する
+正常であれば即転送が開始され、転送が完了すれば転送したプログラムの実行が励起される +正常であれば即転送が開始され、転送が完了すれば転送したプログラムの実行が励起される
--''2021/01/17''+-''2022/07/15''~ 
-初回リリース~+--更新したSTERM.exeがファイルのドラッグドロップを受け付けなくなっていたのを修正 
 +--一部のWindows向けの実行ファイルが64bit版だったので32bit版として再構築~ 
 +--一部の環境でsmpl19(dxclient_imu).cを長時間実行するとスタックオーバーフローを起こすようだったので、TaskDXCommタスクをxTaskCreateで生成する際のusStackDepthを少し大きめに変更 
 +#ref(https://www.besttechnology.co.jp/do​wnload/E097B_SMPL1.2.zip) 
 + 
 +-2022/04/11 
 +--GCC Developer Lite及びARMパックの更新に伴う改変とサンプルコードの追加~ 
 +--詳細は同梱のREADME.mdを参照の事 
 +#ref(https://www.besttechnology.co.jp/do​wnload/E097B_SMPL1.1.zip) 
 + 
 +-2021/01/17~ 
 +--初回リリース~
#ref(https://www.besttechnology.co.jp/do​wnload/E097B_SMPL1.0.zip) #ref(https://www.besttechnology.co.jp/do​wnload/E097B_SMPL1.0.zip)
***サンプルコードのコンパイルから転送及び実行 [#i67d86ca] ***サンプルコードのコンパイルから転送及び実行 [#i67d86ca]
-サンプルコードに含まれるbinファイルとSIMPLE TERMだけでも一通りの動作確認はできますが、実際にコンパイルする場合は以下の手順となります。+サンプルコードに含まれるbinファイルとSIMPLE TERMだけでも一通りの動作確認はできますが、GCC Developer Liteを使ってコンパイルする場合は以下の手順となります。
+サンプルコードの参照とコンパイル条件の設定~ +サンプルコードの参照とコンパイル条件の設定~
Line 281: Line 271:
#ref(DXMIO_GDL4.png,80%) #ref(DXMIO_GDL4.png,80%)
+転送の準備~ +転送の準備~
-コンパイルしたファイルをDXMIOに転送するためには次の図のような構成でPCとDXMIO間を接続します。ここでは電源のON/OFFが容易にできたり部品点数が少なくて済む事から[[DXHUB]]を使用していますが、[[DXSharingBoard]]や[[USB2RS485 dongle>BTE079C]]、[[USB2RSTTL dongle>BTE080C]]、[[USB2DXIF dongle>BTE096]]といった装置を使用しても構いません。+コンパイルしたファイルをDXMIOに転送するためには次の図のような構成でPCとDXMIO間を接続します。ここでは電源のON/OFFが容易にできたり部品点数が少なくて済む事から[[DXHUB]]を使用していますが、[[DXSharingBoard]]や[[USB2RS485 dongle>BTE079C]]、[[USB2RSTTL dongle>BTE080C]]、[[USB2DXIF dongle>BTE096]]、[[USB2DXIF]]といった装置を使用しても構いません。
#ref(DXMIO_DXHUB_PC_ConnectDiag.png,80%)​ #ref(DXMIO_DXHUB_PC_ConnectDiag.png,80%)​
DXHUBをPCに接続するとWindowsのデバイス一覧にCOMポートが追加されます。SIMPLE TERMからそのCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「USB Serial Port」が表示されたポートを選択)したらオープンしDXMIOに電源を供給する事で、SIMPLE TERMからDXMIOのブートローダの各種コマンドが使用できる様になります。SIMPLE TERMのCOMポートの選択は'''ファイル(F)'''メニュー→'''プロパティ(P)...'''をクリックし、表示されるダイアログボックスの''Connect to'''から該当のCOMポート番号を選択してから''OK''ボタンを押します。 DXHUBをPCに接続するとWindowsのデバイス一覧にCOMポートが追加されます。SIMPLE TERMからそのCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「USB Serial Port」が表示されたポートを選択)したらオープンしDXMIOに電源を供給する事で、SIMPLE TERMからDXMIOのブートローダの各種コマンドが使用できる様になります。SIMPLE TERMのCOMポートの選択は'''ファイル(F)'''メニュー→'''プロパティ(P)...'''をクリックし、表示されるダイアログボックスの''Connect to'''から該当のCOMポート番号を選択してから''OK''ボタンを押します。
Line 301: Line 291:
**基本サンプルコード [#v1513618] **基本サンプルコード [#v1513618]
-smpl1~smpl7ではボード上のLEDやTTL/RS-485 I/Fを使ったシリアル通信、CN1を使用した入出力を一通り試すことができます。~+smpl1~smpl13ではボード上のLEDやTTL/RS-485 I/Fを使ったシリアル通信、CN1を使用した入出力を一通り試すことができます。~
***LPCOpen [#vffb4464] ***LPCOpen [#vffb4464]
Line 307: Line 297:
とは言えリソースはLPCOpen前提でこしらえたものも蓄積されてしまっていることから、LPC82x用のものをモディファイしてLPC84x向けに構成し直したものを同梱しています。 とは言えリソースはLPCOpen前提でこしらえたものも蓄積されてしまっていることから、LPC82x用のものをモディファイしてLPC84x向けに構成し直したものを同梱しています。
***ペリフェラルのクロックソース [#u59068f0] ***ペリフェラルのクロックソース [#u59068f0]
-初期状態において大抵のペリフェラルはクロックソースが選択されていないため、クロックソースが無選択状態のままペリフェラルの初期化を行っても動作しません。ライブラリにおいてもクロックソースは別途行うものとしていますので、DXMIOにおいても初期化する前にクロックを選択しています。なおUSART0に限って「e097b_def.h」内のResetExceptionDispatch_Tail関数(main関数へジャンプする直前にスタートアップルーチンから呼ばれる)で予めクロックソースを選択しています。+初期状態において大抵のペリフェラルはクロックソースが選択されていないため、クロックソースが無選択状態のままペリフェラルの初期化を行っても動作しません。ライブラリにおいてもクロックソースは別途行うものとしていますので、DXMIOにおいても初期化する前にクロックを選択しています。なおUSART0に限り「e097b_def.h」内のResetExceptionDispatch_Tail関数(main関数へジャンプする直前にスタートアップルーチンから呼ばれる)で予めクロックソースを選択しています。
#html{{ #html{{
<pre class="brush: c;"> <pre class="brush: c;">
Line 438: Line 428:
**サーボ向けサンプルコード [#qe68e003] **サーボ向けサンプルコード [#qe68e003]
 +以下は最新のサンプルコードを前提に記述されています。
***Dynamixelホスト [#vb5d5cac] ***Dynamixelホスト [#vb5d5cac]
-DXMIO自信を他のDynamixelのホストとして使用する場合の通信処理は提供されるライブラリを使う事で簡便に実現できます(smpl8~smpl9)。DXMIOをホストとするとPC等に比べて物理的なサイズを格段に小さくできますが、メモリや処理能力には限りがありますので過大な期待は禁物です。~+DXMIO自身を他のDynamixelのホストとして使用する場合の通信処理は提供されるライブラリを使う事で簡便に実現できます(smpl14~smpl16)。DXMIOをホストとするとPC等に比べて物理的なサイズを格段に小さくできますが、メモリや処理能力には限りがありますので過大な期待は禁物です。~
PC版と同等の[[DXLIB>DXLIB]]や[[DX2LIB>DX2LIB]]が提供されますが、ライブラリのリンク時の都合により追加APIのプレフィクスが少々異なります。詳細はdxlib.hやdx2lib.hを参照して下さい。~ PC版と同等の[[DXLIB>DXLIB]]や[[DX2LIB>DX2LIB]]が提供されますが、ライブラリのリンク時の都合により追加APIのプレフィクスが少々異なります。詳細はdxlib.hやdx2lib.hを参照して下さい。~
以下に接続例を紹介しますが、クライアントとなるDynamixelと同じI/FにDXMIOが接続されているならばどの位置に配置して構いません。またDXMIOへファームウェアを転送するためにはPC用のI/Fが必要になります。 以下に接続例を紹介しますが、クライアントとなるDynamixelと同じI/FにDXMIOが接続されているならばどの位置に配置して構いません。またDXMIOへファームウェアを転送するためにはPC用のI/Fが必要になります。
Line 449: Line 440:
以下に接続例を紹介しますが、ホストとなるPCと同じI/FにDXMIOが接続されているならばどの位置に配置して構いません。 以下に接続例を紹介しますが、ホストとなるPCと同じI/FにDXMIOが接続されているならばどの位置に配置して構いません。
#ref(E097B_ClientDiag.png) #ref(E097B_ClientDiag.png)
-smpl12では各端子機能の割り当て・GPIOとしての入出力・PWM出力・アナログ電圧測定・IMUのデータ取得といった機能へコントロールテーブルを介してアクセスできます。+smpl19では各端子機能の割り当て・GPIOとしての入出力・PWM出力・アナログ電圧測定・IMUのデータ取得といった機能へコントロールテーブルを介してアクセスできます。
なおDynamixelクライアントライブラリでは不揮発メモリの扱いがDynamixelシリーズのそれと異なり、通常の操作で不揮発領域とあるアイテムを書き換えたとしても、電源を再投入すると書き換える前の値に戻るようにしています。これは不用意な書き換えによる不慮の事態を軽減するためです。不揮発領域に書き込んだ値を次回起動時にも反映させるには、コントロールテーブル中のWriteNVMに1を書き込む必要があります。またWriteNVMのコントロールテーブル上のアドレスはライブラリ内で固定されていますので、異なるアドレスに再配置する事はできません。 なおDynamixelクライアントライブラリでは不揮発メモリの扱いがDynamixelシリーズのそれと異なり、通常の操作で不揮発領域とあるアイテムを書き換えたとしても、電源を再投入すると書き換える前の値に戻るようにしています。これは不用意な書き換えによる不慮の事態を軽減するためです。不揮発領域に書き込んだ値を次回起動時にも反映させるには、コントロールテーブル中のWriteNVMに1を書き込む必要があります。またWriteNVMのコントロールテーブル上のアドレスはライブラリ内で固定されていますので、異なるアドレスに再配置する事はできません。
Line 951: Line 942:
***ICS/B3Mクライアント [#w43fc21c] ***ICS/B3Mクライアント [#w43fc21c]
-一部の根強いリクエストにより近藤科学殿の[[KRSシリーズ>https://kondo-robot.com/product-categor​y/servomotor/krs]]や[[B3Mシリーズ>https://kondo-robot.com/product-categor​y/servomotor/b3m]]と一緒に使用する事を想定し、これらのプロトコルに対応したクライアント機能をsmpl13とsmpl14として提供します。~+一部の根強いリクエストにより近藤科学殿の[[KRSシリーズ>https://kondo-robot.com/product-categor​y/servomotor/krs]]や[[B3Mシリーズ>https://kondo-robot.com/product-categor​y/servomotor/b3m]]と一緒に使用する事を想定し、これらのプロトコルに対応したクライアント機能をsmpl20とsmpl21として提供します。~
ICSの場合は適用例が極めて少ない[[拡張コマンド>https://kondo-robot.com/faq/ics3-5_3-6s​oftwaremanual_2]]を使用してコントロールテーブルへのアクセス手段を提供しています。拡張コマンドではコントロールテーブル上で1バイトに相当するデータが2バイトに分割されて送受信される事に注意が必要です。また書き込んだ値等が許容範囲外の場合はレスポンスを返しません。~ ICSの場合は適用例が極めて少ない[[拡張コマンド>https://kondo-robot.com/faq/ics3-5_3-6s​oftwaremanual_2]]を使用してコントロールテーブルへのアクセス手段を提供しています。拡張コマンドではコントロールテーブル上で1バイトに相当するデータが2バイトに分割されて送受信される事に注意が必要です。また書き込んだ値等が許容範囲外の場合はレスポンスを返しません。~
B3Mの場合は[[READ/WRITE/RESETコマンド>https://kondo-robot.com/faq/b3m_softwar​emanual1200]]のみに応答します。~ B3Mの場合は[[READ/WRITE/RESETコマンド>https://kondo-robot.com/faq/b3m_softwar​emanual1200]]のみに応答します。~


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom