少儿创意编程(特27)用scratch来做自动驾驶
时下大家都在谈论人工智能,我们就用scratch来实现人工智能中较热门的自动驾驶吧!一、简单的在公路内移动。
如上图,小车在白色的公路上自动行驶,碰到绿地会旋转方向。
这是全部的程序,是不是比预期中简单太多。
小车每次移动10步,当碰到绿颜色,先后退10步,再左转然后前进;如果依然碰到绿颜色,仍然先后退,接着右转然后前进。如此循环,保障小车始终在白色区域前进。
二、用传感器避障。
如上图,小车在类似的地图上行驶,它是怎么自动驾驶的呢?
小车的程序很简单,它在移到的过程中不断发送广播,同时不停的接收广播来调整方向。
广播是角色之间用来传递信息用的。还有两个隐藏的角色,分别位于小车的左前方和右前方,它们同时接收小车发送的广播调整左右眼,分别发送广播给小车。
上图是左侧传感器的程序,右侧传感器程序和它类似。
三、左手规则自动驾驶。
上面两种自动驾驶的方法对地图的要求比较高,稍微复杂或有难度的地图就无法实现了。怎么办呢?当然是换方法了!
如上图是一个蜂巢迷宫,如何让小车从入口自动驾驶到出口呢?
效果如上视频,我们使用左手法则,小车从入口进入后,一直沿着迷宫的左侧行驶,直至走到出口。
那么怎么实现这个功能呢?首先我们判断左边是否有墙。
具体程序如上图,如果左边有墙,我们就沿着墙走,否则就走到墙边。
走到墙边的程序如上图。走到墙边后,沿着墙走就可以了。如果前方有墙怎么办呢?
上图是前方有墙的程序。如果前方有墙,我们就往右旋转。
最后一段是沿着墙走的程序。大家可以尝试自己做个类似的游戏。
四、预设路线。
自动驾驶的时候,会出现多种路线,比如上文的蜂巢迷宫,如何选择最短路线,让自动驾驶的功能更进一步呢?
以上视频效果来自谢声涛老师的《scratch编程,从入门到精通》,感兴趣的朋友可以自行购买学习。
更多方法,期待您的交流!
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com