乐高机械与编程——超级跑车
今年的暑月,因家人生病,我和爸爸频频出入医院,女儿夏令营回来就处于自由无关注状态。我们临出门,基本会把一天需要完成的学习内容写下来,让她看着办吧。
这次的乐高机械与编程——超级跑车,是女儿根据要求搭建好(爸爸为她新购了红外线信标),爸爸则见缝插针讲解编程与原理。
这次搭建的supercar没有用机械差速器,我们用电子差速器来实现车辆转弯时车轮的差速控制。
重点概念:
差速器,汽车差速器能够使左、右(或前、后)驱动轮实现以不同转速转动的机构。主要由左右半轴齿轮、两个行星齿轮及齿轮架组成。功用是当汽车转弯行驶或在不平路面上行驶时,使左右车轮以不同转速滚动,即保证两侧驱动车轮作纯滚动运动。
当汽车以速度V行驶时,外侧车轮的速度VR必然大于内侧车轮的速度VL。差速器就是这么个原理,当一个车轮转动得比另一个慢时,它就可以把发动机的动力独立分配给车轮。如果不使用差速器,当汽车转向时,一个轮子将会失去地面的牵引力而打滑。
以下是爸爸整理的编程思路,为编程同好者提供一种方法:
兴趣是最好的老师
—爱因斯坦
45544教育版里没有红外线传感器和信标,少了不少有意思的搭建,最近刚刚入手就搭建一辆supercar,这下可有的玩了!~
搭建过程不复杂,重点在编程方面,下面是完成后的作品。
该车用了一个中型电机作为转向驱动,两个大型电机做后驱动力。
Supercar编程
差速器
对于一个理科生来说,这个的确有点难度,从网上搜了半天,总算是弄懂了。
当汽车以速度V行驶时,外侧车轮的速度VR必然大于内侧车轮的速度VL。差速器就是这么个原理,当一个车轮转动得比另一个慢时,它就可以把发动机的动力独立分配给车轮。如果不使用差速器,当汽车转向时,一个轮子将会失去地面的牵引力而打滑。【现在好多四驱车辆都有了差速锁,当车辆在紧急转向时,其中一个车轮空转,另一个在良好路面上的车轮也得不到扭矩,汽车就失去了行驶的动力。在这种情况下,差速器不起作用。这时差速锁起作用,动力可以传递到另一侧车轮,使汽车得到行驶的动力,从而摆脱困境。】
机械差速器工作原理
乐高科技差速组件4525184,45544和31313里都没有,需另购。
这次搭建的supercar没有用机械差速器,我们用电子差速器来实现车辆转弯时车轮的差速控制。
以这个转向运动模型,找出汽车速度、前轮转向角度和汽车左右后轮的速度之间的关系。H为前后轮之间的距离,S是汽车的转向半径,D是后轮之间距离的一半,A是转向角度,使用几何关系最终得到:
右轮速度 VR=V×(1+D×0.017×A÷H)
左轮速度 VL=V×(1-D×0.017×A÷H)
好了知道了这些关系后,可以进入编程阶段了。我们需要告诉程序体2个参数:功率与转向角度,由它算出各轮子的转向速度,并完成转向运动!
自定义模块ResetSteer
中型电机转向初始化。先让电机开启尽可能转向,到达一个极限位置,然后以一精确角度反转到中心位置,以这个作为接下来每个模块的参考点。程序块如下:
这个模块不需要输入任何参数
自定义模块Steer
中型电机转向模块。根据输入的功率与转向角度,中型电机对前轮做出精确转向的操作。
这个模块共有4个参数输入:Port(端口),Power(功率),Angle(转向角度),Brake at End(制动状态)。
自定义模块Drive
驱动两个大型电机同时转向。用电子差速器公式,计算出每个车轮的速度,驱动电机。后轮与前轮之间的距离H和后轮之间的距离的一半D分别用两个常量表示。
输入两个参数:功率和转向角度,完成对左右后轮的独立速度和转向驱动。这里用到了EV3多任务并行处理,前轮转向模块Steer与主程序并行被执行。
前后轮的转向和驱动都设计完了,下一步就是对红外线信息的处理模块。
自定义模块ReadRemote
通过红外线传感器获取外界(信标)传来的功率和转向参数。信标按钮有多种组合,不一一介绍了。
便于按键,加了点外设!
以最大75%功率驱动电机,以30转向角度驱动中型电机 ,根据不同的信标的按钮组合,超跑会做出相应的运动和转向。
编程远程控制汽车
现在可以控制汽车到处转转了
这个车同时安装了红外线和颜色传感器,可以通过更改程序,完成诸如巡线、跟随信标等有意思的游戏。还有很多需要优化的地方没有列出,有兴趣的自己研究研究。
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com