<<目次へ
次へ>>
高速歩行->肩で息をする
/*
4足歩行ロボット 高速歩行->肩で息をする(four_s06.c)
2003/09/25(Thu)
*/
#include<3664.h>
#define MOTOR_NUM 12 /* モータの数 */
#define MOTION_HOME 2 /* ホームポジション */
#define MOTION_NUM00 4 /* モーション00のモーション数 */
#define MOTION_NUM01 2 /* モーション01のモーション数 */
#define MIN_P 600
#define PARA 20
/* パルスを MIN_P+PARA*データ で計算 */
unsigned char n=0; /* PWM出力時に足を指定するためのフラグ */
unsigned char motn=0; /* モーション指定用フラグ */
unsigned char ref=0; /* 繰り返し数カウント用 */
unsigned char exec=0; /* モーションをどこまで実行したかカウント */
unsigned char speed=0; /* どこまで補間したかカウント */
unsigned char motion_num=0; /* モーション数を格納 */
long nun=0; /* 何もしないためのカウンタ */
unsigned int grbm[MOTOR_NUM];
unsigned char st[MOTOR_NUM]={90,90,90,90,90,90,90,90,90,90,90,90};
/* 初期値 */
int rc_home[MOTOR_NUM][MOTION_HOME]={
{90,90},{150,150},{120,120},{90,90},{150,150},{120,120},
{90,90},{30,30},{60,60},{90,90},{30,30},{60,60}};
/* ホームポジション */
int rc00[MOTOR_NUM][MOTION_NUM00]={
{90,65,90,115},{120,150,150,150},{120,120,120,120},
{90,115,90,65},{150,150,120,150},{120,120,120,120},
{90,65,90,115},{30,30,60,30},{60,60,60,60},
{90,115,90,65},{60,30,30,30},{60,60,60,60}};
/* 歩く */
int rc01[MOTOR_NUM][MOTION_NUM01]={
{90,90},{150,130},{120,140},{90,90},{150,130},{120,140},
{90,90},{30,50},{60,40},{90,90},{30,50},{60,40}};
/* 肩で息をする */
unsigned char speed_home[MOTION_HOME]={3,3};
unsigned char speed_d00[MOTION_NUM00]={3,3,3,3};
unsigned char speed_d01[MOTION_NUM01]={6,6};
/* 1動作で何回割り込みをするか */
unsigned char exec_d[4]={2,4,2,2};
/* モーションをどこまで実行するか(データ数で) */
unsigned char ref_d[4]={10,20,5,10};
/* モーションを何回繰り返すか */
高速歩行