10: 2009-11-02 (月) 21:33:00 takaboo | 11: 2009-11-03 (火) 05:06:44 takaboo | ||
---|---|---|---|
Line 6: | Line 6: | ||
FREEDOMシリーズにも使用されるDynamixel AX-12+やRX-28を制御するためのAPIが提供され、複雑な多軸ロボットを構成する事が簡便に行う事ができます。 | FREEDOMシリーズにも使用されるDynamixel AX-12+やRX-28を制御するためのAPIが提供され、複雑な多軸ロボットを構成する事が簡便に行う事ができます。 | ||
- | また、単体でDynamixelシリーズとPC間のI/F変換としても機能しますので、PCからUSBないしBluetooth経由でIDの変更やその他パラメータの調整等にも使用できます。。 | + | また、単体でDynamixelシリーズとPC間のI/F変換としても機能しますので、PCからUSBないしBluetooth経由でIDの変更やその他パラメータの調整等にも使用できます。 |
**基本仕様 [#e5a81ed1] | **基本仕様 [#e5a81ed1] | ||
Line 96: | Line 96: | ||
ブートローダのコマンドモードを使用する場合は、PB1を押しながら電源をONないしUSBケーブルを接続します。ブートローダのコマンドモードが起動するとピロッ♪とブザーが短く鳴り、LED2が一瞬点灯し正常にコマンドモードになった事を知らせます。 | ブートローダのコマンドモードを使用する場合は、PB1を押しながら電源をONないしUSBケーブルを接続します。ブートローダのコマンドモードが起動するとピロッ♪とブザーが短く鳴り、LED2が一瞬点灯し正常にコマンドモードになった事を知らせます。 | ||
***ブートローダ [#g271227d] | ***ブートローダ [#g271227d] | ||
- | USBないしBluetooth経由で本装置を操作するための専用プログラムが予め搭載されており、ユーザプログラムの転送やDynamixel用ハブ、Bluetoothの設定等を行います。~ | + | USBないしBluetooth経由で本装置を操作するための専用プログラムが予め搭載されており、ユーザプログラムの転送やDynamixel用ハブ、Bluetoothの設定等をシリアルターミナル経由で行う事が出来ます。~ |
SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。 | SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。 | ||
--< FDIII Ver1.0 by BestTechnology >-- | --< FDIII Ver1.0 by BestTechnology >-- | ||
Line 106: | Line 106: | ||
> | > | ||
-w (UPLOAD)~ | -w (UPLOAD)~ | ||
- | FDIII-HC用にコンパイルされたユーザプログラムをフラッシュROMに転送するモードです。 | + | FDIII-HC用にコンパイルされたユーザプログラムをフラッシュROMに転送するモードです。ダウンロードして実行出来るファイルは、GCC Developer LiteにてFDIII-HC向けにコンパイルされたバイナリファイルのみです。 |
-g (BOOT)~ | -g (BOOT)~ | ||
- | フラッシュROMに転送されたユーザプログラムへ実行を遷移します。 | + | フラッシュROMに転送されたユーザプログラムへ実行を遷移します。ユーザプログラムエリアが消去されていれば実行されません。 |
-i (FLASH INFO)~ | -i (FLASH INFO)~ | ||
ユーザプログラム用フラッシュROMの状態を表示します。 | ユーザプログラム用フラッシュROMの状態を表示します。 | ||
-e (ERASE)~ | -e (ERASE)~ | ||
- | ユーザプログラム用フラッシュROMを完全消去します。 | + | ブートローダ本体を除くユーザプログラムエリアに書き込まれたデータを完全消去します。消去したデータは復活させる事が出来ません。 |
-b (BLUETOOTH)~ | -b (BLUETOOTH)~ | ||
- | Bluetoothの設定モードに遷移します。Bluetooth経由でブートローダのコンソールにアクセスしている場合は設定出来ません。 | + | Bluetoothの設定モードに遷移します。Bluetooth経由でブートローダのコンソールにアクセスしている場合は設定出来ません。USBケーブルでPCと接続された状態でのみBluetoothの設定変更が出来ます。 |
***Bluetooth [#d60dee0f] | ***Bluetooth [#d60dee0f] | ||
Line 155: | Line 155: | ||
OTHER: exit | OTHER: exit | ||
NO = | NO = | ||
- | もちろん接続先がSPPに対応している必要があります。 | + | もちろん接続先がSPPに対応している必要があります。なお、接続先がPINコードを要求する場合は'0000'とします。 |
**開発環境 [#ae46f693] | **開発環境 [#ae46f693] | ||
Line 180: | Line 180: | ||
****ターゲットファイル [#l9fe78a0] | ****ターゲットファイル [#l9fe78a0] | ||
- | [[GCC Developer Lite>GCC Developer Lite]]では本マイコン用の設定を複数備えています。~ | + | [[GCC Developer Lite>GCC Developer Lite]]ではFDIII-HC用の設定を2種類備えています。~ |
- | 例えば、ARMコアの学習・組み込み向けCコンパイラの習熟・マイコン内蔵ペリフェラルの機能を熟知するといった段階ではJTAGを使ってSRAM上でデバッグし、慣れてきたらブートローダを経由してprintfデバッグ、最終的に製品等としてリリースして完成させる時はフラッシュROMに、といった段階を踏む場合でも[[GCC Developer Lite>GCC Developer Lite]]のコンパイルオプションの設定リストから選択し直すだけで設定が完了します。~ | + | |
#ref(GDL_CompileOption_TargetList.png) | #ref(GDL_CompileOption_TargetList.png) | ||
以下にFDIII-HCに対応した設定リストの一覧とその設定における機能を紹介します。 | 以下にFDIII-HCに対応した設定リストの一覧とその設定における機能を紹介します。 | ||
Line 187: | Line 186: | ||
~Dynamixelとの通信を行う一番低位なAPI・サウンドAPI・microSD用fatファイルシステム(efsl)といった機能がライブラリとして提供される。~ | ~Dynamixelとの通信を行う一番低位なAPI・サウンドAPI・microSD用fatファイルシステム(efsl)といった機能がライブラリとして提供される。~ | ||
~ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ~ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ||
- | プログラムのスタートアドレスが0x103000に設定される以外は、フラッシュROM上で動作するプログラムと基本的に相違は無い。~ | ||
ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。~ | ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。~ | ||
-''FREEDOM III library for FDIII-HC'' | -''FREEDOM III library for FDIII-HC'' | ||
~FREEDOMとして複数のアクチュエータを取りまとめるモーションAPI・非同期にDynamixelとの通信を行うインストラクションAPI・簡易タスク管理API・モーションデータ管理API等がライブラリとして提供される。~ | ~FREEDOMとして複数のアクチュエータを取りまとめるモーションAPI・非同期にDynamixelとの通信を行うインストラクションAPI・簡易タスク管理API・モーションデータ管理API等がライブラリとして提供される。~ | ||
~ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ~ビルドするとブートローダにてマイコンのフラッシュROMへ転送するための.bin(バイナリ)ファイルが作られる。~ | ||
- | プログラムのスタートアドレスが0x103000に設定される以外は、フラッシュROM上で動作するプログラムと基本的に相違は無い。~ | ||
ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。 | ビルドが成功すると、STERM.exe(SIMPLE TERM)の起動を促される。 | ||
****SIMPLE TERMとブートローダ [#FDIII_BL] | ****SIMPLE TERMとブートローダ [#FDIII_BL] | ||
- | ブートローダはJTAGやその他の特殊なI/Fを使用せずとも、USBないしCOMポートを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。~ | + | ブートローダはJTAGやその他の特殊なI/Fを使用せずとも、USBないしBluetoothを使用してマイコンのプログラム書き換えや操作を行う事が出来ます。~ |
ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても動作しません。 | ブートローダを使用して動作するプログラムが構成できる設定リストは以下の通りで、これ以外の設定リストで構成されたプログラムをブートローダで転送しても動作しません。 | ||
-DYNAMIXEL library for FDIII-HC | -DYNAMIXEL library for FDIII-HC | ||
Line 211: | Line 208: | ||
Protocol:Xmodem | Protocol:Xmodem | ||
#ref(AT91SAM7_BL_COM.png,100%) | #ref(AT91SAM7_BL_COM.png,100%) | ||
- | ブートローダの詳細及びコマンドモードの使い方等は[[こちら>AT91SAM_BL]]。~ | + | |
+ | Bluetoothで接続する場合は、予めPCとFDIII-HCをペアリングしておく必要があります。PCのBluetoothに関してはWindowsのバージョンやアプリケーションに大きく依存する部分がありますので詳細は割愛しますが、PCとFDIII-HCをペアリングする事でPC上に仮想COMポートが増設されますので、そのポートをSIMPLE TERMで開く事でブートローダのコンソールへ同様にアクセスする事が可能です。 | ||
先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されてSIMPLE TERMが起動します。 | 先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、特殊な設定が追加されてSIMPLE TERMが起動します。 | ||
Line 227: | Line 225: | ||
| :idea:|既にユーザープログラムが書き込まれているFDIII-HCを、デバイスドライバがインストールされていないPCのUSBポートに接続してもCOMポートが活性化しない事があります。&br;ブートローダを確実にコマンドモードにさせCOMポートとして認識させるには、SW1をOFFにした状態でPB1を押しながらUSBケーブルを接続します。| | | :idea:|既にユーザープログラムが書き込まれているFDIII-HCを、デバイスドライバがインストールされていないPCのUSBポートに接続してもCOMポートが活性化しない事があります。&br;ブートローダを確実にコマンドモードにさせCOMポートとして認識させるには、SW1をOFFにした状態でPB1を押しながらUSBケーブルを接続します。| | ||
- | **FDIII-HC用ライブラリ [#ude1312e] | + | **FDIII-HC向けターゲットファイル及びライブラリ [#ude1312e] |
[[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ | [[GCC Developer Lite>GCC Developer Lite]]では1つのソースプログラムのみを対象とするため、機能別にソースを分割して編集やコンパイルするといった使い方は出来ません(完全にできないという訳でもありません)。だからと言って全ての機能を一つのソースに記述する事は、プログラムの見通しが悪くなりバグの温床になりかねません。~ | ||
そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | そこで、複数のソースに分割する事無くある程度のソースプログラムサイズでコーディングするために、頻繁に使用されるであろう一部の機能が専用のライブラリとして提供されます。~ | ||
GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。~ | GCC Developer Liteを標準的な環境のPCへインストールすると、「C:\Program Files\BestTech\GCC Developer Lite\TARGET」フォルダに必要なファイルがコピーされます。必要に応じて本フォルダを参照できますし、ユーザがソースを修正しライブラリを再構築する事も可能です。~ | ||
~ | ~ | ||
- | FDII-HCは複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。 | + | FDIII-HCは複数のライブラリを組み合わせて使用するため、実体はかなり複雑になっています。 |
-''SAM7S用ライブラリ''~ | -''SAM7S用ライブラリ''~ | ||
AT91SAM7Sシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。シリアル通信に関する物が主体。 | AT91SAM7Sシリーズ共通の内蔵ペリフェラルを簡便に扱う為のライブラリ。シリアル通信に関する物が主体。 | ||
Line 242: | Line 240: | ||
**サンプルプログラム [#m24a02e6] | **サンプルプログラム [#m24a02e6] | ||
**その他 [#md0d0106] | **その他 [#md0d0106] | ||
+ | ***パケットスルーモード [#z3cf2ad1] | ||
+ | PCから直接DynamixelやUSS3へインストラクションパケットを送信して制御する場合は、[[Dynamixelコンフィギュレータ>BTE068]]ないし[[USS3コンフィギュレータ>BTE082]]を使用する事を推奨しています。これらのコンフィギュレータはPCのUSBポートを介してRS485ないしTTLのDynamixel用のシリアルI/Fへ変換する製品ですが、FDIII-HCも同様の目的で使用する事が可能です。~ | ||
+ | 本モードは、ブートローダがコマンドモードで起動している際にPCからインストラクションパケットを受信した際に自動的に遷移するものです。本モードに遷移した後にブートローダのコマンドモードに戻るには、FDIII-HCを電源リセットするか、USB接続している場合はポートを閉じるか、PB1を押す必要があります。 | ||
+ | |||
+ | PCとの接続形態はFDIII-HCのUSBないしBluetoothいずれかを選択できますが、接続形態によって使用できる機能に制限があります。 | ||
+ | |||
+ | +USB接続~ | ||
+ | PCとFDIII-HCをUSBケーブルで接続した場合は、従来のコンフィギュレータと使い方が全く同様となります。対象のパラメータの変更等はコンフィギュレータソフトウェアを介して該当のCOMポートをオープンすればあたかもコンフィギュレータとして振る舞います。ボーレートに関してもPCから設定したCOMポートのボーレートに合わせてI/Fのボーレートが追従します(Dynamixelのサポートするボーレートのみ)。 | ||
+ | +Bluetooth接続~ | ||
+ | PCとFDIII-HCをBluetoothで接続した場合は、PCとDynamixel間を完全に無線化しつつ、従来PCからUSBを介して制御していたプログラムをほぼ改造することなく置き換える事が可能です。Bluetooth経由で接続した場合の制限は、COMポートのボーレートを任意に設定してもI/F側のボーレートは常時1Mbpsに固定される点です。~ | ||
+ | また、FDIII-HC上のZEALとマイコンは最大で460.8kbpsの速度でしか通信を行わないため、物理的に1Mbpsのスループットは得られません。そのため、ある程度の遅延やパケットのドロップが生じる可能性が多分にあります。~ | ||
+ | |||
+ | |CENTER:BGCOLOR(red):||c | ||
+ | | :idea:|本機能はブートローダに予め備わっている機能ですので、ユーザプログラムが実行されている状態では機能しません。必ずブートローダがコマンドモードで起動する状態で使用する事としています。| |