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

上传人:b****2 文档编号:2320075 上传时间:2022-10-28 格式:DOCX 页数:21 大小:19.09KB
下载 相关 举报
创意之星模块化机器人实验程序.docx_第1页
第1页 / 共21页
创意之星模块化机器人实验程序.docx_第2页
第2页 / 共21页
创意之星模块化机器人实验程序.docx_第3页
第3页 / 共21页
创意之星模块化机器人实验程序.docx_第4页
第4页 / 共21页
创意之星模块化机器人实验程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

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

《创意之星模块化机器人实验程序.docx》由会员分享,可在线阅读,更多相关《创意之星模块化机器人实验程序.docx(21页珍藏版)》请在冰豆网上搜索。

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

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

第一次实验:

MultiFLEX控制卡编程实验蜂鸣器实验

#include

#defineBEEP_ONPORTG|=_BV(PG3)

#defineBEEP_OFFPORTG&=~_BV(PG3)intmain(void)

{

inti,j;

PORTG=0;

DDRG=0xff;

while

(1)

{

for(i=0;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"

voiduser_task(void)

{

uint8io_in;

uint8io_out;

uint8temp8;

uint16temp16;

gpio_mode_set(OxOOFF);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);〃延时5X20MS=0.1sio_out<<=1;

write_gpio(~((uint16)io_out));

delay(5);

}

}

elsewrite_gpio(0xFF00);

}_

}

第二次实验:

多自由度串联式机械手

#include"Public.h"

#include"Usertask.h"

voiduser_task(void)

{_

uint8array_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"

voiduser_task(void)

{_

uint8array_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⑹=90+45;//舵机4array_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"

voiduser_task(void)

{_

uint8array_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,转动时间30X0.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);//给电机反应时间150X20MS=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"

#inelude"Usertask.h"

voiduser_task(void)

{_

uint8array_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[6]=0;

array_dc[7]=10;

dc_moto_control(array_dc);

delay(150);〃给电机反应时间150x20MS=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]=OxFE;

array_dc[3]=10;

array_dc[4]=OxFE;

array_dc[5]=10;

array_dc[6]=OxFE;

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;

a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1