Scratch少儿编程练习:无人驾驶?我也行!
更新时间:2024-11-04 01:48 浏览量:4
Hi,各位家长和小朋友们,今天我们一起来探索一项很酷的技术:无人驾驶。它的核心包括传感器(雷达探测、图像识别等)、高精度地图、实时定位、机器学习等。尽管其结构复杂,但是再深奥的东西,都来源于最简单的模型和最基本的原理。接下来,我们一起尝试用Scratch实现“最简单的无人驾驶”。
实验要求
1. 从默认角色库导入角色:甲虫(Beetle)、苹果(Apple)
2. 在白色背景上,用画笔随意画出一条黑色、不交叉、从左下角到右上角的“道路”。
3. 把甲虫放在道路的起点,将苹果放在道路的终点。
4. 点击绿旗,要求甲虫从起点沿着道路轨迹自动“驶向”苹果,遇到苹果后停下,程序终止。
建议:画笔粗细设为80;甲虫大小设为50。
思考过程
在本实验中,要解决的核心问题只有一个:“如何让甲虫沿着画出的道路自动调整前进的方向?” 接下来,就是拆解问题、逐个击破。在这里将通过“自我发问”的方法,去逐步逼近问题的本质,将问题解决。
1. 让甲虫自动调整前进方向的前提是什么?
“越界检测”。通过“越界检测”感知甲虫已跑到道路外,需调整方向。
2. 要如何去做越界检测?
观察环境、检视现有资源和条件、寻找事物的规律。在本实验里,除了黑色道路外,剩下的背景都是白色。那么,是否可以通过“颜色碰撞”检测,来判断甲虫是否走出道路外呢?比如当甲虫碰到白色,即认为已走出道路外,需纠正方向。
3. 如何判断甲虫该向左、还是向右转纠正方向?
既然基于“颜色碰撞”来纠正方向,那对于左转、右转这两个行为,就需要不同的条件来区分。认真观察甲虫角色,它最前面两只脚的颜色不同,左绿、右蓝。也就意味着:当绿色碰到白色,甲虫跑到道路左边,需向右调整;同理,当蓝色碰到白色,甲虫跑到道路右边,需向左调整。
4. 甲虫的前进和停止
实验要求碰到苹果后甲虫停止运动、程序结束执行,可通过“重复执行直到......"搭配“角色碰撞检测”来实现这一效果。
编程实现
解题方式多样,程序可正确满足实验要求即可。现提供参考示例如下:
进一步思考
小朋友们,接下来留几道思考题给大家进一步思考与尝试。在实验过程中,如果有什么好的想法和收获,欢迎大家留言分享!
1. 在本次实验里,“越界碰撞”检测将甲虫与道路外的白色进行对比。假如道路外围的背景五彩缤纷、杂乱无章,该如何进行检测和判断?
2. 尝试改变不同的“移动步数”和“转动角度”,观察甲虫是否会发生失控的情况?大家觉得又是什么原因引起的呢?
3. 大家觉得在现实中,无人驾驶汽车都采集了哪些信息?进行了什么样的数据对比?