匿名
未登录
登录
丢石头百科
搜索
查看“Chapter 11 of KitiBot for Micro:bit”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Chapter 11 of KitiBot for Micro:bit
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==第十一章 巡线== kitiBot 看到高铁沿着轨道快速前进,也希望像高铁那样有一个行进的轨道,沿着轨道前 进。这一章我们就来学习 kitiBot 的巡线功能。本章的学习目标就是学会使用循迹传感器,并且利用循迹传感器实现机器人巡线功能。 '''知识要点 ''' 循迹传感器:循迹传感器可以帮助机器 人沿着地上的黑线前进。传感器底部有 五个探测器,通过红外 LED 灯投射红外光线到地面,来探知模块相对于黑线的偏移。根据反射面不一返回的模拟值大小也不一样。通过五个传感器得到的数据可以判断黑线的大概位置。 [[File:tracker sensor.png|300px]] 和循迹有关的积木比较多,下面我们来介绍一下各个积木有什么作用。 [[File:tracker sensor block.png]]:由于每个传感器测量的最大值和最小值范围都不一样。所以传感器需要校准,测得每一个传感器可以测量的最大值和最小值。将测到的原始数据经过修正后再使用。执行这个积木时,需要将机器人放置到黑线的正中间的位置,机器人会左右移动测量几十组数据取得每个传感器可以测量的最大值和最小值。 [[File:tracking value block.png]]:获取循迹传感器的原始数据,返回的是长度为5的数据,分别表示5个传感器的数值。 [[File:tracking calibration value.png]]:获取循迹传感器经过校准后的数值,输出的是原始数据经过修正后的数值。 [[File:tracking max value.png]]:获取传感器校准过后每个传感器可以测量的最大值。 [[File:tracking min value.png]]:获取传感器校准过后每个传感器可以测量的最大值。 [[File:tracking position.png]]: 获取黑线的位置,范围为0~4000。0表示最左边,4000表示最右边,2000表示正中位置。 说了这么多可能很多小伙伴已经晕了,下面我们通过程序来介绍这些积木怎么使用。 ===第一节=== 这一节我们通过串口数据循迹传感器的原始数据,观察数据的变化。 程序先读取循迹数值保存到item变量中,然后通过传输数据0~4号数据,中间用空格键隔开。 [[File:tracking code.gif]] [[File:tracking code1.png|400px]] micro:bit接入到电脑中会识别一个串口,程序下载后打开串口软件,波特率设置为115200。 可以看到串口会不断输出5组数据,机器人拿到空中时,输出大概就是0~10左右,输出很小,如果将机器人放到白色面上,输出大概在500~700左右。如果是在黑线上输出大概在100左右。 [[File:serial value of tracking.png|400px]] ===第二节=== 我们在前一节的基础上加上输出黑线的位置。 [[File:tracking black line.gif]] [[File:tracking black line1.png|400px]] 下载程序后打开串口软件可以大概看到如下数据。仔细观察数据可以发现当传感器下方有黑线时,输出的数值偏低,约为80~100左右。最右边的数据表示黑线位置,黑线位置不同时,输出的数值也不同。数据可以大概反应黑线的位置。注意:这里输出的数据是没有经过校准的。 (看红线的数据可以知道,黑线从传感器1往传感器5移动) [[File:serial value of tracking2.png|400px]] ===第三节=== 这一节我们在前一节程序的基础上加上校准,看下输出校准后的数据是怎样的。 [[File:tracking calibration code.gif]] [[File:tracking calibration code1.png|400px]] 程序运行后先延时3s,是为了有足够的时间在程序启动之前将机器人放置到黑线正中间的位置。 延时3s后执行循迹传感器校准积木。校准时机器人会先向左边转动,接着向右边转动,最后转回中间的位置。校准程序需要放置在黑线中运行,校准是为了获取每个传感器可以测量的最大值和最小值。校准是否准确直接影响到循迹效果。校准完成后会显示各个传感器的最小值和最大值。 循环中是输出循迹传感器校准过后的数据,以及黑线的位置 [[File:serial value of tracking3.png|400px]] 上面为串口数据,第一行为各个传感器可以测量的最大值 第二行为各个传感器可以测量到的最小值。 接下来输出的是传感器经过校准后的数据,前五列表示1~5个传感器校准过来的数值范围是0~1000. 0表示黑线,1000表示白色没有黑线,数值越小表示颜色越深。 最后一列表示黑色的位置,2000 表示黑线在正中,0 表示黑线在小车最左边,4000 表示黑线在小车最右边 ===第四节=== 前面三节都是讲解循迹传感器输出的数据是怎样的,这一下我们来讲解一下如果使用循迹传感器获取的数据来控制机器人实现循迹的效果。 实现循迹的原理就是机器人偏离黑线左边时,减小右边电机的速度,让机器人偏回到黑线上;机器人偏离黑线右边时,减小右边电机的速度,让机器人偏回到黑线上; 下面就是循迹程序 [[File:tracking motor codes.gif]] [[File:tracking motor codes1.png|400px]] 程序中P表示位置误差,正数表示偏右,负数表示偏左。 D表示当前误差和上次误差的差值,反映小车的响应速度,数值越大,响应速度越快。 dif表示电机需要修正的量。电机修正的量按照P和D这两个变量按照比例的和。 其中除15和除2表示P D这两个值所占比例的多少,修改比例可以改变循迹的效果。 [[File:tracking value.png]] 由于轮式机器人和履带机器人不一样,需要这两个比例也是不一样的,调节不同的参数可以使循迹达到最佳的效果(详细参数请参考示例程序)。 ==其他章节== *[[Preface of KitiBot for Micro:bit | 前言]] *[[Chapter 1 of KitiBot for Micro:bit | 第一章]] *[[Chapter 2 of KitiBot for Micro:bit | 第二章]] *[[Chapter 3 of KitiBot for Micro:bit | 第三章]] *[[Chapter 4 of KitiBot for Micro:bit | 第四章]] *[[Chapter 5 of KitiBot for Micro:bit | 第五章]] *[[Chapter 6 of KitiBot for Micro:bit | 第六章]] *[[Chapter 7 of KitiBot for Micro:bit | 第七章]] *[[Chapter 8 of KitiBot for Micro:bit | 第八章]] *[[Chapter 9 of KitiBot for Micro:bit | 第九章]] *[[Chapter 10 of KitiBot for Micro:bit | 第十章]] *[[Chapter 11 of KitiBot for Micro:bit | 第十一章]]
返回至
Chapter 11 of KitiBot for Micro:bit
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志