少儿创意编程(特27)用scratch来做自动驾驶

网友投稿 2019-09-01 12:16

时下大家都在谈论人工智能,我们就用scratch来实现人工智能中较热门的自动驾驶吧!一、简单的在公路内移动。

https://cdn.china-scratch.com/timg/190903/12160630A-0.jpg

如上图,小车在白色的公路上自动行驶,碰到绿地会旋转方向。

https://cdn.china-scratch.com/timg/190903/1216063H3-1.jpg

这是全部的程序,是不是比预期中简单太多。

小车每次移动10步,当碰到绿颜色,先后退10步,再左转然后前进;如果依然碰到绿颜色,仍然先后退,接着右转然后前进。如此循环,保障小车始终在白色区域前进。

二、用传感器避障。

https://cdn.china-scratch.com/timg/190903/1216064939-2.jpg

如上图,小车在类似的地图上行驶,它是怎么自动驾驶的呢?

https://cdn.china-scratch.com/timg/190903/12160K1W-3.jpg

小车的程序很简单,它在移到的过程中不断发送广播,同时不停的接收广播来调整方向。

广播是角色之间用来传递信息用的。还有两个隐藏的角色,分别位于小车的左前方和右前方,它们同时接收小车发送的广播调整左右眼,分别发送广播给小车。

https://cdn.china-scratch.com/timg/190903/12160IO6-4.jpg

上图是左侧传感器的程序,右侧传感器程序和它类似。

三、左手规则自动驾驶。

上面两种自动驾驶的方法对地图的要求比较高,稍微复杂或有难度的地图就无法实现了。怎么办呢?当然是换方法了!

https://cdn.china-scratch.com/timg/190903/12160GT5-5.jpg

如上图是一个蜂巢迷宫,如何让小车从入口自动驾驶到出口呢?

效果如上视频,我们使用左手法则,小车从入口进入后,一直沿着迷宫的左侧行驶,直至走到出口。

那么怎么实现这个功能呢?首先我们判断左边是否有墙。

https://cdn.china-scratch.com/timg/190903/12160K412-6.jpg

具体程序如上图,如果左边有墙,我们就沿着墙走,否则就走到墙边。

https://cdn.china-scratch.com/timg/190903/12160Q924-7.jpg

走到墙边的程序如上图。走到墙边后,沿着墙走就可以了。如果前方有墙怎么办呢?

https://cdn.china-scratch.com/timg/190903/12160W195-8.jpg

上图是前方有墙的程序。如果前方有墙,我们就往右旋转。

https://cdn.china-scratch.com/timg/190903/12160V612-9.jpg

最后一段是沿着墙走的程序。大家可以尝试自己做个类似的游戏。

四、预设路线。

自动驾驶的时候,会出现多种路线,比如上文的蜂巢迷宫,如何选择最短路线,让自动驾驶的功能更进一步呢?

以上视频效果来自谢声涛老师的《scratch编程,从入门到精通》,感兴趣的朋友可以自行购买学习。

更多方法,期待您的交流!

https://cdn.china-scratch.com/timg/190903/12160Q9E-10.jpg

--end--

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