基于Arduino的视觉四足步行机器人的研究 使用Arduino板控制舵机旋转角度进而控制机器人的行走是四足步行机器人研究的一个重要方法。文章通过重点研究Arduino的编程程序实现Arduino板、舵机和视觉模块的联动,从而控制视觉机器人的工作。 标签:Arduino;视觉步行机器人;舵机;Pixy 引言 Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它具有跨平台性、简单清晰、开放性等优点,且近年来发展迅速,成为全球最流行的开源硬件,因此将其作为视觉步行机器人的控制模块具有很高的可操作性。 1 Arduino的软件--Arduino IDE Arduino IDE是Arduino的编程软件,基于processing IDE开发,具有很高的灵活性,且Arduino语言基于wiring语言开发,是对 AVRGCC库的二次封装,它可以在Windows、Macintosh OS X、Linux三大主流操作系统上运行,而其他的大多数控制器只能在Windows上开发,对于编程者来说极其便利。 2 Arduino控制舵机角度 舵机是一种位置伺服的驱动器,其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。一般舵机旋转的角度范围是0°到180°度。 正是由于舵机转动的角度是通过调节PMW(脉冲宽度调制)信号的占空比来实现的,所以可以通过硬件上将Arduino板与舵机接线,软件上向Arduino嵌入控制程序来控制舵机旋转角度。 下面是一个简单的Arduino舵机角度控制程序: #include Servo myservo; int pos = 0; void setup() { myservo.attach(9); } void loop() { for(pos = 0; pos 100) { if(pixy.blocks[0].width * pixy.blocks[0].height200) right(); if(pixy.blocks[0].x<100) left(); 上面程序中advance()、back()、right()、left()是子函数,控制机器人的行走方向。 下面是advance()函数的程序: void advance() //前进 { Serial.println(”advance”); for(int j=0;j<16;j++) {for(int i=0;i<8;i++) {tst_srv[i].write(adv_srv_pos[i][j]);} delay(50);} Serial.println(”adv end”); } 经过实验测试,Arduino完全能承担控制核心的作用,实现与视觉模块和舵机的联动,从而实现视觉四足步行机器人的追踪功能。 参考文献 [1][美]Michael McRoberts.Arduino从基础到实践[M].电子工业出版 社. [2]谭锋.四足机器人视觉系统研究与实现[D].同济大学. [3]赵建领,薛园园.51单片机开发与应用技术详解[M].电子工业出版社. 本文来源:https://www.wddqw.com/doc/debdf97c67ce0508763231126edb6f1afe0071de.html