7: 2010-11-04 (木) 16:18:48 eid7gud |
現: 2010-11-05 (金) 19:44:13 eid7gud |
| | | |
| ハンダが苦手という方はブレッドボードを使用しても良いでしょう。 | | ハンダが苦手という方はブレッドボードを使用しても良いでしょう。 |
- | | |
- | ケーブルには必要に応じてノイズの混入を防ぐためのシールド等の措置を講じてください。また、ケーブルが長過ぎると信号の劣化に繋がります。 | |
| | | |
| FDIII-HCの変わりに[[Dynamixelコンフィギュレータ]]を使用してパソコンと通信することも可能です。 | | FDIII-HCの変わりに[[Dynamixelコンフィギュレータ]]を使用してパソコンと通信することも可能です。 |
| PSD距離センサのGNDとMultifunction I/O moduleのCN2のPin10:GNDを接続します。 | | PSD距離センサのGNDとMultifunction I/O moduleのCN2のPin10:GNDを接続します。 |
| | | |
- | PSD距離センサのOUTとMultifunction I/O moduleのCN2のPin2:PIO0を接続します。勿論PIO1~PIO7でも構いません。 | + | PSD距離センサのOUTとMultifunction I/O moduleのCN2のPin2:PIO0を接続します。PIO1~PIO7でも構いません。 |
| | | |
- | Multifunction I/O moduleのCN2には、VCCとGND端子が1つずつしかありません。複数台のセンサを接続したり、後でセンサを取り外したりする場合は、ユニバーサル基板とピンヘッダで変換基板を作り、ケーブルと3ピンコネクタでセンサを接続するなどの工夫が必要です。 | + | Multifunction I/O moduleのCN2には、VCCとGND端子が1つずつしかありません。複数台のセンサを接続したり、後でセンサを取り外したりする場合は、ユニバーサル基板とピンヘッダで変換基板を作り、ケーブルと3ピンコネクタでセンサを接続するか、ブレッドボードで配線するなどの工夫が必要です。 |
| | | |
| ''変換基板作成例'' | | ''変換基板作成例'' |
| しかし誤ってプログラムのループの中で高速に書き換えを行ってしまった場合、あっと言う間に制限を越えてしまう危険性があります。 | | しかし誤ってプログラムのループの中で高速に書き換えを行ってしまった場合、あっと言う間に制限を越えてしまう危険性があります。 |
| | | |
- | Multifunction I/O moduleの設定の変更にはDxpacket Configuratorを使用します。 | + | PIO0 Configを3にするプログラムを以下に示します。 |
- | 基本的な使い方はDynamixel Configuratorと同じですのでそちらを参考にしてください。 | + | |
| + | #include <fd.h> |
| + | |
| + | void main (void) { |
| + | fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4); |
| + | |
| + | fdWait(2000); |
| + | fd_DXWriteByteData (200, 6, 3); |
| + | fd_printf ("Complete"); |
| + | fd_SoftReset(); |
| + | while (1); |
| + | } |
| + | |
| + | 一度だけ実行しましょう。~ |
| + | 書き換えが終わるとブートローダへ戻ります。~ |
| + | |
| + | fd_DXWriteByteData (200, 6, 3); |
| + | |
| + | ここでIDが200のMultifunction I/O moduleのアドレス6を3に書き換えています。アドレス6はPIO0 Configです。~ |
| + | IDとアドレスは適宜変更してください。 |
| | | |
| **プログラミング [#m50e9959] | | **プログラミング [#m50e9959] |
| #include <fd.h> | | #include <fd.h> |
| #define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();} | | #define KEY_QUIT { if(fd_rx_buff()) fd_SoftReset();} |
| + | |
| void main (void) { | | void main (void) { |
| uint16_t ReadData; | | uint16_t ReadData; |
| + | |
| fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4); | | fd_Init (0, BT_CONSOLE, FD_BEEP_MMI | FD_BEEP_PACKETERR | FD_BEEP_LOWVOLTAGE | FD_BEEP_BOOTUP, 7.4); |
| + | |
| while (1) { | | while (1) { |
- | fd_DXReadWordData (1, 26, &ReadData); | + | fd_DXReadWordData (200, 26, &ReadData); |
| fd_printf ("%d\r", ReadData); | | fd_printf ("%d\r", ReadData); |
| KEY_QUIT; | | KEY_QUIT; |
| ---- | | ---- |
| | | |
- | fd_DXReadWordData (1, 26, &ReadData); | + | fd_DXReadWordData (200, 26, &ReadData); |
| | | |
- | Multifunction I/O module(ID=1)のAD0(アドレス26,27)のデータをReadDataに代入しています。IDを変更した場合は適宜書き換えてください。 | + | Multifunction I/O module(ID=200)のAD0(アドレス26,27)のデータをReadDataに代入しています。IDを変更した場合は適宜書き換えてください。 |