汤果 发表于 2020-5-31 11:20:59

M.A.R.K|用巡线传感器实现小车巡线

M.A.R.K 小车组装好后就可以编写程序让它跑起来了。这里我们尝试用巡线传感器让小车沿着地图上的黑线行走。
## 巡线传感器原理介绍
巡线传感器是一种利用红外线的物理性质来测量的传感器。小车在巡线时,巡线传感器会发送红外线,经过地图反射后,再被巡线传感器接收到。由于黑白两色对红外光的吸收比例是不一样的,所以小车可以判断经过了黑色区域还是白色区域。

## 软件安装
![](https://ide.tinkergen.com/download/cn/img/pic_codecraft.png)
M.A.R.K 小车使用的图形化编程软件是 CodeCraft,可以在 (https://ide.tinkergen.com/download/cn) 找到相应的版本后下载安装。
![](data/attachment/album/202005/31/101903s3gyggszpvymc36d.png)
你也可以不安装桌面客户端,直接使用网页版进行编程。网页版地址为:(https://ide.tinkergen.com) ,上图即为网页版编程界面。不过因为需要连接设备,所以需要根据提示下载安装设备助手。
![](data/attachment/album/202005/31/102159maoo8zw2mitkeaap.png)
## 连接电脑
使用 Type C 数据线连接电脑和小车上的 cyberEye 主控板。连接后电脑会自动安装驱动。驱动安装好后我们选择界面左上角的【切换设备】按钮。
![](data/attachment/album/202005/31/103314vynmmddt01ucumtn.png)
在设备列表中选择【 M.A.R.K(cyberEye)】。
![](data/attachment/album/202005/31/103355s0sfidvu20d3vidd.png)
点击【连接设备】。
![](data/attachment/album/202005/31/103423v44ztk4zlh4lst30.png)
在弹出的窗口中选择数字较小的端口号。这里选择【COM4】。
![](data/attachment/album/202005/31/103505nohbq8b7z31q63qf.png)
下面就可以开始编写代码了。
![](data/attachment/album/202005/31/103553d1y3n6owium1o9xn.png)
## 测试巡线传感器
因为巡线传感器接到了 D6|D5 接口,我们无法判断左右两侧的巡线传感器对应接口分别是哪个。而且我们还要测试一下,巡线传感器遇到黑色时读数是 1 还是 0。所以我们用一段简短的程序来试一下。
![](data/attachment/album/202005/31/110058wkruhkukkhhhu7ok.png)
到【系统】分类下将【当启动时】、【等待(1000)毫秒】、【数字读取引脚(D4)】、【图表打印()()()()】这几句指令拖到代码编写区。
![](data/attachment/album/202005/31/110302pcyin2mmcgsnolty.png)
到【控制】分类下拖出【重复执行】。
![](data/attachment/album/202005/31/110333abbl7pqbl1uyu3in.png)
完整代码如上所示,每隔一秒打印 D5 和 D6 引脚的值。接下来依次点击左侧的【上传】和【串口图表】按钮。
![](data/attachment/album/202005/31/110546zaic7n9j9ns4n8dv.png)
打开小车的电源,将巡线地图放在小车巡线传感器下方,观察图表数据的变化。
![](data/attachment/album/202005/31/110649qvmk7t73ttoocmq4.png)
观察可知,巡线传感器遇到黑色是 1,遇到白色是 0。接下来移动巡线地图,使得右侧在黑线上,左侧在白色区域,再观察图表变化。
![](data/attachment/album/202005/31/110814ubcsiczgxibbbizq.png)
综合分析可以得出结论:D5 是右侧巡线传感器,D6 是左侧巡线传感器。遇到黑色是 1,遇到白色是 0。
## 巡线原理
我们考虑几种情况:
1. 左侧黑,右侧黑。说明小车在黑线上,保持直行。
2. 左侧黑,右侧白。说明小车在黑线右侧,需要左转纠偏。
3. 左侧白,右侧黑。说明小车在黑线左侧,需要右转纠偏。
4. 左侧白,右侧白。说明小车不在线上,尝试倒退。

## 编写代码
对照巡线的原理,编写代码如下:
![](data/attachment/album/202005/31/111646e42a6mpi1ez423ax.png)
## 测试运行
将代码上传到小车,放到地图上测试。

https://v.qq.com/x/page/r09740bd653.html

这是常规红外巡线的效果,下一次我们来尝试用计算机视觉巡线。
页: [1]
查看完整版本: M.A.R.K|用巡线传感器实现小车巡线