5.6 红蓝颜色分拣车#

5.6.1 简介#

使用AI视觉模块搭配小车的足球机器人造型,制作出有趣的色块分拣机器人,先将AI视觉模块固定到足球机器人小车上,然后使用AI模块进行识别,如果识别到了红色块就运输到左边然后原路返回原位,如果识别到蓝色则运输到右边再原路返回到原位。

5.6.2 将AI模块安装到足球小车上#

注意:你需要先按照小车教程将`足球机器人`的乐高搭建好,然后再按照下方的安装教程进行安装。

所需配件:

50

步骤1:

51

步骤2:

52

步骤3:

53

步骤4:

54

步骤5:

55

步骤6:

AI视觉模块

小车接口

T/C (黄色线)

SCL

R/D (白色线)

SDA

V/+ (红色线)

5V

G/- (黑色线)

G

56

完整展示:

57

5.6.3 流程图#

58

5.6.4 代码#

如果你选择自己搭建代码,请选择小车的专用开发模块,因为我们要使用AI视觉模块与小车进行互动就会用到小车功能模块代码,添加小车专业的开发模块就能直接使用无需再次添加了。

a73

  1. 在代码启动中设置AI视觉模块的通信方式为I2C,再设置AI视觉模块运行颜色识别模式 , 再设置识别颜色的识别框的位置xy(默认)尺寸最小值为宽:20 高:20,设置舵机旋转到160度。

65

  1. 使用判断模块对检测数量进行判断,只有检测数量大于0 时才进行色块数据的输出,注意选择的是颜色识别,在下方添加小车停止的代码

69

  1. 判断检测到的颜色快是否是红色,使用66块将"黑色"修改成"红色",如果识别到了红色块,小车会进行以下动作:(1)舵机旋转到180度使夹子夹住红色块并延时1000ms;(2)小车左转0.3秒,小车前进0.3秒,小车停止行驶;(3)舵机旋转到160度,松开夹子放下红色块;(4)小车后退0.3秒,小车右转0.3秒,至此小车的动作结束,效果是将红色块送至小车的左边

67

  1. 判断检测到的颜色快是否是蓝色,使用66块将"黑色"修改为"蓝色",如果识别到了蓝色块,小车会进行以下动作:(1)舵机旋转到180度使夹子夹住蓝色块并延时1000ms;(2)小车右转0.3秒,小车前进0.3秒,小车停止行驶;(3)舵机旋转到160度,松开夹子放下蓝色块;(4)小车后退0.3秒,小车左转0.3秒,至此小车的动作结束,效果是将蓝色块送至小车的右边

68

完整代码:

70

5.6.5 代码结果#

上上传代码成功后,AI视觉模块会进入“颜色识别”功能对识别框中的画面进行识别,判断是否有红色或蓝色,如果检测到红色小车会夹住红色块然后将它送到小车的左边然后小车会原路返回到原位。如果检测到蓝色小车会夹住蓝色块然后将它送到小车的右边然后小车会原路返回到原位。(返回到原位时位置稍有偏差,因为他是通过行驶的时间设置的)

注意:代码中有设置色块最小尺寸,如果你的色块识别后的尺寸比识别框小将不会被识别,你可以修改下方代码的尺寸进行识别。

71