乐高机械与编程——超级跑车

网友投稿 2018-07-20 10:28

 今年的暑月,因家人生病,我和爸爸频频出入医院,女儿夏令营回来就处于自由无关注状态。我们临出门,基本会把一天需要完成的学习内容写下来,让她看着办吧。

这次的乐高机械与编程——超级跑车,是女儿根据要求搭建好(爸爸为她新购了红外线信标),爸爸则见缝插针讲解编程与原理。

这次搭建的supercar没有用机械差速器,我们用电子差速器来实现车辆转弯时车轮的差速控制。

https://cdn.china-scratch.com/timg/180722/102R13410-0.jpg

https://cdn.china-scratch.com/timg/180722/102R24Q6-1.jpg

重点概念:

差速器,汽车差速器能够使左、右(或前、后)驱动轮实现以不同转速转动的机构。主要由左右半轴齿轮、两个行星齿轮及齿轮架组成。功用是当汽车转弯行驶或在不平路面上行驶时,使左右车轮以不同转速滚动,即保证两侧驱动车轮作纯滚动运动。

当汽车以速度V行驶时,外侧车轮的速度VR必然大于内侧车轮的速度VL。差速器就是这么个原理,当一个车轮转动得比另一个慢时,它就可以把发动机的动力独立分配给车轮。如果不使用差速器,当汽车转向时,一个轮子将会失去地面的牵引力而打滑。

以下是爸爸整理的编程思路,为编程同好者提供一种方法:


兴趣是最好的老师

                 —爱因斯坦

   45544教育版里没有红外线传感器和信标,少了不少有意思的搭建,最近刚刚入手就搭建一辆supercar,这下可有的玩了!~https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/timg/180722/102R213Q-4.jpg

  搭建过程不复杂,重点在编程方面,下面是完成后的作品。

https://cdn.china-scratch.com/timg/180722/102R24617-5.jpg

https://cdn.china-scratch.com/timg/180722/102R34413-6.jpghttps://cdn.china-scratch.com/timg/180722/102R34307-7.jpghttps://cdn.china-scratch.com/timg/180722/102R36432-8.jpg

    该车用了一个中型电机作为转向驱动,两个大型电机做后驱动力。

https://cdn.china-scratch.com/timg/180722/102R3E14-9.jpg

Supercar编程

差速器

    对于一个理科生来说,这个的确有点难度,从网上搜了半天,总算是弄懂了。

    当汽车以速度V行驶时,外侧车轮的速度VR必然大于内侧车轮的速度VL。差速器就是这么个原理,当一个车轮转动得比另一个慢时,它就可以把发动机的动力独立分配给车轮。如果不使用差速器,当汽车转向时,一个轮子将会失去地面的牵引力而打滑。【现在好多四驱车辆都有了差速锁,当车辆在紧急转向时,其中一个车轮空转,另一个在良好路面上的车轮也得不到扭矩,汽车就失去了行驶的动力。在这种情况下,差速器不起作用。这时差速锁起作用,动力可以传递到另一侧车轮,使汽车得到行驶的动力,从而摆脱困境。】

https://cdn.china-scratch.com/timg/180722/102R4D32-10.gif

    机械差速器工作原理

https://cdn.china-scratch.com/timg/180722/102R423R-11.jpg

   乐高科技差速组件4525184,45544和31313里都没有,需另购。

   这次搭建的supercar没有用机械差速器,我们用电子差速器来实现车辆转弯时车轮的差速控制。

  https://cdn.china-scratch.com/timg/180722/102R42E4-12.jpg

以这个转向运动模型,找出汽车速度、前轮转向角度和汽车左右后轮的速度之间的关系。H为前后轮之间的距离,S是汽车的转向半径,D是后轮之间距离的一半,A是转向角度,使用几何关系最终得到:

右轮速度  VR=V×(1+D×0.017×A÷H

左轮速度  VL=V×(1-D×0.017×A÷H

    好了知道了这些关系后,可以进入编程阶段了。我们需要告诉程序体2个参数:功率与转向角度,由它算出各轮子的转向速度,并完成转向运动!

自定义模块ResetSteer

        中型电机转向初始化。先让电机开启尽可能转向,到达一个极限位置,然后以一精确角度反转到中心位置,以这个作为接下来每个模块的参考点。程序块如下:

https://cdn.china-scratch.com/timg/180722/102R46301-13.jpg

   这个模块不需要输入任何参数

自定义模块Steer

    中型电机转向模块。根据输入的功率与转向角度,中型电机对前轮做出精确转向的操作。

https://cdn.china-scratch.com/timg/180722/102R4KY-14.jpg

   这个模块共有4个参数输入:Port(端口),Power(功率),Angle(转向角度),Brake at End(制动状态)。

自定义模块Drive

        驱动两个大型电机同时转向。用电子差速器公式,计算出每个车轮的速度,驱动电机。后轮与前轮之间的距离H和后轮之间的距离的一半D分别用两个常量表示。

https://cdn.china-scratch.com/timg/180722/102R41611-15.jpg

   输入两个参数:功率和转向角度,完成对左右后轮的独立速度和转向驱动。这里用到了EV3多任务并行处理,前轮转向模块Steer与主程序并行被执行。

   前后轮的转向和驱动都设计完了,下一步就是对红外线信息的处理模块。

自定义模块ReadRemote

    通过红外线传感器获取外界(信标)传来的功率和转向参数。信标按钮有多种组合,不一一介绍了。

https://cdn.china-scratch.com/timg/180722/102R452I-16.jpg

   便于按键,加了点外设!https://cdn.china-scratch.com/Public/Home/images/grey.gif

https://cdn.china-scratch.com/timg/180722/102R5H02-18.jpg

    以最大75%功率驱动电机,以30转向角度驱动中型电机 ,根据不同的信标的按钮组合,超跑会做出相应的运动和转向。

编程远程控制汽车

https://cdn.china-scratch.com/timg/180722/102R520X-19.jpg

    现在可以控制汽车到处转转了https://cdn.china-scratch.com/Public/Home/images/grey.gifhttps://cdn.china-scratch.com/Public/Home/images/grey.gif

        这个车同时安装了红外线和颜色传感器,可以通过更改程序,完成诸如巡线、跟随信标等有意思的游戏。还有很多需要优化的地方没有列出,有兴趣的自己研究研究。


--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com