基于Arduino的迷你巡线机器人Qbot

来源 :电脑报 | 被引量 : 0次 | 上传用户:jj80022084
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  Qbot是之前朋友一起构思的一个项目,主要起因是看到这个会解迷宫的巡线小机器人(图1)。觉得很搞笑,想弄一个耍耍,但是这玩意儿国内并不好买,这个小车在我看来还是有很大的改进空间的(而且不是基于Arduino的而是原生AVR),于是打算自己动手重新造轮子。
  仔细想想这东西的可DIY性还是挺高的,除了巡线外,解迷宫、遥控、对战等玩法还有很多,要是基于Arduino开源当然就更合适啦。最后选定的主控芯片方案是Mega32U4,主要是因为自带串口BootLoader,可以直接通过USB下载程序。对比于3pi增加了:128×64分辨率的OLED显示屏、两个可编程配置的炫彩RGB尾灯、可以直接USB充电的锂电池管理电路、陀螺仪模块用来识别一些手势以及当然更小巧的机身。
  硬件篇
  巡线传感器使用的是贴片的对射式光电开关,其实就是跟普通的巡线模块一样的传感器只不过体积会小巧很多。一共使用了5个红外管,实践测试巡线效果非常好。
  充电管理IC使用的是TP5400,选它的一个重要原因是,这颗IC不仅能够管理锂电池的充电,还带升压功能,因为锂电池的电压是3.7V,而Arduino需要工作在5V上,所以就免去了电源升压电路的设计,进一步缩小了体积。也加入了蓝牙模块(图2),可以使用手机连接进行一些调试和遥控。
  电机采用的是N20减速电机,非常常用的型号,不需要编码器,电机驱动使用TB6612两路直流电机驱动(图3)。轮子两边的主动轮网上DIY店铺都可以找得到,后面的万向轮可能就没那么好找啦(图4),市面上没有这么小的万向轮,所以想了个办法:使用一根铁丝和一个小的轴承做成了万向轮,最终系统原理图如图5。
  PCB的layout(图6):
  软件篇
  软件部分主要就是读取传感器的数据,以及老生常谈的PID了。读取光电管的数据有两种方式:数字式和模拟式,分别介绍一下,假设我们的5个光电管是排成一排的,而每个光电管下面如果是黑色(轨迹),则输出的值就很小(因为黑色吸收了光线),反之白色的话就值比较大,这样我们设定一个阈值,ADC大于这个值的话就保存为1,反之为0,于是当我们的车处在不同位置的时候,就得到一个不同的编码(图7)。
  可以看到,这个编码,其实就可以量化为一个数字,用这个数字减去正中的编码,就可以得到我们需要的误差了,然后将这个误差输入到PID中进行运算,就可以得到控制电机的输出。原理非常简单,这种数据方式我就称为数字式的输入,与之对应的,我在Qbot中使用的是模拟式的输入。
  仔细想想上面这种输入的方式,我们发现现实世界中的情况是没有这么离散的,通过上面的方式我们可以得到5种不同的状态,但是如果车子位于其中两种状态之间呢?这样的话我们就可以取消阈值化的步骤,直接读取所有传感器的值进行加权求和,公式如下:
  adc[0] = analogRead(A1);
  adc[1] = analogRead(A2);
  adc[2] = analogRead(A3);
  adc[3] = analogRead(A4);
  adc[4] = analogRead(A5);
  error = error + 2*adc[0];
  error = error + 1*adc[1];
  error = error - 1*adc[3];
  error = error - 2*adc[4;
  這样可以更好地表征误差,大家可以思考一下为什么。
  有了误差,其次就是PID了,这个资料数不胜数,就不再啰嗦啦,大家可以直接看提供的源码。
  这里贴上我在Nano项目里对PID的介绍:所谓PID就是比例-积分-微分的英文缩写,但并不是必须同时具备这三种算法,也可以是 PD、PI,甚至只有 P算法控制,下面分别介绍每个参数的含义。
  首先需要明确一个事实就是,要实现PID算法,必须在硬件上具有闭环控制,就是得有反馈。比如控制一个电机的转速,就得有一个测量转速的传感器,并将结果反馈到控制器中,而在自平衡系统中,常用的有三个控制环 — 角度环、速度环、转向环。
  大家可以想象出每个闭环的反馈元件分别是什么吗?对就是上面元件清单里面包含的 IMU(陀螺仪+加速度计)、编码器、摄像头(或者其他可以确定方位的元件比如陀螺仪、磁场计等)。
  P(比例):以小车巡线为例,现在需要让小车跟随一条轨迹前进,用PID算法控制方向环,反馈传感器就假设为摄像头。那么小车行进中有这么几种情况:
  1.车通过摄像头发现自己处在轨迹的左边,位置误差值为正,那么就需要向右转向,转向值为正;
  2.车通过摄像头发现自己处在轨迹的右边,位置误差值为负,那么就需要向左转向,转向值为负;
  3.车通过摄像头发现自己处在轨迹的正中间,位置误差值为0,很欢快地笔直前行,转向值为0。
  于是我们发现,小车转向值的输出可以简单地通过把位置误差乘以一个系数就得到了,而且显然,误差越大,得到的转向值也越大,符合需求。这里面这个系数,就是P了,而系数具体的大小,需要根据实际情况调试确定。
  我们有了第一个公式:
  P_term = kP * error
  D(微分):还是以小车巡线为例,依然是那车那线那比例。那么小车行进中有这么几种情况:
  在P参数的作用下:
  1.小车从左边向中间逐渐靠拢,终于它到达了中点……然而,由于惯性,它根本停不下来,于是小车又到了线的右边;
  2.小车从右边向中间逐渐靠拢,终于它到达了中点……然而,由于惯性,它根本停不下来!于是小车又到了线的左边。
其他文献
【中图分类号】R714.2 【文献标识码】A 【文章编号】1550-1868(2015)02  【摘要】 目的:通过临床资料分析,在早孕先兆流产中不可盲目保胎,需适时运用黄体酮针保胎。方法:对2013年1月-2014年1月我院接受黄体酮针保胎的125例早孕先兆流产患者保胎时间和保胎效果进行回顾性分析。结果:125例病例中保胎成功94例,失败31例。保胎成功平均治疗时间6.8d,失败平均治疗时间12
期刊
【中图分类号】R969.4 【文献标识码】A 【文章编号】1550-1868(2015)02  西咪替丁为一H2受体拮抗剂,自用于临床以来,在治疗胃炎、胃及十二指肠溃疡方面取得了良好的效果。近几年来,随着临床用药研究,西咪替丁在肝病、皮肤科疾病等领域的治疗中也获得了较满意的治疗效果,本文结合有关文献综述如下。  1 在心脑血管疾病中的应用  1.1 脑出血 陶庆玲等报道,126例病人随机分为2组,
期刊
Q:最近公司采购办公用笔记本,主要是打字办公和处理一些在线交易。老板给的建议是4GB内存/500GB硬盘,我告诉老板这配置运行Win10会很慢,严重影响工作效率,但老板比較固执,这该怎么办?  A:你坚持自己的看法是正确的!4GB内存/500GB HDD运行Win10不是慢的问题,是卡得吐血的问题。Win10从设计的机制上,就需要至少8GB内存,而且一定要有SSD才能较流畅运行,再不济,也得是个1
期刊
Q:我想买个耳机玩游戏,要求是无线连接,预算在600元以内,不知道能不能买到大牌产品呢?  A:国际大厂的无线游戏耳机价格普遍不便宜,一般都在千元左右,不过也有价格比较实惠的产品,比如美商海盗船 HS70 Wireless。产品外观设计簡约沉稳不花哨,佩戴体验和游戏性能上都能满足玩家对于一款高端游戏耳机的需求。考虑到这款产品的价格还不到700元,算得上是大牌无线游戏耳机的实惠之选。
期刊
【中图分类号】R711.5 【文献标识码】A 【文章编号】1550-1868(2015)02  【摘要】目的:分析小剂量激素替代中药治疗围绝经妇女心血管疾病的治疗效果。方法:选择2012年4月-2013年4月进入我院的100例围绝经期的心血管病患者,将其分成观察组和对照组,观察组给予小剂量激素替代联合中药治疗,对照组给予常规治疗。治疗一个疗程后对比两组的治疗效果。结果:治疗后,围绝经期心血管疾病患
期刊
Q:最近在看NVMe M.2 SSD,看到很多玩家说这种产品发热量很大,使用时要降速,不知道是不是真的?  A:NVMe M.2 SSD发热量高确实是个问题,但这并非无法解决,提升其散热性能的方案很多。如果你觉得仅仅靠一个被动散热片还不够的话,那么還可以选择带热管或带风扇的散热片,就能进一步提升NVMe M.2 SSD的散热性能了。另外,不少主板在M.2插槽处也带有散热片,你直接选择这样的产品就行
期刊
在日常办公中,用户经常会进行排序操作,微软Excel提供了相应的功能按钮,但这种排序方法并不利于数据的频繁更新,但对初级办公用户来说,撰写公式进行排序,难度确实太大了一些。其实,如果你已经加入Office预览计划,那么可以借助排序函数SORT实现排序操作。SORT函数可以对数据进行排序,公式语法如下:=SORT(数据源,[排序列/行],[升序/降序],[按行/列排序])。  如图1所示的数据,现在
期刊
热热热太热了,我大重庆马上就要进入吃西瓜的季节啦!本期师姐就安利7款私藏的夏日好物,平时都不告诉其他人的那种,大家赶紧安排起来呀,不然到时候再入手就涨价啦!  有机地球护鼻油  一到换季,师姐就感觉鼻腔会特别不舒服,有鼻炎的小伙伴应该会知道这种感觉,然后师姐找到了这款来自“有机地球”的护鼻油。它的主要成分是由琼崖海棠油、乳木果油、苨苜由等天然植物提取制成的,所以更加环保安全。使用时用手指蘸取一点,
期刊
【中图分类号】R725.7 【文献标识码】A 【文章编号】1550-1868(2015)02  【摘要】在2013年11月—2014年1月秋季腹泻流行期间,我儿科收治腹泻患儿160例。其中80例采用喜炎平治疗,疗效显著,无不良反应,认为喜炎平治疗婴幼儿秋季腹泻效果好,安全、经济、方便、有效。  【关键词】秋季腹泻;喜炎平  1.临床资料与方法  1.1一般资料:160例腹泻患儿,年龄均在4月—18
期刊
Q:最近看了牛大叔做的ThinkPad X390评测,总体感觉是除了键盘的确不给力外,也还算轻便,6999元的价格也可以接受。最近正好打算买几台商用本,X390是不是最好选择呢?  A:6999元的價格是京东上的零售价,在商用渠道/分销商处购买应该还可以少一点钱。“是不是最好的选择”这个问题,我无法定性告诉你,因为“最好”并不是一个客观准确标准。但是,戴尔的Latitude 7390、7490,在
期刊