わがロボットの譜

千葉工業大学、総合工学研究会所属の者です。とりあえず、二足歩行ロボット作成日誌です。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

クリスマスといえば

はい、そうですケーキです。
ケーキといえばショートケーキです。
ショートケーキといえばいちごです。

まぁ、何が言いたいかというと、今日は苺サーボに関して書きます。


苺サーボは、知能ロボコンのマシンに使っていましたが…
とにかく、寿命が短すぎます…


そば(腐った苺添え)

イベント数日前の死んだサーボ達…
下は、組んでいたやつの夜食です。。
まぁ、サーボ代は自分は持ってなかったので問題なかったのですが…


電流制御がされてないのではないだろうか…
シリアルサーボなのに電流見るコマンドないし…
とにかく、モーションをミスしたら確実に死亡、たまにマシンが壁にぶつかるだけでも死んだり…


そして次に問題なのはサーボが開けられないところ、、、
何が問題で動かなくなったのかわからないです。。



さ、明日も大会です。
大会に出るとマシンの完成度の低さが…・
特にモーション関連とか。。

スポンサーサイト

PageTop

チタンギヤ損傷

ちまちまとマイコンの勉強してます。ROMとかスタックがなんとかとか…
知らないことが多すぎて大変です。。

ここからは書いてたけどあげ忘れてた記事です。

チタンギヤはサーボに使われているギヤの中では最良のものとは思いますが、
やっぱり限度ってものがあります。

大学祭で気づいたら壊れていたので何があったのかはわかりませんが、右足の一番上のピッチは分解してみると、
かなり重症でした。

チタンギヤ…

こんな感じにファイナルが欠けてました。あと、初段も…

そしてシャフトも…

シャフト…

ファイナルの欠けた部分はセミファイナルににはまっていて、結局ギヤはほとんどダメに…


まぁ、過去に70cmぐらいの高さから落っこちたりしてるのでかなり頑張ってくれた方だと思います。


とりあえず、モータが焼けたものと取り換えたので大丈夫なはず…


PageTop

汎用(?)ヘッダーファイル

http://blog-imgs-42.fc2.com/w/a/g/wagarobo/Hitec_servo.txt

ヘッダーファイルです。。

で、こんな風に使います

#include <7125.h>
#include "Hitec_servo.h"

void Init_7125(void)//初期化設定
{
  /*----------------ポートA-----------------*/
  PFC.PACRL1.BIT.PA0MD = 1;//PA0:001-RXD0入力
   PFC.PACRL1.BIT.PA1MD = 1;//PA1:001-TXD0出力
   PFC.PACRL3.BIT.PA8MD = 6;//PA8:110-RXD2入力
  PFC.PACRL3.BIT.PA9MD = 6;//PA9:110-TXD2出力
   /*----------------------------------------*/

   SetSRReg(0);//すべての割り込みを実行可能に
}

int main(void)
{
  Init_servo();
   Init_7125();
  servo_all_home();
   while(1){
  /*モーション呼び出し等*/
   }
}

こうやって書いてみると、ポートの設定もヘッダーファイルに移した方がいいなとか、
シリアルは使用用途決まってるから、初期値でいいところは上書きしないほうがすっきりするとか思います。
客観的に見ることは大切ですね。。

受信をやろうとして、後付けのNOT回路のせいで出来ないことに気づく…。
早く新しい基盤を作らなければ。。

PageTop

Hitecサーボ用ヘッダーファイル

8498が角度指令命令で動くのは確認しましたが、他のサーボで他の命令が動くかの自信はない…。

とりあえず、コア部の角度指令を…。

#define Header 0
#define Command 1
#define Param1 2
#define Param2 3
#define Checksum 4
#define Return1 5
#define Return2 6

unsigned char signal[26][7],temp[7];//シリアルサーボ送信用
unsigned int home[26]; //初期位置決定

void servo_angle(unsigned int id, int deg)//サーボ角度指令関数
{
      unsigned int angle;
      angle = home[id] + deg;
      signal[id][command] = id;
      signal[id][Param1] = angle >> 8;
      signal[id][Param2] = 0xff & angle;
       signal[id][Checksum] = (256-(0x80+id+signal[id][Param1]+signal[id][Param2])%256)%256;
       SCI0_OUT_STRINGB (signal[id], 7);
       SCI2_OUT_STRINGB (signal[id], 7);
}

こんな感じです。
完璧に一部抜粋なので、いろいろ足りてませんが、雰囲気はこんな感じです。
汎用化のために思い切ってシリアル2つに送信してみた…。
まぁ、自分で使うときは直しますが。。

とりあえず、ちゃんと全部の関数書いたらそのうち上げる予定。
目標月曜日。
今日は、RAPIDの使い方書いたり、PhysXやってたら進まなかった…。

6/26 プログラムがひどく違ってたので修正…。。

PageTop

通信速度・・・・・・。

Hitecのサーボ1つ動かすのにかかる時間を計算してみた。
19200bps,1Byte = 8bit,startに1bit、stopに2ビットが7Byte分必要なので
1/19200*11*7 = 約4m秒・・・・

PWMだと一番ON時間長いときで2400μ = 2.4m秒。。

お、遅い・・・・・・・。
まぁ、まだシリアル通信をするメリットがないわけではないので一応やりますが、、、


それと昨日の回路の話、普通にRXDをつなぐ位置を変えればいいだけですね。。


とりあえず、明日にはプログラムできるかな……

PageTop
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。