步骤1 回顾上节课内容,展示作品
上节课我们学习到了机器猫慧眼小MU交通卡片识别能力
要求大家制作一个无人驾驶小车进行闯关。
不知道大家完成得怎么样?我们来看看同学们的作品吧
步骤2 学习新知
今天我们来学习小MU的下一个功能——识别数字
小MU能准确识别0-9
我们先来认识一下小MU的数字识别功能
依然是先设置小MU,然后再识别
这里以1,2,3为例进行了测试
同学们动手试试,看看小MU是否能准确识别0-9
步骤3 应用新知
小MU的数字识别能力是不是非常强
我们利用这个功能能做些什么呢?
我们可以利用之前的语音播放模块让机器猫开口说数字
我们还可以利用小MU来做数学题,比如加减乘除
同学们想想该怎么做?
设计思路:
以个位数加法为例
1、先识别被加数
2、然后识别+号
3、最后识别加数
4、然后掌控板进行计算,显示结果。
在这四个步骤中,1,3,4都很容易识别
但是小MU识别的卡片里并没有加号我们该如何解决呢?
我们可以换一个思路,利用之前小MU的颜色识别功能
找来四种不同的颜色的卡纸,分别在上面写上加减乘除号
在我们人看来是加减乘除,在小MU看来就是不同的颜色,然后将颜色和运算符对应即可
比如红色卡纸上写加号,黄色卡纸写减号,绿色卡纸写乘号,蓝色卡纸写除号
然后问题就解决了
里面设置了三个函数
fuzhi函数是对两个数进行赋值
fuhaoyunsuan函数是通过颜色识别来判定运算符号
jisuan函数是进行计算并显示结果
里面还设置了几个变量,NUM1是用来代表第一个数字,NUM2是代表第二个数字,fuhao是运算符1代表+2代表-3代表*4代表/,result代表最终结果。
fuzhi函数如下
fuzhi这个函数不完整,同学们自行补充完整
我们会发现这个非常长,虽然不复杂,但是容易出错,其实我们可以使用之前学到的label来代替,这样代码就会非常短
具体代码如下
是不是要少很多啊
下面在来看看fuhaoyunsuan函数
这里需要注意两个问题:
1、是嵌套问题,层层嵌套
2、我们在一开始设置了白平衡为锁定白平衡,在运行的时候要先拿一张白纸放到小MU前面,让他调整白平衡,否则会出现测不准的情况。
最后是jisuan函数
在这个程序里有几个地方要注意
firstnum和secondnum的初始值为什么要设置为-1呢?
其实只要设置为不是0-9即可
识别到数字卡片,如果firstnum是-1,那就说明是第一个数
识别到数字卡片,如果firstnum小于-1并且符号大于0,,那就说明是第二个数
当firstnum和secondnum都不是-1,并且fuhao>0,说明两个数已经识别完成,运算符也识别完成,可以计算了。
同学们有没有发现其中的问题呢?
第一次运行是完全正常的,但是第二次运行就会出错这是为什么呢?
这是因为没有对几个变量进行初始化
因此我们要在jisuan函数之后加入一个初始化函数
问题就解决了,同学们自行完成。
步骤4 反思及作业
本节课我们学习了小MU的数字识别功能
并且完成了一个个位数的加减乘除运算
那么现在问题来了,我们如何实现多位数的四则运算呢?
同学们课后完成,下节课进行展示。
Tarzen2019.08.05
老司机,等待推出全套教学课程
rzyzzxw2019.08.04
张老师好厉害,学习了