创意之星模块化机器人实验程序解析.docxVIP

  • 12
  • 0
  • 约2.05万字
  • 约 51页
  • 2021-03-08 发布于天津
  • 举报

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

第一次实验:MultiFLEX控制卡编程实验 蜂鸣器实验 #i nclude avr/io.h #defi ne BEEP_ON PORTG |= _BV(PG3) #defi ne BEEP_OFF PORTG = ~_BV(PG3) int main(v oid) { in ti,j; PORTG = 0; DDRG = 0xff; while(1) { for(i=0;iOxFF;i++) {for(j=0;j0xFF;j++);} BEEP_ON; for(i=0;i0xFF;i++) {for(j=0;j0xFF;j++);} BEEP_OFF; } } IO 口控制实验 #i nclude Public.h #include Usertask.h void user_task(void) { uin t8 io_in; uint8 io_out; uin t8 temp8; ui nt16 temp16; gpio_mode_set(OxOOFF); write_gpio(0xFF00); while(1) { temp16 = read_gpio(); io_in = (ui nt8)(temp168); temp8=(io_i n0x80); if(temp8==0) { io_out=0x01; while(io_out) { _ write_gpio(~((ui nt16)io_out)); delay(5);〃 延时 520MS=0.1s io_out=1; write_gpio(~((ui nt16)io_out)); delay(5); } } else write_gpio(0xFF00); } } 第二次实验:多自由度串联式机械手 #i nclude P ublic.h #in clude 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[0]=90-90; array_rc[0]=90-90; array_rc[1]=255; array_rc[1]=255;〃 舵机1,速度为170。取值围0-255,超过围程序会 丢弃此数据 array_rc[0]=90-90; array_rc[0]=90-90; array_rc[1]=255; array_rc[1]=255;〃 舵机1,速度为170。取值围0-255,超过围程序会 丢弃此数据 array_rc[4]=90+90; array_rc[4]=90+90;〃 舵机 3 rc_moto_co ntrol(array_rc); rc_moto_co ntrol(array_rc); delay(50); array_rc[5]=170; rc_moto_co ntrol(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_co ntrol(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; array_rc[1]=170; array_rc[2]=90-90; array_rc[3]=170; array_rc[4]=90; array_rc[5]=170; rc_moto_co ntrol(array_rc); delay(50); } 第三次实验:简易四足机器人 #i nclude P ublic.h #in clude Usertask.h void user_task(void) { uint8 array_rc[23]={0}

文档评论(0)

1亿VIP精品文档

相关文档