文档库 最新最全的文档下载
当前位置:文档库 › 创意之星模块化机器人实验程序

创意之星模块化机器人实验程序

创意之星模块化机器人实验程序
创意之星模块化机器人实验程序

第一次实验:MultiFLEX控制卡编程实验

蜂鸣器实验

#include

#define BEEP_ON PORTG |= _BV(PG3) #define BEEP_OFF PORTG &= ~_BV(PG3) int main(void)

{

inti,j;

PORTG = 0;

DDRG = 0xff;

while(1)

{

for(i=0;i<0xFF;i++)

{for(j=0;j<0xFF;j++);}

BEEP_ON;

for(i=0;i<0xFF;i++)

{for(j=0;j<0xFF;j++);}

BEEP_OFF;

}

}

IO口控制实验

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 io_in;

uint8 io_out;

uint8 temp8;

uint16 temp16;

gpio_mode_set(0x00FF);

write_gpio(0xFF00);

while(1)

{

temp16 = read_gpio();

io_in = (uint8)(temp16>>8);

temp8=(io_in&0x80);

if(temp8==0)

{

io_out=0x01;

while(io_out)

{

write_gpio(~((uint16)io_out));

delay(5);//延时5×20MS=0.1s

io_out<<=1;

write_gpio(~((uint16)io_out));

delay(5);

}

}

else write_gpio(0xFF00);

}

}

第二次实验:多自由度串联式机械手

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 array_rc[23]={0};//舵机控制数组长度为24,可控制12路舵机,舵机运动函数要求array_rc[偶数]为舵机目标角度值,array_rc[奇数]为舵机运动速度值

array_rc[0]=90; //舵机1,中位为0度(对应数值90),目标角度+20度。取值围0-180,超过此围程序会丢弃此数据

array_rc[1]=170;//舵机1,速度为170。取值围0-255,超过围程序会丢弃此数据

array_rc[2]=90;//舵机2目标角度设置

array_rc[3]=170;//舵机2转动速度设置

array_rc[4]=90+90;//舵机3

array_rc[5]=170;

rc_moto_control(array_rc);//将舵机运动信息交给舵机运动函数,实现舵机运动

delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间

array_rc[0]=90-90;

array_rc[1]=170;

array_rc[2]=90-90;

array_rc[3]=170;

array_rc[4]=90+90;

array_rc[5]=170;

rc_moto_control(array_rc);

delay(50);

array_rc[0]=90;

array_rc[1]=170;

array_rc[2]=90;

array_rc[3]=170;

array_rc[4]=90;

array_rc[5]=170;

rc_moto_control(array_rc);

delay(50);

array_rc[0]=90-90;

array_rc[1]=170;

array_rc[2]=90-90;

array_rc[3]=170;

array_rc[4]=90;

array_rc[5]=170;

rc_moto_control(array_rc);

delay(50);

}

第三次实验:简易四足机器人

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 array_rc[23]={0};//舵机控制数组长度为24,可控制12路舵机,舵机运动函数要求array_rc[偶数]为舵机目标角度值,array_rc[奇数]为舵机运动速度值

array_rc[0]=90+45; //舵机1,中位为0度(对应数值90),目标角度+20度。取值围0-180,超过此围程序会丢弃此数据

array_rc[1]=255;//舵机1,速度为170。取值围0-255,超过围程序会丢弃此数据

array_rc[2]=90-45;//舵机2目标角度设置

array_rc[3]=255;//舵机2转动速度设置

array_rc[4]=90-45;//舵机3

array_rc[5]=255;

array_rc[6]=90+45;//舵机4

array_rc[7]=255;

rc_moto_control(array_rc);//将舵机运动信息交给舵机运动函数,实现舵机运动

delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间

array_rc[0]=90;

array_rc[1]=255;

array_rc[2]=90;

array_rc[3]=255;

array_rc[4]=90;

array_rc[5]=255;

array_rc[6]=90;

array_rc[7]=255;

rc_moto_control(array_rc);

delay(50);

}

第四次实验:轮式机器人运动控制实验

走正方形:

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 array_dc[7]={0};//电机控制数组长度为8,可控制4路舵机,电机运动函数要求array_dc[偶数]为电机转动速度,array_rc[奇数]为电机转动时间

array_dc[0] = 0; //电机1,正转最大速度(0为正转最大转速,

0xFE=254为反转最大转速,0x80=128代表电机停止)。围为0-254,超过此围程序会丢弃此数据

array_dc[1] = 10; //电机1,转动时间30×0.1=3秒。围为0-255,超过此围程序会丢弃此数据

array_dc[2] = 0;//电机2,反转最大速度

array_dc[3] = 10;

array_dc[4] = 0;//电机3,正转最大速度

array_dc[5] = 10;

array_dc[6] = 0;//电机4,反转最大速度

array_dc[7] = 10;

dc_moto_control(array_dc);//调用直流电机运动控制函数

dc_moto_control(),参数为电机控制数组名

delay(150);//给电机反应时间150×20MS=3s,此反应时间应不小于电机实际运动时间

array_dc[0] = 0;

array_dc[1] = 60;

array_dc[2] = 0xFE;

array_dc[3] = 60;

array_dc[4] = 0xFE;

array_dc[5] = 60;

array_dc[6] = 0;

array_dc[7] = 60;

dc_moto_control(array_dc);

delay(150);

}

走“8”字形:

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 array_dc[7]={0};//电机控制数组长度为8,可控制4路舵机,电机运动函数要求array_dc[偶数]为电机转动速度,array_rc[奇数]为电机转动时间

uint8i;

for (i=0;i < 3;i++)

{

array_dc[0] = 0;

array_dc[1] = 60;

array_dc[2] = 0xFE;

array_dc[3] = 60;

array_dc[4] = 0xFE;

array_dc[5] = 60;

array_dc[6] = 0;

array_dc[7] = 60;

dc_moto_control(array_dc);

delay(150);

array_dc[0] = 0;

array_dc[1] = 10;

array_dc[2] = 0;

array_dc[3] = 10;

array_dc[4] = 0;

array_dc[5] = 10;

array_dc[7] = 10;

dc_moto_control(array_dc);

delay(150);//给电机反应时间150×20MS=3s,此反应时间应不小于电机实际运动时间

}

array_dc[0] = 0;

array_dc[1] = 60;

array_dc[2] = 0xFE;

array_dc[3] = 60;

array_dc[4] = 0xFE;

array_dc[5] = 60;

array_dc[6] = 0;

array_dc[7] = 60;

dc_moto_control(array_dc);

delay(150);

array_dc[0] = 0xFE;

array_dc[1] = 10;

array_dc[2] = 0xFE;

array_dc[3] = 10;

array_dc[4] = 0xFE;

array_dc[5] = 10;

array_dc[7] = 10;

dc_moto_control(array_dc); delay(150);

for (i=0;i < 3;i++)

{

array_dc[0] = 0;

array_dc[1] = 60;

array_dc[2] = 0xFE;

array_dc[3] = 60;

array_dc[4] = 0xFE;

array_dc[5] = 60;

array_dc[6] = 0;

array_dc[7] = 60;

dc_moto_control(array_dc);

delay(150);

array_dc[0] = 0xFE;

array_dc[1] = 10;

array_dc[2] = 0xFE;

array_dc[3] = 10;

array_dc[4] = 0xFE;

array_dc[5] = 10;

array_dc[6] = 0xFE;

array_dc[7] = 10;

dc_moto_control(array_dc);

delay(150);

}

array_dc[0] = 0;

array_dc[1] = 60;

array_dc[2] = 0xFE;

array_dc[3] = 60;

array_dc[4] = 0xFE;

array_dc[5] = 60;

array_dc[6] = 0;

array_dc[7] = 60;

dc_moto_control(array_dc); delay(150);

array_dc[0] = 0;

array_dc[1] = 10;

array_dc[2] = 0;

array_dc[3] = 10;

array_dc[4] = 0;

array_dc[5] = 10;

array_dc[6] = 0;

array_dc[7] = 10;

dc_moto_control(array_dc);

delay(150);

}

第五次实验:机器人传感系统实验

实验程序1:

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 AD0_in;

uint8 rc_array[23]={0};

uint16 temp;

uint8i;

for(i=0; i<24; i=i+2)

{

rc_array[i]=90;

rc_array[i+1]=128;

}

while(1)

{

ADC_Read(0,&AD0_in);

temp=((uint16)AD0_in*180)/255;

rc_array[0]=(uint8)temp;

rc_array[1]=80;

rc_moto_control(rc_array);

delay(25);

}

}

实验程序2:

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 AD0_in;

uint8 rc_array[23]={0};

uint8 i=0;

while(1)

{

ADC_Read(0,&AD0_in);

rc_array[0]=i*180;

rc_array[1]=AD0_in;

rc_moto_control(rc_array);

delay(25);

i++;

if(i>1) i=0;

}

}

实验程序3:

#include "Public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 AD0_in,AD1_in,AD2_in,AD3_in;

uint8 rc_array[23]={0};

while(1)

{

ADC_Read(0,&AD0_in);

ADC_Read(1,&AD1_in);

ADC_Read(2,&AD2_in);

ADC_Read(3,&AD3_in);

rc_array[0]=(uint8)((uint16)AD0_in*180)/255;

rc_array[1]=100;

rc_array[2]=(uint8)((uint16)AD1_in*180)/255;

rc_array[3]=100;

rc_array[4]=(uint8)((uint16)AD2_in*180)/255;

rc_array[5]=100;

rc_array[6]=(uint8)((uint16)AD3_in*180)/255;

rc_array[7]=100;

rc_moto_control(rc_array);

delay(25);

}

}

第六次实验:自主避障机器人实验

#include "public.h"

#include "Usertask.h"

void user_task(void)

{

uint8 array_dc[7]={0};//电机控制数组,格式参考实验指导书

uint8 array_rc[23]={0};//舵机控制数组,格式参考实验指导书

uint16 temp16;

gpio_mode_set(0); //设置16位IO模式全为输入

temp16 = read_gpio();//读取16位IO信息至temp16

if((temp16 & 0x0003)==3) //IO0、1均为高电平时(红外传感器检测到没有障碍时为输出高)电机转动5秒

{

array_dc[0] = 0; //电机1,正转最大速度(0为正转最大转速,

0xFE=254为反转最大转速,0x80=128代表电机停止)。围为0-254,超过此围程序会丢弃此数据

array_dc[1] = 50; //电机1,50×0.1秒转动时间。围为0-255,超过此围程序会丢弃此数据

array_dc[2] = 0xFE;//电机2

array_dc[3] = 50;

array_dc[4] = 0;//电机3

array_dc[5] = 50;

array_dc[6] = 0xFE;//电机4

array_dc[7] = 50;

dc_moto_control(array_dc);

}

else if(((temp16&0x0003)==2)||((temp16&0x0003)==0)) //IO0为低电

平(右红外传感器检测到障碍)或者IO0、IO1均为低电平(两个传感器都检测到障碍)电机左转,蜂鸣器发声

{

beep_set(5); //蜂鸣器发声0.5秒

//以最高速度后退

array_dc[0] = 0xFE;

array_dc[1] = 5;//0.5秒

array_dc[2] = 0;

array_dc[3] = 5;

array_dc[4] = 0xFE;

array_dc[5] = 5;

array_dc[6] = 0;

array_dc[7] = 5;

dc_moto_control(array_dc);

delay(30);//给电机反应时间30×20MS=0.6s,此反应时间应大于电机实际运动时间

//机器人转向

array_rc[0]=90-20; //舵机1,中位为0度(对应数值90),目标角度+20度。取值围0-180,超过此围程序会丢弃此数据

array_rc[1]=170;//舵机1,速度为170。取值围0-255,超过此围程序会丢弃此数据

array_rc[2]=90+20;//舵机2目标角度设置

array_rc[3]=170;//舵机2转动速度设置

array_rc[4]=90+20;//舵机3

array_rc[5]=170;

array_rc[6]=90-20;//舵机4

array_rc[7]=170;

rc_moto_control(array_rc);

delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间

array_dc[0] = 254; //电机速度为+55

array_dc[1] = 10;

array_dc[2] = 254;

array_dc[3] = 10;

array_dc[4] = 254;

array_dc[5] = 10;

array_dc[6] = 254;

array_dc[7] = 10;

dc_moto_control(array_dc);

delay(50); //延时50*20MS= 1S

//机器人恢复直线运动

array_rc[0]=90;

array_rc[1]=170;

array_rc[3]=170;

array_rc[4]=90;

array_rc[5]=170;

array_rc[6]=90;

array_rc[7]=170;

rc_moto_control(array_rc);

delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间

}

else //GPIO0低电平(右侧红外传感器检测到障碍)电机左转,蜂鸣器发声

{

beep_set(5); //蜂鸣器发声0.5秒

array_dc[0] = 0xFE;//后退0.5秒

array_dc[1] = 5;

array_dc[2] = 0;

array_dc[3] = 5;

array_dc[4] = 0xFE;

array_dc[5] = 5;

array_dc[6] = 0;

dc_moto_control(array_dc);

delay(30);//给电机反应时间30×20MS=0.6s

array_rc[0]=90-20; //舵机1,中位为0度(对应数值90),目标角度+20度。取值围0-180,超过此围程序会丢弃此数据

array_rc[1]=170;//舵机1,速度为170。取值围0-255,超过此围程序会丢弃此数据

array_rc[2]=90+20;//舵机2目标角度设置

array_rc[3]=170;//舵机2转动速度设置

array_rc[4]=90+20;//舵机3

array_rc[5]=170;

array_rc[6]=90-20;//舵机4

array_rc[7]=170;

rc_moto_control(array_rc);

delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间

array_dc[0] = 0; //电机速度为+55

array_dc[1] = 10;

array_dc[2] = 0;

array_dc[3] = 10;

array_dc[4] = 0;

array_dc[5] = 10;

C语言用函数实现模块化程序设计

第7章用函数实现模块化程序设计 习题与思考 2.在C语言中,函数的隐含存储类别是_____A_____. A)auto B)static C)extern D)无存储类别 要点分析:本习题考察变量的存储类别。C语言规定,如不指定变量的存储类别,系统默认为自动类型的,即auto型。 3.以下所列的各函数首部中,正确的是_____C_____. A)void play(var:Integer,var b:Integer) B)void play(int a,b) C)void play(int a,int b) D)Sub play(a as integer,b as integer) 要点分析:本习题考察函数的定义。要求函数首部的各个形式参数应分别指出其数据类型。 4.以下程序的输出结果是_____C_____. fun(int x,int y,int z) { z=x*x+y*y;} void main( ) { int a=31; fun(5,2,a); printf("%d",a);} A)0 B)29 C)31 D)无定值要点分析:本习题考察形参和实参的关系。函数一旦发生传值调用,把实参的值传递给形参后,实参的值仍保留原值。 5.以下程序的输出结果是_____A_____. f( int b[ ],int m, int n ) { int i,s=0; for(i=m;i

return s; } void main( ) { int x,a[ ]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A) 10 B) 18 C) 8 D) 15 要点分析:本习题考察数组做函数的参数,此时实参为数组名,形参数组不再重新分配存储空间,形参数组共占实参数组所在的存储空间。数组做函数参数是学生出错误比较多的知识点。 7.以下程序的输出结果是_____D_____. int f( ) { static int i=0; int s=1; s+=i;i++; return s;} void main( ) { int i,a=0; for(i=0;i<5;i++)a+=f(); printf("%d\n",a); } A) 20 B) 24 C) 25 D) 15 要点分析:本习题考察静态局部变量。静态局部变量的值在调用结束后仍保持结束后的值。静态局部变量是变量的存储类别的重点,学生应该掌握并应用。 8. 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+=i*f; f= _____-f_____ ; } return m; } void main( ) { printf("m=%d\n", _____fun(10)_____ ); } 要点分析:本习题考察函数的调用。通过编写fun函数求得累加和。

模块化设计方法及其在机械设计中的应用

模块化设计方法及其在机械设计中的应用 摘要:随着社会经济的发展,为了提高企业生产效率,模块化设计理念在机械设计领域日益广泛,其对于整合市场、优化结构具有重要意义。我们要树立创新意识,加强其在机械设计中的研究运用,实现模块化的转变。 关键词:模块化;设计方法;机械设计 随着技术的发展和经验的总结,在机械设计中,越来越多的设计方相继出现,并逐渐得到广泛的运用。在实际工作中传统的机械包装方法的弊端日益显现,越来越多不适应机械设计的需要,而模块化设计方法逐渐得到广泛的运用。 1 机械产品模块化涵义 模块化就是以它的观点去对产品或者系统进行策划和生产方案,在某个限度内的一样或者存在差异的功能、相异规格的产品探究讨论,区分并设计。机械产品的模块化主要可从以下几方面进行分析: (1)功能需求集,指的是市场和客户对模块化产品基本功能要求的合集。产品的功能需求是进行产品模块化的重要内容,是产品发展的重要方向。 (2)功能模块,强调的为产品里所能够充分发挥其性能因素的作用. (3)结构模块,指的是功能模块的具体结构,一般由部件或子结构模块组成。 (4)模块接口,指的是描述结构模块组合时相互间的几何、物理关系的结合面,模块接口是模块组合的重要依据。 (5)基础模块,通用型接口模块,能够满足基本功能,而得以实现的定向模块功能演进的模块形式。 2 模块化设计 2.1 模块划分标准 为了让人们对模块化设计方法在机械设计中运用有更为详细的了解,对模块化的设计进行划分,在数控立式车床设计中,运用模块化设计方法,其中最为关键的内容是进行功能与结构分析,这是决定设计效果的关键内容。因此,设计开始前,要对模块进行处理,详细划分模块。当前,还没有任何一种标准可以作为模块划分原则。这里,依据不同侧重点,对不同模块进行划分。模块具有独立性,

机器人创新设计作品说明材料

机器人创新设计作品说明材料学校名称:景德镇高等专科学校 作品名称:探索者机器人创新设计 作品设计成员: 作品设计时间:二零一二年十月十九日

摘要 本文主要介绍了一个基于ARM7 LPC2138,32 位的高性能主控芯片控制的探索者机器人的创新设计,该设计包括C语言编程,声控、振动、触碰、光强、闪动、黑标、白标、近红外等多种传感控制,图形化编程及便携式编程三种编程模式,能满足任何软件水平的用户实现简单或复杂的自动化控制程序及其他功能实现。 在设计中,详细的展现了探索者机器人的各个功能模块、传感器的属性功能工作状况。最后,实现整个实验功能创新设计。

目录 摘要 (1) 第一章引言 (1) 1.1 探索者机器人创新设计概 述 (2) 1.2 探索者机器人创新设计特点 (2) 1.3 探索者机器人创新设计目的 (3) 1.4 探索者机器人创新设计意义和前景 (4) 第二章、主控板 (5) 第三章、红外接收头 (5) 第四章、语音模块 (5) 第五章、LED 模块 (6) 第六章、舵机 (6) 第七章、传感器 (7) 7.1 黑标/白标传感器 (8) 7.2 近红外传感器 (8) 7.3 姿态传感器 (9) 7.4 闪动传感器 (9) 7.5 声控传感器 (10) 7.6 触碰传感器 (10) 7.7 振动传感器 (11) 7.8 触须传感器 (11) 7.9 光强传感器 (11) 第八章、编程手柄说明 (12) 第九章、C 语言编程基础指南 (13) 9.1 安装编程环境 (13) 9.2 第一个ARM 软件 (18) 9.3 烧写程序 (21) 9.4 ARM 主控板端口列表 (22) 9.5 库函数 (24) lib_io.c………………………………….…………………….………… 24

模块化程序设计练习题及答案

第四章模块化程序设计练习题及参考答案 一、填空题 1、以下程序的运行结果是(111),把x定义为静态变量运行结果是(123)。void increment(void) { int x=0; x+=1; printf("%d",x);} main() { increment(); increment(); increment(); } 2、若输入的值是-125,以下程序的运行结果是(-125=-5*5*5) #include "" main() { int n; void f(int n); scanf("%d",&n); printf("%d=",n); if(n<0) printf("-"); n=fabs(n); fun(n); } void fun(int n) { int k,r; for(k=2;k<=sqrt(n);k++) { r=n%k; while(r==0) { printf("%d",k); n=n/k; if(n>1)printf("*"); r=n%k; } } if(n!=1) printf("%d\n",n); } 3、设有以下宏定义: #define WIDTH 80 #define LENGTH WIDTH+40 则执行赋值语句:v=LENGTH*20;(v为int型)后,v的值是(880) 4、设有以下宏定义: #define WIDTH 80 #define LENGTH (WIDTH+40)

则执行赋值语句:k=LENGTH*20;(k为int型变量)后,k的值是(2400) 5、下面程序的运行结果是(5) #define DOUBLE(r) r*r main() { int x=1,y=2,t; t=DOUBLE(x+y); printf("%d\n",t);} 6、下面程序的运行结果是(36) #define MUL(z) (z)*(z) main() { printf("%d\n",MUL(1+2)+3); } 7、下面程序的运行结果是(212) #define POWER(x) ((x)*(x)) main() { int i=1; while(i<=4) printf("%d,",POWER(i++)); } 8、下面程序的运行结果是(9) #define MAX(a,b) (a>ba:b)+1 main() { int i=6,j=8,k; printf("%d\n",MAX(i,j)); } 二、选择题 1、以下正确的说法是(D)建立自定义函数的目的之一是: A)提高程序的执行效率 B)提高程序的可读性 C)减少程序的篇幅 D)减少程序文件所占内存 2、以下正确的说法是(B) A)用户若需调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,若如此,该函数将失原有含义。 C)系统根本不允许用户重新定义标准库函数。 D)用户若需调用标准函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调用。 3、以下正确的函数定义形式是(C) A)double fun(int x,int y) B)double fun(int x;int y) C)double fun(int x,int y); D)double fun(int x,y) 4、以下正确的说法是(D)。在C语言中: A)实参与其对应的形参各占用独立的存储单元。 B)实参和与其对应的形参共占用一个存储单元。 C)只用当实参和与其对应的形参同名时才共占用存储单元。

创意之星模块化机器人实验程序

第一次实验:MultiFLEX控制卡编程实验 蜂鸣器实验 #include #define BEEP_ON PORTG |= _BV(PG3) #define BEEP_OFF PORTG &= ~_BV(PG3) int main(void) { inti,j; PORTG = 0; DDRG = 0xff; while(1) { for(i=0;i<0xFF;i++) {for(j=0;j<0xFF;j++);} BEEP_ON; for(i=0;i<0xFF;i++) {for(j=0;j<0xFF;j++);} BEEP_OFF; } } IO口控制实验 #include "Public.h" #include "Usertask.h" void user_task(void) { uint8 io_in; uint8 io_out; uint8 temp8; uint16 temp16; gpio_mode_set(0x00FF); write_gpio(0xFF00); while(1) { temp16 = read_gpio(); io_in = (uint8)(temp16>>8); temp8=(io_in&0x80); if(temp8==0) { io_out=0x01; while(io_out)

{ write_gpio(~((uint16)io_out)); delay(5);//延时5×20MS=0.1s io_out<<=1; write_gpio(~((uint16)io_out)); delay(5); } } else write_gpio(0xFF00); } } 第二次实验:多自由度串联式机械手 #include "Public.h" #include "Usertask.h" void u ser_task(void) { uint8 array_rc[23]={0};//舵机控制数组长度为24,可控制12路舵机,舵机运动函数要求array_rc[偶数]为舵机目标角度值,array_rc[奇数]为舵机运动速度值 array_rc[0]=90; //舵机1,中位为0度(对应数值90),目标角度+20度。取值范围0-180,超过此范围程序会丢弃此数据 array_rc[1]=170;//舵机1,速度为170。取值范围0-255,超过范围程序会丢弃此数据 array_rc[2]=90;//舵机2目标角度设置 array_rc[3]=170;//舵机2转动速度设置 array_rc[4]=90+90;//舵机3 array_rc[5]=170; rc_moto_control(array_rc);//将舵机运动信息交给舵机运动函数,实现舵机运动 delay(50);//延时50*20MS= 1S,给舵机提供反应时间,此反应时间应大于舵机实际运动所需时间 array_rc[0]=90-90; array_rc[1]=170; array_rc[2]=90-90; array_rc[3]=170; array_rc[4]=90+90; array_rc[5]=170; rc_moto_control(array_rc); delay(50); array_rc[0]=90; array_rc[1]=170; array_rc[2]=90;

产品模块化设计

当今制造业企业一方面必须利用产品的批量化、标准化和通用化来缩短上市周期、降低产品成本、提高产品质量,另一方面还要不断地进行产品创新使产品越来越个性化,满足客户的定制需求。这样,如何平衡产品的标准化、通用化与定制化、柔性化之间的矛盾,成为赢得竞争的关键能力。平台化、模块化的产品设计和生产可以在保持产品较高通用性的同时提供产品的多样化配置,因此平台化、模块化的产品是解决定制化生产和批量化生产这对矛盾的一条出路。 以下总结了推行模块设计过程需要关注的要点: 1 产品模块化设计各个部门远景目标: 1)产品开发:产品开发过程分解为平台开发和产品开发过程,专门的团队进行平台的设计和优化,新产品的开发由平台通过 变量配置实现; 2)产品制造:产品制造部门按照产品平台分配产线和装配资源; 3)供应链管理:实现零库存,根据模块的要求选择能够承接模块设计和开发的供应商; 4)市场部门:实现按订单制定产品开发和制造计划。 2 模块化实施过程: 1)产品系列平台划分,采用“产品型号组方法”则是对整个目标 市场划分所进行的全部变型型号的规划和开发。新产品规划要

定义一组变型型号。配置应当与市场定位关联,其实际定义应 当与产品性能的部分关联,并体现出不同变型型号之间的差异。 2)产品模块划分,可以采用MFD方法进行模块划分,步骤包括: a 定义客户需求,利用卡诺模型区分客户需求与满意度关 系、使用QFD方法定义客户需求与产品性能的对应关系; b 选择技术方法,定义产品功能树,使用波氏方法选择 技术方法;使用DPM矩阵描述技术方法与产品性能的对 应关系; c 产生模块概念,定义模块驱动与技术解决方案的对应关 系,最理想的模块技术解决方法是可以自己组合成一个模 块,至少可以作为一个模块的基础; 不够优化的技术解决 方法应该和其他技术解决方法整合在一起组成模块。 d 评估模块概念,定义模块接口,优化模块接口。 e 模块优化,创建模块规格说明,进行模块优化,进行 经济和技术上的评价。 3)选项变量定义;在一个平台上定义许可的选项/选项集,定义选项之间的关系和约束。 3 模块化设计考核指标 1)部署通用产品结构的型号组/ 全部型号组; 2)通用模块实例/ 全部的模块实例; 3)CAD/PDM系统中零部件族的利用率;

实验七 用函数实现模块化程序设计

河南工业大学C语言实验报告 专业班级:生物11级1班学号:201112910118姓名:l刘路路指导老师:朱红莉评分: 实验题目:用函数实现模块化程序设计 实验目的:熟练掌握函数的定义、调用、声明 实验内容:P218-219 习题1、2、4 实验步骤:(具体程序及运行结果) 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 #include int main() {int hcf(int,int); int lcd(int,int,int); int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); return 0; } int hcf(int u,int v) {int t,r; if (v>u) {t=u;u=v;v=t;} while ((r=u%v)!=0) {u=v; v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } 7.3写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息。 #include int main() {int prime(int); int n; printf("input an integer:"); scanf("%d",&n);

if (prime(n)) printf("%d is a prime.\n",n); else printf("%d is not a prime.\n",n); return 0; } int prime(int n) {int flag=1,i; for (i=2;i #define N 3 int array[N][N]; int main() { void convert(int array[][3]); int i,j; printf("input array:\n"); for (i=0;i

创意之星之四足机器人

大学 专业实践课题:四足追光机器人 姓名: 学院:机械工程学院 专业:机械设计制造及其自动化 班级: 学号: 指导教师:

四足追光机器人 一、实验目的 用“创意之星”机器人套件组装可以进行追光行走的四足机器人; 二、实验套件(创意之星) 1.机械结构:基本结构件、舵机动力关节、可转向轮子、机械爪等; 2.控制系统:控制卡、舵机、直流电机、各类传感器、电源等; 3.控制软件:NorthSTAR 图形化开发环境 三、实验步骤 1、确定其基本功能 基本功能: a.在平地上通过步态设计,可以正常迈步行走。同时头部传感器检测前方光源,便于及时调整运行动作,追光行走。 b.当左侧红外线传感器检测到光源强于右侧红外线传感器检测到的光源时,机器人运行步态会改变,控制机器人左转。右侧的光源强于左侧的光源时用同样的原理控制机器人右转。 c.当两侧均检测到光源亮度相等时,调整步态,追光机器人会向前走。直至检测不到光源停止,再控制向后退。

2、机构设计 整个巡视机器人由大致三个模块组成: a.由8个舵机组成四足机器人的4条腿模块; b.由2个舵机组成四足机器人尾部部分; c.由2个红外接近传感器和1个舵机组成的感应模块。 3、机构的装配 整个四足避障机器人由1个控制板,1个舵机和两个红外接近传感器组成可转动头部,8个舵机组成主要的4条机械腿,由两个舵机构成尾部部分。整个四足机器人共由11个舵机、两个红外接近传感器及“创意之星”机器人零部件组成。 安装可分为零件的安装,部件的组装以及最后的总装过程。根据预先设计好的机器人结构方案,组装四条腿的部件、头部、尾部以及机器人主体部分,最后组装到一块,形成完整的整体结构。 4、连接电线 由于我们此次使用的是创意之星的标准套件,舵机接线、传感器模拟与数字端口的连接都及其方便简单。 5、设置各个舵机的限制参数 一方面保护所使用器件的性能,防止过载或错误操作而将其损坏;另一方面

四足机器人方案设计书

浙江大学“海特杯”第十届大学生机械设计竞赛“四足机器人”设计方案书

“四足机器人”设计理论方案 自从人类发明机器人以来,各种各样的机器人日渐走入我们的生活。仿照生物的各种功能而发明的各种机器人越来越多。作为移动机器平台,步行机器人与轮式机器人相比较最大的优点就是步行机器人对行走路面的要求很低,它可以跨越障碍物,走过沙地、沼泽等特殊路面,用于工程探险勘测或军事侦察等人类无法完成的或危险的工作;也可开发成娱乐机器人玩具或家用服务机器人。四足机器人在整个步行机器中占有很大大比重,因此对仿生四足步行机器人的研究具有很重要的意义。 所以,我们在选择设计题目时,我们选择了“四足机器人”,作为我们这次比赛的参赛作品。 一.装置的原理方案构思和拟定: 随着社会的发展,现代的机器人趋于自动化、高效化、和人性化发展,具有高性能的机器人已经被人们运用在多种领域里。特别是它可以替代人类完成在一些危险领域里完成工作。 科技来源于生活,生活可以为科技注入强大的生命力,基于此,我们在构思机器人的时候想到了动物,在仔细观察了猫.狗等之后我们找到了制作我们机器人的灵感,为什么我们不可以学习小动物的走路呢,于是我们有了我们机器人行走原理的灵感。 为了使我们所设计的机器人在运动过程中体现出特种机器人的性能及其运动机构的全面性,我们在构思机器人的同时也为它设计了一些任务: 1. 自动寻找地上的目标物。 2. 用机械手拾起地上的目标物。 3.把目标物放入回收箱中。 4. 能爬斜坡。 图一 如图一中虚线所示的机器人的行走路线,机器人爬过斜坡后就开始搜寻目

标物体,当它发现目标出现在它的感应范围时,它将自动走向目标,同时由于相关的感应器帮助,它将自动走进障碍物中取出物体。 二.原理方案的实现和传动方案的设计: 机器人初步整体构思如上的图二和图三,四只腿分别各有一个电机控制它的转动,用一个电机驱动两条腿的抬伸。根据每只腿的迈步先后实现机器人的前进,后退,左转和右转,在机器人腿迈出的同时,它也会相应地进行抬伸,具体实现情况会在下文详细说明。 图二 图三 机器人初步整体构思如上的图二和图三,四只腿分别各有一个电机控制它的转动,用一个电机驱动两条腿的抬伸。根据每只腿的迈步先后实现机器人的前进,后退,左转和右转,在机器人腿迈出的同时,它也会相应地进行抬伸,具体实现情况会在下文详细说明。 任务的实现主要是利用单片机来控制机器人的四条腿以及几个传感器的共同工作,并通过它们的协调工作来完成的。如图一中所示,让机器人爬过了斜坡之后,就先进行扫描,如果发现有目标出现在它的视野之内,它就会寻着目标前进。如果没有发现目标,机器人会原地转弯并搜寻在它视野之外的目标。由于目标物有可能正好被障碍物遮住,此时我们会设计相应的程序告诉机器人现在先向右行走一定的距离再进行扫描。又由于尽管已经扫描到了目标物,当机器人走向

汇编语言实验报告 模块化程序设计

汇编语言实验报告 Assembly Language Programming Lab Reports ______________________________________________________________________________ 班级:姓名:学号:实验日期: 学院:专业: 实验顺序:原创:___ 实验名称:模块化程序设计 实验分数:_______ 考评日期:________ 指导教师: ______________________________________________________________________________ 一.实验目的 1、掌握宏定义的相关内容。 (1)伪指令: MACRO,ENDM。 (2)掌握宏定义时的哑元,变元,&分割符的使用。变元可以是操作数,操作码,操作码的一部分和&联合使用,存储单元,字符串。 (3)掌握宏调用时的实元和宏的展开。 2.掌握宏运算 (1)&替换运算符 (2)<>传递运算符 (3)!转义运算符号 (4)%表达式运算符 (5);;宏注释符 3、其它宏功能 (1)宏标号LOCAL (2)宏删除purge (3)宏嵌套,宏展开中的数字1代表插入的程序是宏定义实体中的。宏嵌套在展开时里层被嵌套调用的宏会显示嵌套调用的层次,待验证。 (4)宏库的建立和调用 4、结构伪操作 (1)结构定义 结构名 STRUG 结构体 结构名 ENDS (2)结构预置 (3)结构引用 5、重复汇编和条件汇编。 6、多模块结构程序设计 (1)全局符号定义PUBLIC

(2)外部符号说明EXTRN (3)段属性与段组合 (4)参数传递 7、宏指令和子程序的区别 (1)工作方式的区别,在多次调用时,使用宏指令占用较大空间但速度较快。使用子程序占用空间小但执行时间长。 (2)参数传递的方便性。 (3)参数的多样性和灵活性,宏指令的实参数可以是常数,寄存器,内存变量,操作码或操作码的一部分,操作数的一部分等,子程序是不可以比拟的。 鉴于以上区别,编程时应该扬长避短地使用宏指令和子程序,通常宏指令被用在代码较短且参数较多的场合,子程序被用在代码较长的场合。 8、模块连接 (1)外部引用与全局符号说明 (2)使用公用数据段实现通信过程 段定义伪指令在定义组合类型时定义为COMMON类型,这样在连接时会把多个程序的同名数据段连接时重叠形成一个段,产生段覆盖。允许各模块使用不同的变量名,但是主模块和子模块的数据在定义这些变量上应当有对应的结构。 (3)使用寄存器或者堆栈实现过程通信。 ______________________________________________________________________________二.实验环境 操作系统:windows 8 编译程序:masm 5.0 ______________________________________________________________________________三.实验原理 1、宏库的建立和调用 2、多模块结构程序设计 _______________________________________________________________________ 四.实验步骤及结果分析 1、宏库的建立和调用 宏库的建立: ;8-1.mac input macro mov ah,01h int 21h endm output macro x mov dl,x

家用机器人设计开题报告

百度文库 大连大学 本科毕业论文(设计)开题报告 李洋流 论 文 题 目: 学 院: 专 业、 班 级: 学 生 姓 名: 基于博创创新平台的家用清洁机器人设计 机械工程学院 机械设计制造及自动化机英 092班 卫斌乐

2013年3月20日填 、选题依据 1 .论文(设计)题目: 基于博创创新平台的家用清洁机器人设计 2.研究领域: 单片机及传感器系统设计 3.论文(设计)工作的理论意义和应用价值 当代科学技术发展的特点之一就是机械技术,电子技术和信息技术的结合,机器人就是这种结合的产物之一。现代机器人都是由机械发展而来。与传统的机器的区别在于,机器人有计算机控制系统,因而有一定的智能,人类可以编制动作程序,使它们完成各种不同的动作。随着计算机技术和智能技术的发展,极大地促进了机器人研究水平的提高。现在机器人已成为一个庞大的家族,科学家们为了满足不同用途和不同环境下作业的需要,把机器人设计成不同的 结构和外形,以便让他们在特殊条件下出色地完成任务。机器人成了人类最忠实可靠的朋友,在生产建设和科研工作中发挥着越来越大的作用。 家庭清洁机器人不但能够代替人乏味的体力劳动,还有其他人们所不具备的优点,可以 24小时甚至更长时间连续重复运转,还可以承受各种恶劣环境。因此,家庭清洁机器人是人 体局部功能的延长和发展。21世纪是敏捷制造的时代,家庭清洁机器必将在敏捷制造系统中 应用广泛。 4?目前研究的概况和发展趋势 随着现代化生产技术的提高,机器人设计生产能力进一步得到加强,尤其当机器人的生产与柔性化制造系统和柔性制造单元相结合,从而改变目前机械制造的人工操作状态,提高了生产效率。就目前来看,总的来说现代机器人有以下几个发展趋势: 1)提高运动速度和运动精度,减少重量和占用空间,加速机器人功能部件的标准化和模块化,将机器人的各个机械模块、控制模块、检测模块组成结构不同的机器人; 2)开发各种新型结构用于不同类型的场合,如开发微动机构用以保证精度;开发多关节多 自由度的手臂和手指;开发各类行走机器人,以适应不同的场合; 3)研制各类传感器及检测元器件,如,触觉、视觉、听觉、味觉、和测距传感器等,用传感器获得工作 对象周围的外界环境信息、位置信息、状态信息以完成模式识别、状态检测。并采用专家系统进行问题求解、 动作规划,同时,越来越多的系统采用微机进行控制。 、论文(设计)研究的内容

“创意之星”模块化机器人实验指导书(实验版)

电子科技大学 “创意之星”模块化机 器人实验 机械电子工程学院 2010 年3 月

目录 实验一MULTIFLEX控制卡编程实验 (1) 实验二多自由度串联式机械手 (10) 实验三简易四足机器人 (15) 实验四轮式机器人运动控制实验 (19) 实验五机器人传感系统实验 (24) 实验六自主避障机器人实验 (27) 实验七追光的机器爬虫 (37) 实验八开放性实验:设计自己的机器人 (48)

实验一MultiFLEX 控制卡编程实验 实验目的 (1)了解MultiFLEX控制卡的基本结构; (2)了解WinAVR+AVRStudio编译环境的使用; (3)了解C 语言环境下编写控制程序,并编译、下载到MultiFLEX 控制器中执行的流程 (4)熟悉关于AVR 单片机的io 口有关的寄存器的概念、作用 (5)理解函数gpio_mode_set(),write_gpio(),read_gpio()的定义,掌握其用法 (6)熟悉并掌握利用2 中的3 个函数控制MultiFLEX 控制卡的16 路IO 口实验环境: UP-MRcommander 控制软件 实验器材: 计算机1台 MultiFLEX 控制卡1块 控制卡电源线1根 串口下载线1根 232电缆1根 USB转232电缆1根 舵机4个 舵机延长线4根 实验步骤 1 WinAVR 以及AVRStudio 软件的安装 首先大家打开实验指导书配套光盘,在“MultiFLEX 控制卡\AVR MCU 开发资料”目录下,打开“WinAVR”文件夹,双击 “WinAVR-20060421-install.exe”完成WinAVR 的安装;然后打开“AVR Studio”文件夹,根据文件夹里面的安装说明进行AVRstudio 的安装,并将其升级到最新版本。 注意:请先安装WinAVR 再安装AVRStudio,这样WinAVR 才能自动嵌入到AVRStudio 中。 2 用3AVRStudio 建立一个工程 首先打开我们刚刚安装好的AVRStudio,会出现如下窗口:

模块化产品设计的一些思考和体会-王志华

模块化产品设计的一些思考和体会 一、产品开发工作的挑战 在剧烈变动的3C时代(客户Customer、竞争Compete和变化Change),要想赢得竞争的胜利,企业必须通过优化整个产品开发来缩短产品上市时间、提高产品质量、降低成本,同时还要不断通过研发创新来满足客户的变化需求。技术的飞速进步,引起产品越来越复杂,随着客户对教学产品个性化需求程度的增加,也导致产品定制化趋势越来越明显,企业必须创建数量庞大的产品系列来满足学校不断变化的需求。随着现代科技的发展,模块化已成为工程产品的主要发展趋势之一,作为标准化的新形式,模块化被视为实现产品多样化的主要途径。 二、模块化产品设计概念 1、模块的历史来源 模块并不是一个新的概念,早在20世纪初期的建筑行业中,将建筑按照功能分成可以自由组合的建筑单元的概念就已经存在,这时的建筑模块强调在几何尺寸上可以实现连接和互换。然后,模块被引入机械制造业,人们进一步将模块与物理产品的功能联系到了一起,模块具有了明确的功能定义特征、几何连接接口,以及功能输入、输出接口特征。 2、现代模块化的诞生 模块的演变过程是从单纯的几何结构单元,发展到集成功能单元,又演变成为非物理实体的载体,如知识和软件等。 1965年之前,计算机都是整机制造的,当时的设计是相互依赖的,之所以这样是因为计算机系统太复杂了。在这种复杂性灾难之下,不可能像现在这样按照某种标准,遵照通用化原则,设计具有兼容性的可以实现工业化大生产的产品,使得计算机在当时非常昂贵。 比如1944年在美国国防部的资助下,由J.Presper Eckert Jr 和W.Mauchly领导的小组在宾夕法尼亚大学建造了一台名为ENIAC(电子数字积分计算机Electronic Numerical Integrator And Calculator)的计算机。生产完全是在试错过程中进行,应用完全是实验性的。 1945年当ENIACt投入使用之后,设计者累积的知识使他们明白了如何建造一台性能更好的机器。他们把想象中的机器命名为ENVAC,并把计算机系统界定为一种“组合式”制品。标明其关键组成部分是基本存储器、控制单元、运算“器官”、输入/输出和辅助存储器(IBM360电脑)。 随着计算机软件技术的发展,模块的概念又被用到了非物理产品领域,在软件行业模块的概念被广泛的实践着,大型的软件系统(比如PTC公司的Windchill系统)的模块化趋势越来越明显。 3、模块设计的案例 平台化、模块化的产品战略已经有很多成功的案例在世界很多的著名公司中应用。日本索尼公司在20世纪80年代仅利用4个基础平台的Walkman产品,生产出250余种录音机随身听。这250种随身听无论在价位、功能和款式上都有很大的区别,可以满足用户的各种不同需求,但是这4个基础平台却存在着大量的重用模块。 “平台”概念最早由大众集团提出并实践,并在PQ34平台上获得了巨大的成功。PQ24,PQ25,PQ34,PQ35,PQ46,PL45,PQ2,PQ3。 P*4等。大众现在基本上已经逐渐放弃平台的概念,而采取更抽象的“模

第十八届中国青少年机器人竞赛机器人创意比赛主题与规则

第十八届中国青少年机器人竞赛 机器人创意比赛主题与规则 1关于机器人创意比赛 机器人创意比赛是基于每年一度的中国青少年机器人竞赛的主题与规则,组织在校中小学生机器人爱好者,花费6 个月左右的时间,在课题导师或教练员的指导下,在学校、家庭、校外机器人工作室或科技实验室,以个人或小组的方式,进行机器人的创意、设计、编程与制作,最后提交机器人实体作品参加中国青少年机器人竞赛组委会举办的机器人创意比赛活动。 机器人创意比赛对于培养学生学习与综合运用机器人技术、电子信息技术、工程技术,激发创新思维潜能,提高综合设计和制作的能力,培养学生开展科学研究基本素质极为有益。 2主题 2.1主题简介 本届机器人创意比赛主题选定为“家庭服务机器人”,旨在促进青少年了解机器人技术在帮助人类家庭生活方面的作用,并使得同学们在探索机器人知识、技能的过程中树立终身学习的理念。 2.2示例 “家庭服务机器人”的选题相当宽泛,可谓多姿多彩,很适合作为中小学生机器人创意的主题。下面的三个机器人的创意仅仅是为了抛砖引玉,实际应用的机器人远不止这些。 送餐机器人 根据室内房间面积和楼层高度,来安装机器人视觉能识别的航标(此航标安装精度要求很高)。设定餐桌位置及转弯位置,由此形成机器人可识别的电子地图。根据此地图机器人形成自动记忆导航并沿着航标指引方向准确无误地到达餐桌完成送餐任务和返回原点!由于机器人的自动记忆导航功能、视觉校正功能,后台调度控制系统可调度多台机器人同时运行,任务优先,柔性化更好,路径最短,效率更高!语音报菜名及障碍物语音提示内容:可自行录制方言或特色语言,方便添加更改。

图1 送餐机器人 ●烹饪机器人 图2 烹饪机器人 在上海世博会的企业联合馆曾展出一种厨师机器人,它头戴厨师帽名叫“爱可”,这个厨师机器人高约2m,宽1.8m。拉开“爱可”肚子上的拉门,里面有特制的烹调设备,有锅,有自动喷油,喷水和搅拌设备,与之相连接的是一个智能化触摸屏,上面是系统控制界面,根据工作人员事先设定好的特级厨师菜谱,“爱可”一共可以独立烹调24 种中华美食。只要按照程序“下单”,头戴专业厨师帽的机器人便会像模像样地开始准备:将早以“定量”好的主料、配料和调料都放在一个专用盒子里;然后又将它们放入炒锅中,放上油、水,炒锅开始旋转,将食材充分搅拌,然后点火,炒锅不停翻转,就像人炒菜一样,大约三分钟后,一盘佳肴就做呈现在顾客面前。 烹饪机器人的市场前景还是非常的巨大的,随着人们生活水平的提高,再加上社会节奏的加快,为了给自己拥有更多的时间和空间,在中国,厨师机器人将会进入千家万户。 ●草坪修剪机器人

C语言 实验三 模块化程序设计

实验三模块化程序设计 (3学时) 【实验目的】 1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 2. 掌握字符数组和字符串函数的使用。 3. 掌握与数组有关的算法。 4. 掌握函数定义的方法。 5. 掌握函数实参与形参的传递方式。 6. 掌握函数的嵌套调用和递归调用的方法。 7. 了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。 【实验内容】 任务1 数组的基本定义与应用 1. 定义一个10个元素的int数组a,输入10个数,并输出。 参考程序: main() {int i,a[10]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); } 运行结果: 2. 寻找整数数组num中的最大值及其所在的下标。 参考程序:main() {int i,max,p,a[10]; printf("please enter 10 data:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); max=a[0];p=0; for(i=1;i<10;i++) 淮南师范学院电气信息工程学院 1

if(a[i]>max) {max=a[i];p=i;} printf("max is:%d\n",max); printf("point is:%d\n",p+1); } 运行结果: 3. 实现对n个数的数列从小到大排序。(比较交换法、选择法、冒泡法) 参考程序:冒泡法 #include main() {int i,j,n,a[100];int temp;clrscr(); printf("enter the number:\n"); scanf("%d",&n); for(i=0;ia[j+1]) {temp=a[j];a[j]=a[j+1];a[j+1]=temp;} printf("\n output the sorted array\n"); for(i=0;i

创意之星机器人说明书

创意之星机器人说明书

目录 1结构套件简介 (3) 1.1 结构件概述 (3) 1.2 ConnFLEX连接结构 (3) 1.3 不同版本......................................................................................................... .. (4) 1.4 使用零件3D模型 (6) 2控制器及电源 (7) 2.1 MultiFLEX?2-A VR控制器 (8) 2.2 MultiFLEX?2-PXA270控制器 (9) 2.3 电池和直流电源 (12) 3传感器 (12) 3.1传感器的信号类型及电气规范 (13) 3.2“创意之星”传感器接口 (14) 3.1接近传感器 ...................................................................................................... (16) 3.2 测距传感器 (19) 3.3 声音传感器 (24) 3.4 碰撞传感器 (26) 3.5 倾覆传感器 (26) 3.6 温度传感器 (27) 3.7 光强传感器 (27) 3.8 灰度传感器 (28) 3.9 视觉和语音传感器 (28) 4执行器 (29) 4.1 CDS5516机器人舵机 (29) 4.2 CDS5401大扭矩R/C舵机 (32) 4.3 BDMC1203电机驱动模块 (33) 4.4 Faulhaber大功率减速电机 (34) 5 NorthSTAR 图形化开发环境 (35) 5.1 安装及使用介绍 (35) 5.2 使用流程图开发 (39) 5.3 手写代码开发 (46) 5.4 调试与在线监控 (47) 6 其它部件 (54) 6.1 UP-Debugger 下载调试器 (54) 6.2 WiFi 无线网卡或以太网线缆 (55) 6.3 ZigBee无线模组 (56)

相关文档
相关文档 最新文档