传感器构建并编程三个人工智能机器人
扫描二维码
随时随地手机看文章
在现代机器人技术中,传感器并非仅仅是元件——它们是整个系统的感觉器官。它们使机器能够与现实世界进行互动、做出决策并执行有意义的动作。
正是这一点让我对 ELECFREAKS 雅志 Pro 人工智能机械动力套件产生了浓厚的兴趣。我曾经制作过很多东西,但这款套件一经接入电源,就给我带来了与众不同的感受。只要挥挥手,就能看到汽车做出反应,这种感觉有种奇特的满足感。
这套工具并非仅仅是一款积木搭建玩具。它内置了真正的人工智能传感器,这种技术与仓库机器人、虚拟现实控制器以及自动驾驶车辆所采用的技术相同——只是其规模适合学生能够完全理解、亲手搭建并从零开始进行编程。
在本指南中,我将带您完成使用此套件进行的三项完整构建过程,每一项都会让您学到新的知识:
•案例 7 — 一款通过手势控制的赛车
•案例 15 — 一种能够吊起货物并根据语音指令行驶的运输车辆
•案例 16 — 一款能够避开障碍物、沿着直线行进,并且还能根据你的声音做出反应的甲虫机器人——在运行过程中这些功能均可随时切换。
我们还将深入探讨每个传感器的具体工作原理,并在 MakeCode 中编写代码。无论你是第一次尝试这个项目的学生,还是已经熟悉微:bit 设备操作的人——我相信你都会在这里发现一些非常酷的东西。
硬件
•Nezha Pro 扩展板
•Micro:bit V2
•智能电机(3 个)
•编程电缆
PlanetX传感器
•手势传感器
•碰撞传感器
•超声波传感器
•LED - 彩虹色
•追踪传感器
•OLED 显示屏
•电动风扇
•语音识别传感器
PlanetX传感器
在我们开始进行任何搭建工作之前,让我们先谈谈这些传感器——因为老实说,正是这些传感器让这套工具独具特色。ELECFREAKS 雅志 Pro 人工智能机械电源套件配备了 8 个 PlanetX 传感器,它们均采用 RJ11 连接器设计,无需焊接,也不需要复杂的布线——只需将它们连接到正确的端口,即可立即投入使用。
手势传感器
这款传感器能够识别 9 种不同的手势动作——向上、向下、向左、向右、向前、向后、顺时针、逆时针以及挥手。它通过红外线工作。传感器持续发射红外信号,当你的手在它前方移动时,反射的光模式会发生变化。内置处理器会分析这些变化,并将其转化为手势数据。为了获得最佳效果,请将手保持在约 5 至 15 厘米的距离。过近会使传感器无法正常工作,而距离过远则会降低准确性。
语音识别传感器
这是该套件中最为出色的模块之一。它具备离线语音识别功能,这意味着一切操作都直接在传感器上进行——无需网络连接。该模块预先预设了 21 条英语指令,例如“全速前进”“向左转”和“避开障碍物”。传感器会分析您的声音,将其转换为频率模式,并与存储的模板进行匹配。
为获得最佳效果:
•说话清晰些
•保持在约 50 厘米范围内
•避免嘈杂的环境
超声波传感器
这种传感器是通过声波来测量距离的,其原理类似于蝙蝠的导航方式。它发射一个 40 千赫兹的超声波脉冲,并测量回声返回所需的时间。然后,它根据这个时间计算出距离。
距离 = (回声时间 × 声速)÷ 2
它能够探测到距离约 2 厘米至 4 米范围内的物体,因此非常适合用于避障。
线迹跟踪传感器
这种传感器利用红外线来检测表面的对比度。
白色表面反射的红外线更多 → 信号强度更高
黑色表面会吸收红外线 → 信号强度低
通过对比左右两侧的读数,机器人能够确定自身相对于一条直线的位置,并持续调整其移动方向。这一过程进行得非常迅速,从而实现了流畅且精准的直线跟随。
碰撞传感器
一种简单但实用的传感器——本质上就是一个机械开关。当机器人实际碰到某物时,该传感器会被触发并发送信号。它作为备用的安全系统或者特定动作的触发器,效果都很好。
“LED 彩虹”
一个能够显示多种颜色和动态效果的 RGB 发光二极管环形灯。
你可以用它来:
•指示传感器状态
•创建视觉效果
•构建互动式照明系统
OLED 显示屏
一个小型显示屏用于显示实时数据,例如:
•传感器读数
•指令
•调试信息
虽然在默认版本中并未使用,但它对于理解及调试您的系统来说却非常有用。
电动风扇
一个简单的执行器,用于展示输出控制。它会响应指令(例如语音输入),并且是传感器如何控制实际设备的一个绝佳示例——类似于智能家居系统。
既然您已经了解了每个传感器的工作原理,那么我们就准备进入有趣的部分——构建环节了。我们将先制作一个简单的手势控制机器人,然后过渡到语音控制,最后将多个传感器整合成一个完全互动的系统。
Nezha Pro 板
既然你已经了解了这些传感器,那么在我们开始组装之前还有一个重要的部件——将所有部件连接在一起的电路板。这就是“奈扎 Pro 扩展板”。可以这样理解:微:bit 就像是大脑——它运行你的代码并做出决策,而奈扎 Pro 板则是控制中心——它为电机供电、连接传感器,并安全地管理一切。
单独的微:布丁板无法有效地驱动电机或处理多个传感器。这个板子就处于两者之间,能确保整个系统运行顺畅。这个项目中的每一个构建都依赖于它——所以现在理解它能帮你避免日后出现很多困惑。乍一看,这个板子可能会让人感到有些复杂——有很多接口,还有很多标签。但一旦你将其拆解开来,就会发现其实非常简单。
电机端口(M1、M2、M3、M4)
这些接口用于连接电机。每当您的代码中出现类似“以 50% 的速度运行电机 M1”这样的表述时,该指令就会通过这些接口发送出去。这些连接器是 RJ11 型号的,因此安装起来非常方便,而且不会出现插入错误的情况。
IIC 接口(I2C 通信)
这适用于诸如手势传感器、语音识别模块等智能传感器。IIC 允许多个设备共享同一通信线路,因此您无需为每个高级传感器分别设置独立的端口。在本项目中,每当您看到“连接至 IIC”时——这就是对应的端口。
J1 和 J2 端口
这些是针对使用基本信号的较简单传感器设计的。
J1 → 路线跟踪传感器
J2 → 超声波传感器
一种简单的记忆方法是:
智能传感器 → IIC
基本传感器 → J1 / J2
Type-C 接口
用于为车载电池充电。LED指示灯在充电或使用过程中会显示电池电量情况。
完全充电时间:约 50 分钟
运行时间:约 4 小时
颜色编码系统(对初学者非常有帮助)
我特别喜欢的一个特点是颜色匹配系统。电路板上的每个端口都有特定的颜色,每根线缆也都与之相匹配。所以你无需猜测,只需匹配颜色然后插入即可。这看似是个微不足道的小细节——但在使用多根电线进行组装时,它却能产生巨大的影响。
设置 MakeCode
既然硬件已经准备就绪,现在就该让一切正常运行了——这就是编程发挥作用的时候了。即便您之前从未编程过也没关系。我们将使用 MakeCode,它非常适合初学者。它全是拖拽式模块,所以您无需编写复杂的代码。MakeCode 是一个为 micro:bit 设计的免费在线平台。您只需在浏览器中打开它,将模块拖拽在一起,您的程序就准备好了。屏幕上甚至还有模拟器,所以您可以在上传代码之前先测试一下。
开始步骤
•点击“新建项目”
•给它起个像“手势车”或“语音卡车”这样的名字吧
•点击“创建”
•添加扩展功能
•要使用这套工具,我们需要添加两个扩展部件。
•点击“扩展项”(在块列表的底部)
•搜索“Nezha Pro”→ 安装它
•返回并搜索“PlanetX”→ 安装它
现在您会看到有关电机和传感器的新模块。如果没有这一步操作,您就无法找到正确的控制设置。
构建 1 — 通过手势控制的赛车
让我们终于动手做点什么吧。这是本指南中的第一个机器人——而且说实话,这是最能让大家乐在其中展示的机器人。当你挥挥手,汽车做出回应时,你周围的所有人都想来试一试。
这也是最简单的搭建方式,因此非常适合作为入门之选。仅需两个电机、一个传感器以及一个紧凑的赛车底盘。如果你是初次使用这款套件,那么这个搭建过程将帮助你了解所有部件是如何组合在一起的,之后我们再继续探索更高级的机器人。那么,让我们从最重要的部分——结构开始吧。
构建结构
在我们安装任何传感器或编写任何代码之前,我们需要先搭建底盘。这是你的机器人的基础部件——它承载着电机、轮子、电路板和传感器。如果这部分做得妥当,那么其他所有部分的操作都会变得容易得多。
我已附上了包含详细步骤及图片的官方文档。请参照这些图片和说明来操作——图片会向您展示具体的操作步骤,而这些提示则会帮助您避免常见的错误。
步骤 1:硬件连接
现在是时候将所有部件连接到板上了,然后将你的构建物变成一个能正常运行的机器人了。这个步骤很简单——只需要进行三次连接操作。
将左侧电机连接至 M1,右侧电机连接至 M2。这些连接器只能朝一个方向插入,所以请不要强行插入。插好之后,要确保两根电线都已正确固定到位。
接下来,将手势传感器连接到 IIC 接口。该传感器有颜色标识,只需将其匹配好并插入即可。同时要确保传感器略微朝上并向前倾斜,以便获得更好的检测效果。
请花点时间把电线整理好,并使其远离轮子。松动的电线在机器人移动时可能会引发故障。一旦所有部件都连接妥当且固定牢固,那么你的硬件设置就完成了。
步骤 2:编码
构建工作已完成,所有部件均已连接——现在让我们加载代码吧。我已经准备好了完整的程序,所以您无需从头开始编写任何内容。只需打开它,理解其逻辑,然后将其上传到您的 micro:bit 即可。
打开程序
您会看到所有的模块都已经排列好了——每一个动作都与特定的运动相对应。在上传之前,请花点时间仔细查看一下。哪怕只是有个初步的了解,之后也会有很大帮助的。
连接微型:比特设备
使用 USB 数据线将你的 micro:bit 连接到电脑上。它会以名为“MICROBIT”的驱动器的形式出现,就像任何 USB 设备一样。
上传代码
在 MakeCode 中,点击“下载”,然后选择“连接设备”。选择“BBC 微型:布丁 CMSIS-DAP”并点击“连接”。现在再次点击“下载”——代码将直接传输。在上传过程中,您会看到 LED 发光闪烁。一旦停止闪烁,代码就已运行。
第 3 步:测试
现在到了最精彩的部分——测试你的机器人。一切准备就绪:结构、线路和代码都已准备妥当。让我们来看看它的实际表现吧。
插入微型:比特模块
将微:比特设备滑入“哪吒”专业版主板上的插槽中。确保其放置妥当,且 LED 显示屏朝外。
开启电源
将电源开关拨至“开启”位置。板上的指示灯将会亮起,微:bit 将开始运行。给它几秒钟的时间进行初始化。
试试这些手势吧
将汽车停在平坦的地面上,然后将手举高约 8 至 10 厘米的位置靠近传感器。现在来测试不同的手势:
•前言:向前移动
•“Backward”:向后移动
•左:向左转
•正确选项:向右转
•无动作:停止
如果一切运行正常——你的机器人运转得十分出色.
快速解决办法
如果感觉有什么不对劲,别担心——通常只是需要做一些小的调整就能解决。
没有响应 → 检查电源并重新插入手势传感器
错误的方向 → 交换 M1 和 M2 的位置
一个电机不运转 → 重新连接那根电线
未检测到手势 → 缓慢移动你的手,并保持适当的距离
那最初的反应
一旦它开始运行起来,试着把它递给身边的人。看着他们仅仅通过移动手部就能控制机器人——没有遥控器,也没有按钮——这绝对是整个构建过程中最令人满足的部分。
第 2 版——语音控制的运输车辆
这一次,这个机器人不仅能移动,还能搬运物品。你们正在打造一款小型运输工具,它配备有可升降的载货床,并能响应语音指令。向前开、转弯、将东西装上去,然后只需一个简单的指令,就能看到它升起货物。
构建结构
这种结构比之前的结构要更为复杂一些。你仍然保留着主驱动底盘,不过现在顶部多了一个额外的装置——货箱——它由第三个电机控制。这里的对齐工作更为重要,因为升降装置需要运行平稳。
按照组装的 PDF 文件步骤逐一进行操作,并牢记以下要点。快速检查一下——轮子应能自由转动,结构应感觉稳固。
步骤 1:硬件连接
既然结构已经完成,现在就该将所有部件连接到板上了。这一步骤与之前的组装过程非常相似——唯一的区别在于增加了用于货物升降的电机。
•左电机:M1
•右电机:M2
•电梯电机:M3
•语音传感器:IIC
首先将两个驱动电机连接起来。将左侧电机插入 M1 插口,右侧电机插入 M2 插口。确保两个插头都完全插入到位。如果之后某个电机没有反应,这通常就是原因所在。接下来,将升降电机连接到 M3。由于这个电机负责移动货箱床,所以要留出一些额外的线缆长度,以便机械臂能够自由移动而不会拉扯电线。
现在将语音传感器连接到 IIC 接口端口。该连接器有颜色标识,只需将其匹配好并插入即可。连接完成后,检查传感器是否朝外且未被遮挡,这样它才能清晰地检测到您的声音。
步骤 2:编码
构建工作已完成,所有部件均已连接——现在让我们加载代码吧。我已经准备好了完整的程序,所以您无需从头开始编写任何内容。只需打开它,理解其逻辑,然后将其上传到您的 micro:bit 上即可。
打开程序
每个语音指令都被对应到特定的操作上,因此很容易理解机器人是如何做出反应的。
连接微型:比特设备
使用 USB 数据线将你的 micro:bit 连接到电脑上。它会在电脑上显示为一个名为“MICROBIT”的驱动器。
上传代码
在 MakeCode 中,点击“下载”,然后选择“连接设备”。选择“BBC 微型:布丁板 CMSIS-DAP”,进行连接,然后再次点击“下载”。在上传过程中,LED 将闪烁。一旦停止闪烁,代码就准备好了。
第 3 步:测试
一切准备就绪——现在让我们看看它是否真的会听从你的指令。将车辆放置在平坦的地面上,周围要有足够的空间。确保货箱处于正常水平位置。站在传感器前约 30 至 50 厘米处,以正常音量清晰地说话。无需大声喊叫。
测试命令
逐一尝试每一个命令,并在每个命令之间稍作停顿:
•全速前进:向前行进
•关闭:设备停止运行
•“Reversing”:向后移动
•向左转:向左转
•向右转:向右转
•执行功能一:抬起货箱床
•关闭设备:降低床的高度并停止运行
如果一切运行正常——那么你的装置就运行得完美无缺了!在货箱上放置一些小物件,然后再次进行测试。移动、转动并抬起货箱。您很快就会注意到平衡和移动对货物的影响——就像真正的运输系统一样。
第 3 版——语音控制的甲壳虫机器人
好了——这是最后且最令人兴奋的版本了。与之前的版本不同,这个机器人不仅会执行指令——还能通过你的声音在不同模式之间切换。这是多个传感器协同工作的地方——就像真正的自主系统那样。让我们来建造它吧。
构建结构
这是该项目中最为复杂的结构。其设计灵感来源于一种甲虫——低矮、宽阔且稳固——并且在其身体周围安装了传感器。每个传感器都有特定的功能,因此其位置在这里至关重要。我已附上了包含图片的官方详细步骤 PDF 文件。请参照这些说明以及下面的提示——图片会向您展示具体的操作步骤,而这些提示将帮助您避免常见的错误。
步骤 1:硬件连接
结构已经准备就绪——现在让我们将所有部件连接到板子上。这是迄今为止连接部件最多的一次组装,共使用了五根电缆。但整个过程是相同的:将合适的电缆连接到对应的端口,并将其牢固地插好。
•左电机:M2
•右电机:M3
•语音传感器:IIC
•超声波传感器:J2
•线路跟踪传感器:J1
一个重要的细节是——此次构建使用的是 M2 和 M3 电机。切勿出于习惯而切换回 M1,因为该代码是为这种配置设计的。
首先连接驱动电机。将左侧电机插入 M2 插口,右侧电机插入 M3 插口。确保两根线缆都完全插入到位。如果之后感觉方向不对,可以简单地交换它们的位置。接下来,将语音传感器连接到 IIC 端口。匹配颜色后将其插入。检查它是否朝外且没有被遮挡。
现在将超声波传感器连接到 J2 接口。插入后,从正面快速查看一下——两个传感器的开口都应完全畅通,以便进行正常检测。最后,将线路跟踪传感器连接到 J1 接口。确保其仍位于地面上方约 1 至 2 厘米处,且不与表面接触。
步骤 2:编码
一切事物都相互关联。现在让我们启动这个程序,让这三种模式得以实现。
打开程序
这个程序要复杂一些,因为它支持多种模式——语音指令可在不同模式之间切换,而且每种模式都使用不同的传感器。
连接微型:比特设备
使用 USB 数据线将你的 micro:bit 连接到电脑上。它会在电脑上显示为一个名为“MICROBIT”的驱动器。
上传代码
在 MakeCode 中点击“下载”,选择“连接设备”,然后选择“BBC 微型:布丁板 CMSIS-DAP”。再次点击“下载”——代码将直接传输。等待 LED 停止闪烁。这意味着它已准备就绪。
第 3 步:测试
一切都在相互连接并由电力驱动——现在是时候测试这三种模式了。这是整个项目中最令人兴奋的部分。如果你还没有做的话,请准备一条简单的赛道用于线路追踪。
语音指令
在测试时请使用以下命令:
•避免障碍物:避障模式
•线路追踪:线路跟随模式
•全速前进:向前行进
•“Reversing”:向后移动
•向左转:向左转
•向右转:向右转
•关闭设备:停止一切操作
•前两个指令用于切换模式——先对它们进行测试。
测试 1 — 手动控制
将机器人放置在地板上,并在其周围留出足够的空间。现在发出简单的语音指令,如“向前”“向后”“向左”“向右”。请清晰地说话,并在每个指令之间留出短暂的停顿,以便系统能够正确响应。
观察机器人会如何反应。它应当按照每个指令准确地朝着正确方向移动,并在接到停止指令时停止。如果一切都能如预期般正常响应,那么您的手动控制系统就是正常工作的了。
测试 2 — 避障能力
接下来进行自主行为的测试。在机器人面前放置一些物体——书籍、盒子或者任何有坚固表面的物品。说“避开物体”。机器人应该开始自行移动,并利用超声波传感器来探测障碍物。当它接近一个物体时,它应该自动改变方向并继续移动,无需任何外部指令。让它运行几秒钟,观察它对不同位置和距离的反应。要随时停止它,可以说“关闭设备”。
测试 3 — 直线跟踪
接下来,测试线路跟踪模式。将机器人放置在您准备好的轨道上,确保线路跟踪传感器正对轨道上的线路。开始线路跟踪。
机器人应能自动沿着设定的路径行进,持续调整方向以保持在直线上。尝试使用笔直的路径和平缓的曲线,看看它能否很好地保持直线状态。如果它行进平稳且没有偏离路径,那么这种模式就是正常有效的。
测试 4 — 模式切换
现在来测试最强大的功能——实时切换模式。先进行线路跟踪,让机器人沿着路径移动。在它移动的过程中,可以说“避开障碍物”。它应该立即切换到避障模式。然后说“全速前进”。此时手动控制应开始生效。最后,说“关闭设备”。所有操作应立即停止。
这种模式之间的无缝转换正是使这一构建方式如此令人赞叹的原因。它展示了多个传感器和多种行为如何能在单一系统中协同运作。
结论
就是这样。起初你只有一堆零部件,而现在你已经制造出了三款能正常运行的机器人——一款通过手势控制的汽车、一款通过语音控制的车辆,以及一款多传感器的甲虫机器人。在这个过程中,你不仅仅是把东西组装起来——你还学会了传感器、代码和硬件是如何协同工作的。而说实话,这才是最重要的部分。
这三款产品仅仅是个开始。这套套件还有许多其他模型可供您尝试,而且它们都采用了您已经掌握的相同基础原理。一旦您理解了传感器的工作原理,您就可以开始融合各种想法并着手创作自己的项目了。
尝试一些新的事物。修改代码。整合传感器。构建那些在手册中没有提及的东西。这就是真正有趣的地方。传感器是你的输入,电机是你的输出,而中间的逻辑完全由你来决定。所以要不断试验,不断改进,最重要的是——享受这个过程。
本文编译自hackster.io





