点击上方关注,All in AI中国
小编最近发现一个很酷的项目,我们将会展示一个带有面部识别的Wia平台。如果你正在微笑,那么车轮就会转动,如果你没有微笑,它会停止。今天,我们将讨论如何构建这个项目,也许你会因为这个项目而受到启发,相应推出一些其他项目。

我们用了什么
- 乐高摩天轮套件
- Arduino MKR 1000
- L293D电机驱动器
- 大扭矩直流电机
- 电路试验版
- Raspberry Pi Zero W
- Raspberry Pi相机模块
乐高摩天轮
对于摩天轮本身,我们决定使用这款乐高套件。完成组装大约需要7个小时左右。该套件有一个可选的附加电机,但本文里我们决定自己创建一个解决方案。
驱动电机
我们使用高扭矩直流电机转动车轮,用L293D电机驱动器驱动电机。
点击此处(https://community.wia.io/d/27-driving-a-dc-motor-with-an-arduino-and-the-l293d-motor-driver)深入了解我们如何设置它,以及使电机转动的基本代码片段。当我们添加MQTT功能来监听命令时构建这段代码。


将电机安装到车轮上
下一步是将直流电机连接到摩天轮上并使其转动。这被证明是非常具有挑战性的,并且需要拆除结构的下部从而为部件腾出空间。我们发现电机的轴几乎完全适应其中一个乐高积木,那么我们所要做的就是将电机安装在正确的位置,并确保它不会四处移动。因此,我们为备用零件制造了一个用于电机的小型乐高外壳,在后面留出空间用于将电线连接到电机的端子。

监听命令
接下来,我们想为Arduino创建一些命令,以便相应地监听和旋转电机。第一步是在Wia仪表板中创建命令。正如您所看到的,我们创建了一些用于手动控制滚轮的基本命令,以及一个“拍照”命令,我们将在稍后介绍。

接下来,我们更新了Arduino代码以使用MQTT来监听命令。这是代码:

在将该代码上传到Arduino之后,我们可以在Wia仪表板上的命令上单击“运行”,摩天轮将相应地转动。
面部识别相机
对于面部识别相机,我们使用Raspberry Pi Zero W和Raspberry Pi相机模块。

深入了解我们如何在此处进行设置。 这包括使用相机模块设置Raspberry Pi,使用NodeJS拍摄照片并将其作为事件发布到Wia平台,然后设置基本流程以检查照片主题是否处于微笑的状态。
我们在此设置的基础上增加了一点,并增加了Raspberry Pi监听“拍照”命令的能力。 这是代码:

建立流程
我们的下一步是通过创建Flow来使Raspberry Pi和Arduino在Wia上一起工作。
在Wia仪表板中,我们创建了一个新的Flow。 触发器是运行“拍照”命令时创建的照片事件。然后通过“检测人脸”节点,其输出分支为两个逻辑节点,一个在被试微笑时输出“微笑”字符串,另一个在被试不微笑时输出“不微笑”字符串。
下面是“微笑”逻辑节点的代码:

...这里是“不笑”逻辑节点的代码:

如果主体正在微笑,则运行“开始移动”命令,触发Arduino开始转动电机。 如果拍摄对象未微笑,则运行“停止移动”命令,停止电机转动。

创建小部件
您会注意到我们在Flow结束时也有“创建事件”的节点。 这是我们使用逻辑节点中的output.body.data值创建小部件的地方!
每次拍摄照片时,都会创建一个新事件,其数据等于“微笑”或“不笑”。 在仪表板的设备概述页面上,我们可以创建一个文本窗口小部件,可以显示此文本并在每次拍摄新照片时自动更新。 我们还设置了方便的小部件来运行各种命令,并显示了Raspberry Pi拍摄的照片!


