慧鱼机器人包是一个简易比较容易上手的机器人学习包。其控制板可以通过ROBO PRO进行图形化编程实现对电机等原件的输出、对红外、视觉等传感器的信号接收处理。
这里提供了一个基于ROBO PRO编程实现的智能车控制程序,本程序实现了使用PID进行双电机的输出,可以做到丝滑地使小车拐弯以及避障,程序以及小车如下:
ROBO PRO的编程类似于流程图。从开始一步一步地往下执行。
程序开始给了一个三秒地延时,是给摄像头地启动时间,保证摄像头开始输出就可以获得清晰明了的图像数据。 摄像头通过判断黑线在视野中的位置与0位置的偏差(即坐标)输入整形的位置数据,寄存到变量pos中方便后续使用。
棱形模块为条件判断模块,有4个引脚。其中上方引脚类似于一个使能端,左边引脚为条件输入,下边引脚为判断条件符合给定边界的输出,右边引脚为判断条件不符合给定边界的输出。我们可以通过对左右引脚下面加入控制模块对程序的控制功能进行实现。
本程序中设定了一个电机的初始输出值为c=300。KP为比例系数,M1、M2为输出其中用到控制的比例计算公式如下:(公式中的+和-需要结合自身小车的电机安装方式进行调整)
通过对公式中的KP进行调整,可以找到一个适合于本小车的系数,使M1、M2的输出现差距,从而实现对小车的位置偏差修正,达到对小车的控制目的。
此处为摄像头识别到红色就结束本次程序运行的控制模块,原理以及编写简单。
此处为避障模块和直角拐弯模块。直角拐弯原理为在摄像头视野的左右两侧加入数值的识别坐标,当该两坐标识别到特征,马上停止主程序的运行,跳转到分支中执行相应方向的转弯。
避障原理也相对简单,当距离传感器识别到障碍物进入了一定距离,程序马上执行避障分支,即控制两个电机暂时不黑线循迹,而是按一定的速度差和时间,避开障碍物再回到线路上继续循迹。
这是摄像头控制模块。其中水平坐标为循迹坐标,是比例算法的偏差输入源。两条竖直坐标为直角拐弯识别输入。。绿色方框为颜色识别模块,控制程序的中止运行。
对于这种小车的控制是通过对两个电机的控制来实现的,不同的转速差距可以拐不同曲率的弧线。