章安福
(广州市工贸技师学院,广东广州,510000)
世界技能大赛由世界技能组织举办,被誉为“技能奥林匹克”,是世界技能组织成员展示和交流职业技能的重要平台。职业院校作为培养技能型人才主阵地,大力发展和弘扬职业教育是制造业转型升级的必经之路,移动机器人项目作为制造与工程技术领域的项目之一,推广移动机器人项目的技术应用,对培养具有工程思维的技能人才有着积极的意义。
红外测距传感器是一种传感装置,是用红外线为介质的测量系统,测量范围广,响应时间短。红外测距传感器是由一个红外信号发射二极管和一个接收二极管组成,通过发射二极管发射出的红外光,在照射到物体后会发生反射的原理,反射光被接收二极管吸收,通过接收二极管吸收光线的强弱情况,由信号处电路处理后转换为与物体的距离。
夏普GP2Y0A21YK0F传感器红外测距传感器三个管脚,GND管脚接控制器的GND中,Vcc管脚接控制器的+5V中,Vo管脚接控制器的AI(模拟量输入)信号中,红外测距传感器接收的数据为电压值,电压值与距离值的对应关系如图1所示,电压与距离关系通过曲线拟合得出数学关系。
图1 电压值与距离值的对应关系图
新建一个程序,调用出编写红外测距传感器所需的函数。因为红外测距传感器读取的数据是电压值,用myRIO自带的模拟量输入快速VI编写,其中红外测距传感器的信号线接在myRIO上端口要与程序端口对应,否则无法读取相应值。红外测距传感器对光线比较敏感,会造成红外信号发生抖动,这时候要加一个均值滤波,采样点数给10个点即可,这样可以较好地抑制抖动,最终实现程序如图2所示。
图2 红外传感器均值滤波测试程序
套件中提供的是4路红外巡线传感器,其原理为红外发射管发射的光线遇到不同色彩的表面反射率不同,发射的光线遇到亮色彩地面时会产生较强反射,接收管接收到强反射光,经内部电路处理后输出低电平;当发射的光线遇到暗色彩地面时则呈弱反射,接收管接收较弱的反射光,经内部电路处理后输出高电平,红外巡线传感器有一个6P杜邦插针用于提供接地(GND)、电源(5 V)和信号(SIG),S1-S4四个管脚分别接控制器的AIO(数字量输入)信号中。红外巡线传感器接收的数据为电压值,所以我们判断是否检测到黑线,只需要判断电压是否大于某一个值就可以了。
新建一个程序,调用出编写红外巡线传感器所需的函数。使用myRIO自带的模拟量输入快速VI编写,程序端口对应,红外巡线传感器有4个信号通道,所以端口也要选择4个。由于红外测距传感器对光线超级敏感,会造成不同光线输出的电压不一样,导致巡线失败,所以我们要对红外测距传感器进行误差校准。且校准参数可实时改变。
九轴姿态传感器,其组成由3轴加速度计、3轴陀螺仪和3轴电子罗盘(地磁传感器)三个部分,他们各自的作用不同,相互配合。在使用过程中,需要对三种传感器反馈的数值进行融合处理,从而得到较为理想的姿态数据。navX-Micro九轴姿态传感器四个管脚,GND管脚接控制器的GND中,5V管脚接控制器的+5V中,SCL管脚接控制器的SCL信号中, SDA管脚接控制器的SDA信号中。navX-Micro姿态传感器自带的32位ARM处理器融合了软件算法,而在机器人在平面场地运动过程中只需要自身的角度,所以我们只需要通过I2C总线与ARM处理器通讯,将它寄存器里的Yaw(角度)数据读出来即可。
图3 校准参数可调的巡线传感器程序
新建调用navX-Micro九轴姿态传感器所需的函数,将传感器的通讯线接在myRIO相应端口要,I2C快速VI可以选择Write模式、Read模式和WriteRead模式。navXMicro响应I2C总线上的7位地址50(0x32),读取角度的寄存器地址为0x16-0x17,给角度清零的寄存器地址为0x80。navX-Micro九轴姿态传感器的角度读取范围为-180-0-+180,所以超过-180是回跳到+180,超过+180是回跳到-180,这属于正常现象。
navX-Micro九轴姿态传感器除了软件复位外,还可以进行硬件复位,只要在硬件上按一下RST按钮,然后等待一会即可复位。
超声波传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器,超声波测距传感器通过发送和接收超声波,利用时间差和声音传播速度计算出与前方障碍物的距离。声波在空气中的传播的速度会收环境影响,假设测试环境中声波传播速度为V,由myRIO的处理器测量出发射声波与接收声波的时间差为Δt,则可以推算出超声波传感器与障碍物的距离S,即:S=V·Δt /2。
PING超声波测距传感器三个管脚,其中SIG管脚接控制器的DI0接口。根据超声波测距传感的器时序图来编写程序。初始化信号端口,然后发送触发脉冲,给2μs低电平,再给5μs高电平,然后置为低电平,接着等待750μs后,不断查询是否有上升沿输出,如果没有输出上升沿,查询50次之后结束,如果输出上升沿,则等待输出下降沿,并记录等待的时间,最大等待时间为18.5ms。将等待时间经转换函数计算出距离即可。
新建程序,调用出编写超声波所需的函数,创建枚举状态,把等待函数设为us。最后连线即可。因为超声波测距传感器程序实在RT上编写,RT自带的时钟周期会根据自身运行情况及输入电压发生变化,所以读取出来的数值一致性较差,这属于正常现象。如需更准确的读取,以同样的处理方法,在myRIO平台的FPGA上编写程序即可。
直流减速电机是在机器人设计中比较常见动力装置,是由电机和减速箱组合起来的传动机构,减速箱又分为普通减速箱、蜗轮蜗杆减速箱及中间减速箱,减速箱可以降低电机的转速,获得较大的转动力矩。
图4 九轴姿态传感器控制程序
图5 PING超声波传感器工作原理示意图
图6 PING超声波等待下降沿程序
使用的直流减速电机转速为100 rpm ,扭矩为700 ozin,具有内置的高分辨率霍尔效应编码器,用于精确的电机控制,并配有编码器电缆,电机的使用需要相应的驱动板进行调速,MXP-MD2是对应的双通道电机驱动板,具有大电流输出和过载保护功能。电机两根电源线颜色分别为红色与黑色,红色接驱动板的M0+,黑色接驱动板的M0-。编码器接到相应管脚上,用于对于电机的转速调整,一般在近几届比赛中,使用脉宽调制(PWM)的方法,在控制电机的时候,电机驱动板并非持续地给电机通电,而是通过一个频率区间或固定频率的方波脉冲控制驱动板给电机通电,占空比的不同决定电机在每个控制周期中的得电时间,从而起到调速作用,具体程序编写如图7所示。
图7 直流减速电机控制程序
舵机又称为伺服电机,舵机上的控制电路板接受来自信号线的控制信号(PWM),控制直流电机转动,直流电机带动齿轮组,减速后传动至输出舵盘。舵机的输出轴和位置反馈电位器是相连的,舵盘转动的同时,带动位置反馈电位器,电位器将输出一个电压信号到控制电路板,进行反馈,然后控制电路根据所在位置决定电机的转动方向和速度,从而实现舵机角度位置的控制。
常见的舵控制由脉冲周期为20ms的方波,控制高电平的区间范围为0.5ms~2.5ms,不同的占空比对应着不同的控制角度。HS-7985MG大扭力数码舵机使用了新一代的可编程电路,配合高性能空心杯电机,双滚珠轴承等,具有可编程的过载保护功能。
在使用myRIO控制舵机时,直流电机并非持续地得电,而是通过一个频率区间的方波脉冲控制电机得电,0.5ms~2.5ms的方波信号能对直流电机起到调速作用,然后反馈电位器反馈舵机转动的位置,到了目标位置后,从而切断直流电机的信号,内部直流电机停,则舵机停,实现控制时,调用出控制舵机所需的函数,频率给定50Hz,改变占空比即可调整785舵机的位置,以实际控制抓取为例,抓取动作实现是有最大行程的,所以我们需要测试极限位置的最大占空比与最小占空比,不能让舵机因机械限位而导致堵转。并将设置值转换,设定抓取闭合时设置值为0,抓取开启式最大行程时设置值为100,所以设置值(set)在0~100之间。
图8 舵机实现抓取控制程序