树莓派智能车AlphaBot教程教程——红外循迹

2024-05-22 微雪电子(微雪课堂)
树莓派智能车,AlphaBot,AlphaBot2,微雪电子 树莓派智能车,AlphaBot,AlphaBot2,微雪电子 树莓派智能车,AlphaBot,AlphaBot2,微雪电子 树莓派智能车,AlphaBot,AlphaBot2,微雪电子

摘要

循迹从来都是智能小车中一个重要的功能。有红外循迹,摄像头循迹,电磁循迹,激光循迹等。


常见红外循迹的有两路,三路,四路,五路怎么七路,九路循迹。多少路表示传感器的数量。


又分为数字输出型和模拟输出型,比较常用的是数字输出型。即每个传感器只能输出高低电平,检测该点,是否有黑线,不能判断黑线的远近。而模拟输出型输出的是模拟量通过模拟电压可以反映出黑线的远近,结合PID算法。模拟输出循迹效果更好。

以上为循迹传感器部分的原理图,IR1~IR5端为模拟输出,模拟量输出和距离,物体颜色有关。红外反射越强(白色)时,输出越大,红外放射越弱(黑色),输出越小。探测器离黑色线越近输出越小,由此可以通过输出模拟量判断黑线的距离远近。数值越小的传感器离黑线越近。而数字型输出则将输出的模拟值经过比较器得到数字量。由此可知通过5路模拟输出获得相对五路数字输出更高的精度。


而模拟输出循迹算法根据复杂,下面详细讲一下算法部分。算法可以分为3部分。


算法分析

第一部分:归一化校准

相同的颜色,距离,不同的探测器输出会有所不同,而且不同环境输出的模拟量范围也不一样。如果采用10AD采集。理论上输出范围会在0~1023之间。但是实际上输出最小Min会大于0,最大值Max会比1023小。由此为了减少传感器自身以及环境的影响,作归一化处理,归一化处理实际上就是将Min~Max的数值范围转为 0~1范围线性转换如下:

y=(x-Min)/(Max-Min)(其中x为探测器输出值,y为转换后的值,Max、Min分别为输出的最大值和最小值)


为了数据处理方便可以将数据放大1000倍。则y=(x-Min)*1000/(Max-Min)


转换后数据范围为0~1000.其中1000表示探测器远离黑线,0表示探测器在黑线正中。


其中Min Max的值有程序开始中多次采集传感器的值获得,并保存起来,采集过程中不断移动小车,使得采集到的最大最小值更加接近实际情况。


第二部分:加权平均

将五个探测器输出数据通过归一化处理后,得到五个反应探测器离黑线相对距离的数据。为了尽可能准确地确定路线的中心线。通过加权平均的方式将这5个数值转变成一个数值。公式如下:


y = (0 * value0 + 1000 * value1 + 2000 * value2 + 3000 * value3 +4000 * value4) / (value0 + value1 + value2 + value3 + value4)


其中0 ,1000,2000,3000,4000分别为从左到右5个探测器的权,value0~value4为探测器归一化后的数据。则经过出后的数值范围为0~4000。代表黑线的位置。例如2000则表示黑线在模块的正中间。0表示在黑线在模块的最左侧,4000表示黑线在最右侧。


为了使模块探测的精度更高,对模块的高度和黑线有所要求。黑线应该等于或略小于探测器的距离(16mm)。高度为黑线在两个传感器正中间时,两个传感器都能够刚好探测到为宜。


第三部分:PID控制

由第二部分可得到黑线的位置,为了使小车一直沿着黑线走,则必须保证黑线在小车正下方,此时加权平均后的输出应该为2000.为了使小车走的更加平滑,减少左右摇摆。采用位置式PID控制。关于PID算法网上有很多介绍,此处不再详细讲解,只是大概介绍一下。


PID是指通过比例(P),积分(I),微分(D)对误差进行反馈调节。主要算法如下:


proportional = position - 2000;

derivative = proportional - last_proportional;

integral += proportional;


last_proportional = proportional;


power_difference = proportional*Kp + integral*Ki + derivative*Kd;


其中:

比例项(proportional)为当前的位置(Position)减去目标位置(2000),表示位置误差,正数表示偏右,负数表示偏左。


积分项(integral)数据为每次误差的总和,绝对值越大,表示误差累积值越大,表示小车越偏越远了。


微分项(derivative )为当前误差和上次误差的差值,反映小车的响应速度,数值越大,响应速度越快。


调节Kp,Ki,kd三个参数可获得最佳性能。先调节Kp参数,Ki,Kd设为0,不断调整Kp值使得小车可以循线,然后调节Ki,Kd值,参数可以设小一点,或者为零。


例如我们的目标是使黑线能在正中间,则加权平均后的输出数据为2000。


示例程序分析

下面结合AlphaBot2智能小车讲解一下循迹程序。这里以Arduino的程序作为示例,首先程序中用到TRSensors库,主要包含TRSensors.cpp,TRSensors.h两个文件。


TRSensors.cpp主要包含下面这几个函数:

  • TRSensors();

  • void AnalogRead(unsigned int *sensor_values);

  • void calibrate();

  • void readCalibrated(unsigned int *sensor_values);

  • int readLine(unsigned int *sensor_values, unsigned char white_line = 0);


其中TRSensors()为初始化函数,初始化相应的管脚,已经申请内存用作存储各个传感器的Max,Min值。


AnalogRead()函数为读取五路探测器的模拟值,AlphaBot2是通过TLC1543 AD芯片进行AD转换,而非arduino芯片的AD管脚。如果将Tracker Sensor接到arduino的A0~A4管脚需修改此函数。


calibrate()函数为校准函数,通过多次采集数据,确定Max,Min值。故校准阶段时,小车需在黑线中紧贴地面左右摇晃。确保取得的Max,Min准确。


readCalibrated()函数为归一化校准,对应原理的第一部分,通过归一化线性转换,将数据转为0~1000范围内,其中1000表示探测器远离黑线,0表示探测器在黑线正中。主程序中通过控制小车左右旋转通过采集100次数据校准。

readLine()函数为读取循迹线的位置,对应原理中的第二部分。通过加权平均算出寻迹线的位置。数值范围为0~4000,0表示在黑线在模块的最左侧,4000表示黑线在最右侧。

原理中第三部分在循迹主程序Infrared_Line_Tracking.ino中实现,主要代码如下。

通过readline()函数读取寻迹线的位置,然后算出比例项proportional,微分项derivative,

此处只用了PD算法,没有积分项,而非PID。可以修改对应的PD参数,使性能更佳。

最后一步就是通过PID算得的修改项power_difference去调节小车左右轮的PWM值,实现小车沿着寻迹线运动。

树莓派的程序和arduino类似,这里不再详细分析。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由ll转载自微雪电子(微雪课堂),原文标题为:树莓派智能车AlphaBot教程5:红外循迹,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

树莓派智能车AlphaBot教程——直流电机控制

本文基于树莓派智能车AlphaBot介绍直流电机控制。一台小车首先要有电机轮子,通过控制电机转动,小车实现不同方向行走。电机可以是直流电机或者步进电机。步进电机是以步阶方式分段移动,也就是每次只能控制转动一小段。所以步进电机的控制精度会很高,可以精确的控制。

设计经验    发布时间 : 2024-04-24

树莓派智能车AlphaBot教程教程——红外遥控与蓝牙遥控

遥控是小车的一个重要功能,常用的要控制方式有红外,蓝牙,wifi, NRF等。遥控程序大概类似,就是小车接受到传输过来的命令然后做相应的动作,只是传输的方式不一样而已。本文基于树莓派智能车AlphaBot讲解红外以及蓝牙。

设计经验    发布时间 : 2024-05-23

树莓派智能车AlphaBot教程:webiopi(上集)

webiopi是一个可控制树莓派GPIO的web框架,webiopi官网已经不再更新,官网上最新版本0.7.1版本,而且这个版本是不支持树莓派2B及以后版本的。尽管webiopi不再更新但是我们也介绍一下,通过学习webiopi让我们更快的熟悉web网页控制。

设计经验    发布时间 : 2024-10-30

树莓派智能车AlphaBot教程——mjpg-streamer网络视频监控

wifi遥控小车,网络视频监控是必不可以的部分,这一张讲解一下如何通过树莓派摄像头实现网络视频监控。mjpg-streamer是一个网络摄像头监控软件,是很好的开源项目。通过mjpg-streamer可以非常容易实现网络视频监控功能。

设计经验    发布时间 : 2024-05-21

树莓派智能车AlphaBot教程——红外避障与超声波避障

避障就是小车遇到障碍物时,能够改变移动方向,避开障碍物,而不至于撞上障碍物。避障首先要有传感器可以检测到障碍物,常见的避障有红外避障和超声波避障两种。本文基于树莓派智能车AlphaBot进行介绍。

设计经验    发布时间 : 2024-05-24

树莓派智能车AlphaBot教程:webiopi(下集)

前文再续,书接上一回。前一章说道tutorials目录下为一写基础的教程示例。下面我们展示一下怎么使用这些例程。

设计经验    发布时间 : 2024-10-30

AlphaBot 2 用户手册

型号- ALPHABOT 2,ALPHABOT2

用户指南  -  微雪电子  - V1.3  - August 2017 PDF 中文 下载

微雪电子与世强先进的代理协议

描述- 2024年3月,深圳市微雪电子有限公司与世强先进(深圳)科技股份有限公司签署了代理协议。

代理协议/证明  -  微雪电子  - 2024/3/28 PDF 中文 下载

用户指南  -  微雪电子  - V1.1  - 2014.11.04 PDF 中文 下载

电路原理图  -  微雪电子  - 2017/5/2 PDF 英文 下载

电路原理图  -  微雪电子  - 2017/5/2 PDF 英文 下载

用户指南  -  微雪电子  - 2020/4/10 PDF 中文 下载

电路原理图  -  微雪电子  - 2017/5/2 PDF 英文 下载

电路原理图  -  微雪电子  - 2016/10/27 PDF 英文 下载

展开更多

电子商城

查看更多

品牌:微雪电子

品类:电容触摸屏

价格:¥200.0000

现货: 100

品牌:微雪电子

品类:串口转换器

价格:¥115.0000

现货: 100

品牌:微雪电子

品类:串口转换器

价格:¥29.5000

现货: 100

品牌:微雪电子

品类:串口转换器

价格:¥37.0000

现货: 100

品牌:微雪电子

品类:多功能显示器

价格:¥285.0000

现货: 100

品牌:微雪电子

品类:串口转换器

价格:¥29.5000

现货: 100

品牌:微雪电子

品类:串口转换器

价格:¥29.5000

现货: 100

品牌:微雪电子

品类:串口转换器

价格:¥29.5000

现货: 100

品牌:微雪电子

品类:开发板

价格:¥1,125.0000

现货: 100

品牌:微雪电子

品类:树莓派显示器

价格:¥820.0000

现货: 100

现货市场

查看更多

暂无此商品

海量正品紧缺物料,超低价格,限量库存搜索料号

服务

查看更多

汽车天线定制

可定制车载智能天线频率:20kHz、114.5 kHz、120- kHz、125 kHz、134 kHz、134.2kHz、134.5 kHz;工作温度范围:-40ºC to ~125ºC;电感范围:100~734;符合AEC-Q200(汽车质量标准)和IP68标准;

最小起订量: 1 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面