创意之星之四足机器人(8页).doc
-创意之星之四足机器人-第 8 页 大学 专业实践课题:四足追光机器人姓 名: 学 院: 机械工程学院 专 业: 机械设计制造及其自动化班 级: 学 号: 指导教师: 四足追光机器人一、实验目的用“创意之星”机器人套件组装可以进行追光行走的四足机器人;二、 实验套件(创意之星)1.机械结构:基本结构件、舵机动力关节、可转向轮子、机械爪等;2.控制系统:控制卡、舵机、直流电机、各类传感器、电源等;3.控制软件:NorthSTAR 图形化开发环境 三、实验步骤1、确定其基本功能基本功能:a 在平地上通过步态设计,可以正常迈步行走。同时头部传感器检测前方光源,便于及时调整运行动作,追光行走。b 当左侧红外线传感器检测到光源强于右侧红外线传感器检测到的光源时,机器人运行步态会改变,控制机器人左转。右侧的光源强于左侧的光源时用同样的原理控制机器人右转。c 当两侧均检测到光源亮度相等时,调整步态,追光机器人会向前走。直至检测不到光源停止,再控制向后退。2、机构设计 整个巡视机器人由大致三个模块组成:8个舵机组成四足机器人的4条腿模块;b.由2个舵机组成四足机器人尾部部分;c.由2个红外接近传感器和1个舵机组成的感应模块。3、机构的装配整个四足避障机器人由1个控制板,1个舵机和两个红外接近传感器组成可转动头部,8个舵机组成主要的4条机械腿,由两个舵机构成尾部部分。整个四足机器人共由11个舵机、两个红外接近传感器及“创意之星”机器人零部件组成。安装可分为零件的安装,部件的组装以及最后的总装过程。根据预先设计好的机器人结构方案,组装四条腿的部件、头部、尾部以及机器人主体部分,最后组装到一块,形成完整的整体结构。4、连接电线由于我们此次使用的是创意之星的标准套件,舵机接线、传感器模拟与数字端口的连接都及其方便简单。5、设置各个舵机的限制参数一方面保护所使用器件的性能,防止过载或错误操作而将其损坏;另一方面也为我们进行各种复杂的调试做良好的准备,能够顺利的完成设计任务。6、微调初始姿态为了更好的进行预期动作,可以将机器人的舵机位置调整合适,由于之前已将舵机调整中位,所以这部调整较为简单,只需旋转舵机的舵盘的位置即可,即当机器人通电后,舵机自动调至中位,此时为机器人的初始姿态,之后的所有调试,都是基于这个初始姿态设计的。7、绘制程序流程图8、AVR Studio的程序书写与调试在该编译环境下,图形化的编程界面极大的方便和提高的了我们编写一系列动作的程序,而且可以更直观的观测到所有输出与输入端口,很好的完成对机器人的控制。下面是图形化的程序语言:9、源程序如下:#include "background.h"int main(int argc, char * argv) int Diff = 0; int Left = 0; int Right = 0; MFInit(); MFSetPortDirect(0x00000FFF); MFADEnable(0); MFADEnable(1); MFDigiInit(100); DelayMS(100); MFADInit(100); MFSetServoMode(1,0); MFSetServoMode(2,0); MFSetServoMode(3,0); MFSetServoMode(4,0); MFSetServoMode(5,0); MFSetServoMode(6,0); MFSetServoMode(7,0); MFSetServoMode(8,0); MFSetServoMode(9,0); MFSetServoMode(10,0); /左侧 Left = MFGetAD(-1); /右侧 Right = MFGetAD(-1); Diff = Left - Right; /左侧的值大于右侧 if (!Diff>50) /左转 MFSetServoPos(1,512,512); MFSetServoPos(2,512,512); MFSetServoPos(3,512,512); MFSetServoPos(4,512,512); MFSetServoPos(5,512,512); MFSetServoPos(6,512,512); MFSetServoPos(7,512,512); MFSetServoPos(8,512,512); MFSetServoPos(9,405,512); MFSetServoPos(10,512,512); MFServoAction(); /左侧的值小于右侧 if (Diff<-50) /右转 MFSetServoPos(1,512,512); MFSetServoPos(2,512,512); MFSetServoPos(3,512,512); MFSetServoPos(4,512,512); MFSetServoPos(5,512,512); MFSetServoPos(6,512,512); MFSetServoPos(7,512,512); MFSetServoPos(8,512,512); MFSetServoPos(9,654,512); MFSetServoPos(10,512,512); MFServoAction(); /左右两侧的值近似相等 if (!(Diff>=-50)&&(Diff<=50) MFSetServoPos(1,512,512); MFSetServoPos(2,512,512); MFSetServoPos(3,512,512); MFSetServoPos(4,512,512); MFSetServoPos(5,512,512); MFSetServoPos(6,512,512); MFSetServoPos(7,512,512); MFSetServoPos(8,512,512); MFSetServoPos(9,512,512); MFSetServoPos(10,512,512); MFServoAction(); DelayMS(500);10. 机器人整体结构如下图四、 总结 这次的课程实践对于我们的实际动手能力有很大的帮助,并让我们将课本上的知识与实际连接起来。 进行部件组装的时候,刚刚开始非常慢,因为有很多部位需要提前连接好,不能按照从头到尾的顺序进行连接,那样会导致螺丝刀无法对螺丝进行拧紧,从而只能拆开重新进行组装,就是因为这些原因,导致前期组装是速度非常慢,而越到后面,对其结构和组装的先后顺序越来越了解,组装的速度也就越来越快。 在进行电脑编程时,由于不太理解各个界面的意义,并且不太熟练,导致刚开始的编程很多次都失败了,在多次进行反工后,终于把正确的程序输入成功。 总的来说,这次的课程实践学到了很多东西,有时候盲目的去做不如冷静下来思考一下解决问题的最佳方法。机器人装配图: