2006年05月

作業日記トップへ

05月02日(火)  05月03日(水)  05月05日(金)  05月05日(金)  05月13日(土) 

2006年05月13日(土)

掲示板1へ

AX-12の通信速度は1Mbpsだったのか・・・

時間のあるときにOAKS-miniでAX-12のプログラムをしていたのですが、 全く反応がありません・・・ あれこれやっても、うんともすんとも言やぁしない・・・

で、へんだなぁと思っていたのですが(もちろん何か間違っているのかもしれませんが)・・・

BestTechnologyのホームページに Dynamixel AX-12 ファームウェア変更のお知らせが出ていました。 出荷時の通信速度がいつのまにか1Mbpsになってます・・・とほほ・・・

OAKS16-miniで1Mbpsを設定しようとすると、 転送速度レジスタに設定する値は0.25を四捨五入して・・・0!

しかし、0で設定すると通信速度は1.25Mbpsで25%も違っています。 さすがにこれではダメだろうなぁ・・・

そういうわけで、(通信速度の変更をするまで)OAKS-miniでは通信できないようです。

ここで投げ出すのもなんなので、もう少しスピードのあるボードを使ってみます。 どれにしようかなぁ・・・

2006年05月05日(金)

掲示板1へ

OAKS-mini(UART1エコーバックプログラム)

OAKS-miniの拡張ボードの回路図などを見るとUART1とパソコンをつなぐようになっているのですが、 サンプルはなぜかUART0のエコーバックだったりします。 で、ちょっと書き直して実行。

sect30.inc
	.lword	dummy_int		; uart2 transmit(for user)(vector 15)
	.lword	dummy_int		; uart2 receive(for user)(vector 16)
	.lword	dummy_int		; uart0 transmit(for user)(vector 17)
	.lword	dummy_int		; uart0 receive(for user)(vector 18)
	.lword	dummy_int		; uart1 transmit(for user)(vector 19)
	.glb	_receive		; 
	.lword	_receive		; uart1 receive(for user)(vector 20)
sci.c
/****************************************************/
/*      プロジェクト名: sci01                       */
/*      ファイル名:    sci.c                       */
/*      内容:          UART1エコーバックプログラム */
/*      日付:          2006.05.05                  */
/*      コンパイラ:     NC30WA (Ver.4.00)           */
/*      作成者:        ono                         */
/****************************************************/

/*      転送速度:19200pbs                          */
/*      (20M/19200/16=65:よって設定値は65-1)        */
/*   データ長:8bit ストップビット:1 パリティ:なし */

/* インクルードファイル */
#include        "sfr26.h"       /* OAKSmini用定義ファイル */

/* プロトタイプ宣言 */
int     main(void);             /* メイン関数   */
void    uart1ini(void);
void    receive(void);          /* 割込み関数   */

#pragma INTERRUPT       receive

/*   マクロ定義*/
#define U1_BRG          64      /* 転送速度レジスタの設定値  */


/**************************************************************************
                メイン関数 : main()
**************************************************************************/
int main(void)
{
                
        uart1ini();              /* uart1初期設定 */

        _asm( "\tFSET   I");     /* 割り込み許可  */

        while(1);

        return(0);
}

/**************************************************************************
*       uart1初期設定関数 : uart1ini()
**************************************************************************/
void uart1ini(void)
{
        
        u1mr = 0x05;             /* 送受信モ−ドレジスタ 内部クロック */
                                 /* 非同期、8ビット、パリティなし、*/
                                 /* スリープなし */

        u1c0 = 0x10;             /* 送受信制御レジスタ0 クロックf1選択 */
        u1brg = U1_BRG;          /* 転送速度レジスタ */

        s1ric = 0x06;            /* 割込みレベルの設定 */
        u1c1 = 0x05;             /* 送受信制御レジスタ1 送受信許可 */
}


/**************************************************************************
*       受信割込み関数 : receive()
**************************************************************************/
void receive(void)
{
        int rdata;                /* 受信バッファ */

        rdata = u1rb;             /* データ受信 */
        
        rdata &= 0x0ff;           /* 受信データ送信 */
        u1tb = rdata;
}

実行結果

文字列送信関数などを作る必要があるなぁ・・・

2006年05月05日(金)

掲示板1へ

OAKS-mini(TMの環境構築)

OAKS16(TMの環境構築)の時には TeraPadを使っていたのですが、 その後調べていたらXYZZYでも行を指定して開けることがわかりました。

ところが、情報がどこにあったのか分からず。 延々と探し回った挙句、解凍したところに「html」というフォルダがあり、 その中の「00README.html」というファイルに書いてあることが判明しました。

「Parameter」は「%F -g %L」。

ln30のときの-ORDER は不要。

付属CDに入っている、スタートアッププログラム(ncrt0.a30)と セクション定義ファイル(sect30.inc)、OAKSmini用定義ファイル(sfr26.h)を利用する。

2006年05月03日(水)

掲示板1へ

AX-12用OAKS-mini基板作り

AX-12はシリアルで制御をするので、 そのためにシリアルのポートがひとつ必要になります。

データはパソコンから送信し、 受信データもパソコン側で表示したいので、 そのためにもシリアルポートが必要になり、 合計で二つのシリアルポートがいることになります。

幸いOAKS-miniは安価な割りにシリアルが2ポートあるのでこれを使うことにしました。

シリアル0をAX-12用に、シリアル1をパソコンとの通信に使います。

AX-12はTTLレベルですので、つながっているHJP3と4をそれぞれ切断し、 CN1-23とCN1-24に短絡させました。

AX-12は3ピンしかなく、

正式なAX-12の接続方法

というふうにつなぐらしいのですが、ICがなかったので、

簡易なAX-12の接続方法

という接続の仕方を採用することにしました。 (BestTechnologyのホームページに載っていたものです。)

OAKS-mini基板

2006年05月02日(火)

掲示板1へ

AX-12

歩行に関する簡単な計算をしていたのですが、 途中でMicroMGの精度とか LBC(Little Burning Core:©宮田耕自氏)の性能とかが気になりだしました。

そこで次期モータとマイコンボードを物色中・・・

今のところコントローラは、 AT91SAM7S128マイコンボードSAM7S I/Oボード(TTL)、 モータはDynamixel AX-12で どの程度できるかやってみようと思っています。

本当はDynamixel DX-117が 欲しいんですよね・・・でも予算が・・・

KRS-4014HV ICS Red Versionは 値段的にも今使うことを考えても最も現実的。 しかし、しばらくモータは買えないことを考慮すると、機能的にいまひとつな気が・・・

FUTABAのモータは機能的には最も充実しているが、値段がわからないしトルク的にちょっと弱い気が・・・

モータについては、さらに魅力的な商品が出てくることを期待して・・・とりあえずAX-12をいじってみようかと・・・

もちろん、計算の続きのもやりますが・・・


Dynamixel AX-12は、 いくつか用意したのですが、 AT91SAM7S128マイコンボードSAM7S I/Oボード(TTL)は すぐには買えません(@@)/

そこでしばらくはOAKS-miniでAX-12を動かすことに挑戦してみたいと思います。

作業日記トップページへ

トップページへ

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送