创意之星模块化机器人实验程序.docx
- 文档编号:2320075
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:21
- 大小:19.09KB
创意之星模块化机器人实验程序.docx
《创意之星模块化机器人实验程序.docx》由会员分享,可在线阅读,更多相关《创意之星模块化机器人实验程序.docx(21页珍藏版)》请在冰豆网上搜索。
创意之星模块化机器人实验程序
第一次实验:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创意 模块化 机器人 实验 程序