1.11. 路牌引导小车#

目的#

用积木搭建一辆小车,并通过AI摄像头实现路牌引导功能。

../../_images/05035_01.png


所需器材及连接示意图#


  • 如下图所示,将AI摄像头连接到哪吒扩展板的IIC端口,两个电机分别连接哪吒扩展板的M1和M4接口。

../../_images/05035_09_01.png

  • 如下图所示,搭建积木小车。

../../_images/05035_07_01.png

../../_images/05035_09_02.png

../../_images/05035_09_03.png

../../_images/05035_09_04.png

../../_images/05035_09_05.png

makecode编程#


步骤 1#

在MakeCode的代码抽屉中点击“高级”,查看更多代码选项。

../../_images/05001_041.png

为了给AI摄像头编程,我们需要添加一个扩展库。在代码抽屉底部找到“扩展”,并点击它。这时会弹出一个对话框,搜索”PlanetX“,然后点击下载这个代码库。

../../_images/05001_051.png

为了给哪吒扩展板编程,我们需要添加一个扩展库。在代码抽屉底部找到“扩展”,并点击它。这时会弹出一个对话框,搜索”nezha“,然后点击下载这个代码库。

../../_images/05035_09_06.png

*注意:*如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。

步骤 2#

如图所示编写程序#

  • 当开机时,初始化AI摄像头,切换为卡片识别功能。

../../_images/05035_09_07.png

  • 从AI摄像头中获取一帧;如果识别到画面中有卡片,则通过根据卡片大小来判断卡片与车的距离;当距离较远时,获取图像中卡片的x轴坐标值,根据返回的坐标值,调节左右两个电机的速度,保持图像中的卡片处于图像的中间位置。

../../_images/05035_09_08.png

  • 当距离卡片较近时,判断图像中的卡片如果为向右转的交通符号卡片,则设置电机速度,让小车向右转向,然后从AI摄像头获取三帧图像并且不做处理,以清理AI摄像头的缓冲区;判断图像中的卡片如果为停止的交通符号卡片,则设置电机速度,让小车停止前进,然后从AI摄像头获取三帧图像并且不做处理,以清理AI摄像头的缓冲区。

../../_images/05035_09_09.png

  • 当AI摄像头没有检测到图片时,小车直线前进。

../../_images/05035_09_10.png

完整程序:

../../_images/05035_09_11.png

参考程序#

请参考程序连接:https://makecode.microbit.org/_6aeRdg7s9MXi

你也可以通过以下网页直接下载程序,下载完成后即可开始运行程序。

---

结果#

  • 搭载AI摄像头的积木小车直线行驶,根据路牌引导转弯或者停车。