EV3编程程序——计程车计费参考讲解

       今天给大家分享EV3程序中的一个比较经典的案例,计程车计费程序,之前喵咪咪我在部落群做过分享,现在专门挑出来放在公众号,程序进攻参考,讲解不足之处还请各位多多批评指正。

       首先是需要搭建一辆简易结构的车辆。

EV3编程程序——计程车计费参考讲解

条件假定:

       1.假定计程车在500mm之内,无论里长都是5元计费,即起步价5元,如果超过500mm之后,如果超出100mm,则每个100mm为2元,如果不是100整数,则做出对应的除法计算;(这价格堪比宇宙飞船,秒杀铁公机)

       2.计程车只直行,这里不涉及转向

EV3编程程序——计程车计费参考讲解

 

编程思路:

       1.确定确定轮胎周长,单位为mm;

       2.保持电机(轮胎)初始状态的转动圈数/度数为0;

       3.轮胎周长和轮胎转动圈数的乘积为里程;

       4.用里程数和500mm进行比较,如果最后里程数小于等于500,那么计费为起步价5元,不存在超过起步路程,也就意味着超过后的价格为0;如果超过500mm,那么按照每100mm加价2元计费,如果不是100整那么做出对应的除法;

       (1)每100mm加价2元这个公式应该为,[(里程-500)/ 100 ] × 2,这个结果是超出500mm后的价钱,

       这里,假如超出50mm,那么费用为[(550-500)/ 100 ] × 2 = 1 元;

       (2)总价格为起步价+超过后的价格,即 5 + [(里程-500)/ 100 ] × 2 = 价格。

 

程序参考:

EV3编程程序——计程车计费参考讲解

       这里是计算轮胎周长的,周长 = π × 直径,轮胎的直径是43.2mm,π 值这里用3.14约等代替,然后写入一个变量模块,然后给两个控制轮胎直行的电机进行重置。

EV3编程程序——计程车计费参考讲解

       然后写入一个计程车直行的程序,这里是分支并列存在,即计费和计程车行驶同时进行。

       不过这里需要注意都是,这里电机直行用的是开启状态,且用循环控制时间,后面还有一个电机关闭状态。

       如果是在开启状态下,一定要添加关闭状态。如果不添加电机关闭状态在后面,那么电机直行模式下就需要用秒数来控制时长。(原因各位有兴趣的朋友可以自行研究,不是很难)

 

EV3编程程序——计程车计费参考讲解

       这里选取的是电机旋转-测量-圈数模式,读取的圈数值和周长的乘积就是里程长度,将里程写入一个变量值。然后拿里程数和500mm进行比较。

EV3编程程序——计程车计费参考讲解

       进行比较之后,就会存在超过和不超过(包含等于)两种情况,也就是常说的真伪,所以用切换模式,用于比较模块的输出结果是逻辑值,所以用切换模块-逻辑模式。

       逻辑真值情况,即超过500mm时候的计费,看下图:

EV3编程程序——计程车计费参考讲解

       这里是计算方法是按照上面的编程思路来撰写的,不过需要注意的是,一定要记得加上起步价5元,这才是最后的计费,上图红圈处。

       逻辑伪值情况,及不超过500mm时候的计费,这个比较简单,就是5元,不管是500以内的任何数字,只要出粗车启动开始计费,看下图:

EV3编程程序——计程车计费参考讲解

       最后,当电机停止转动,即计程车停止计费,我们需要将金额显示在EV3屏幕上,程序如下:

EV3编程程序——计程车计费参考讲解

       这里需要注意的是,清楚屏幕显示 √,而不是 ×,其实 × 也可以,不过会保留屏幕运行时候的数据,如下图:

       清楚屏幕显示 √ 的情况,还是很精确的数据。

EV3编程程序——计程车计费参考讲解

       清楚屏幕显示 × 的情况。

EV3编程程序——计程车计费参考讲解

       也可以这样设定计费,为了取消那些计费中的小数点后面的数据,可以加一个舍入模块,这样计费出来的数据就是整数了,比如不满里程是550mm,超出部分是50mm,不满100,可以按照100来计算,这样只要是1-100之内(包含)都按照2元计费。这样程序就需要进行稍微的改动,有兴趣的朋友可以自己试试。

       如果加入转向,同时还加入时间(这里就不是靠时间来控制电机旋转了,可以是第三方传感器),那么程序应该如何写呢,有兴趣的朋友可以试试,提示下,利用计时器模块,计时器模块和电机旋转模块同时重置,当计程车停止计费的时候,计时器也停止计时,同时将计时器的计时时间显示在EV3屏幕上,这个时候会出现时间和里程同时显示,那么屏幕清除真伪又该如何设置呢,这里就不解答了,可以自己试试,蛮有意思的。

       好了,最后程序参考如下(额,程序比较长,将手机横过来看吧)。

EV3编程程序——计程车计费参考讲解