04 舵机和电机使用_第1页
04 舵机和电机使用_第2页
04 舵机和电机使用_第3页
04 舵机和电机使用_第4页
04 舵机和电机使用_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

舵机和电机控制,Botball国际机器人大赛中国组委会,Botball教师培训,舵机控制,enable_servos和disable_servos函数set_servo_position函数,舵机servo,控制器上有四个舵机端口,左边的0enable_servos();msleep(1000);set_servo_position(2,925);msleep(1000);set_servo_position(2,675);msleep(1000);disable_servos();return0;,在使用enable_servos启用舵机之前不设置目标位置,舵机会先到1024的位置,在转动到指定位置。,基础任务:编写程序控制舵机臂的位置从200到1800,每次增加100在程序开始之前启用舵机,在程序结束前关闭舵机伪代码注释Setcounterto200./1.Setcounterto200Setservopositiontocounter./2.SetservopositiontocounterEnableservos./3.Enableservos.Loop:Iscounter1800?/4.Loop:Iscounter1800?Waitfor100milliseconds./4.1.Waitfor100milliseconds.Add100tocounter./4.2.Add100toservoposition.Setservopositiontocounter./4.3Setservopositiontocounter.Disableservos./5.Disableservos.Endtheprogram./6.Endtheprogram.,用循环控制舵机缓抬,用循环控制舵机缓抬,用循环实现舵机缓抬,避免出现舵机快速转动。,intmain()intcounter=200;set_servo_position(0,counter);enable_servos();/Iscounter1800?while(counter1800)msleep(100);/Add100tocountercounter=counter+100;/Setservopositiontocounterset_servo_position(0,counter);msleep(100);/Disableservos.disable_servos();return0;,让机器人动起来:电机控制,将电机连接到Wallabymotor函数mav函数,Wallaby控制器的电机端口,电机端口0,1,2,3,端口号标记,电机有两根线,一红一黑接头分成两叉。端口通电时亮绿灯或红灯,代表正转和反转。接线方向决定电机转动方向。绿色代表正转,红色代表反转。,连接电机,电机接头如图所示,连接电机,示例机器人的左轮连接到0号电机端口,右轮连接到2号电机端口,电机调试,motor(0,100);/Turnsonmotorport#0at100%power.按恒定功率运作,在用于滑轮时力量更大根据电池电量不同表现也会不一样,用于驱动机器人时误差较大mav(0,800);/Movemotoronport#0at800ticks/sec.驱动机器人时不依赖于电量高低,更精准需要和msleep函数准确配合.,电机控制函数,学生测试时需要注意不要紧握住电机,防止电机堵转。,最基础的控制电机函数,mav(0,500);/控制0号端口的电机以每秒500ticks的速度正转/(速度取值-1500到+1500)msleep(1000);/等待1000毫秒ao();/alloff,关闭所有电机和舵机,控制电机的函数,电机端口(0-3),Tick是度量电机转动的单位。Botball使用的电机转一圈大约是1000ticks。周长(厘米)=1圈=1000ticks,电机转动单位ticks,基础目标:编程控制机器人以800tick每秒的速度前进两秒,然后停下来。挑战目标:让机器人小车前进两秒转弯返回。伪代码注释小车前进,速度800tick./1.Driveforwardat800tps.保持两秒./2.Waitfor2seconds.停止电机./3.Stopmotors.结束程序./4.Endtheprogram.,让机器人小车动起来,使用mav和ao函数,intmain()printf(Driveforward!n);/Stateintentmav(0,800);mav(2,800);/turnonmotormsleep(2000);ao();/turnoffallmotorsreturn0;,get_motor_position_counter(3)ORgmpc(3)/gmpc是get_motor_position_counter的缩写,用gmpc获取电机位置计数器的值clear_motor_position_counter(3);ORcmpc(3);/使用cmpc来清除电机位置计数器的值Botball的电机都内置了电机位置计数器,每一圈约1000ticks,电机距离计数器,可以使用电机距离计数器控制机器人运动到指定位置。,精准移动,在将这些常用的函数熟记于心之前,使用备忘单是帮助你记忆的好办法,Botball函数备忘单,printf(“文本n”);/在屏幕显示特定文本msleep(毫秒数);/在执行下一条命令时等待相应的时间motor(端口号,功率);/指定端口的电机以指定功率运转。端口号为0-3,功率取值范围-100到100mav(端口号,速度);/指定端口的电机及指定速度运转。端口号为0-3,速度取值范围-1500到1500mrp(端口号,速度,相对位置);/指定端口电机运转到相对位置。相对位置值为tickao();/关闭所有接口的电机(alloff)enable_servos();/打开舵机端口disable_servos();/关闭舵机端口set_servo_position(端口号,位置值);/将舵机运动到指定位置(端口号为0-3,位置值0-2048)wait_for_light(端口号);/等待光线传感器反应wait_for_touch(端口号);/等待触碰传感器shut_down_in(秒数);/在特定时间后关闭所有电机analog

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论