当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]我们的鸟食器总是遭到松鼠、金花鼠以及其他非鸟类动物的频繁侵扰——以至于“鸟食器”这个名称几乎都不合适了。所以我想利用 Arduino UNO Q 强大的物体检测功能来制作一个只供鸟类使用的食器。

我们的鸟食器总是遭到松鼠、金花鼠以及其他非鸟类动物的频繁侵扰——以至于“鸟食器”这个名称几乎都不合适了。所以我想利用 Arduino UNO Q 强大的物体检测功能来制作一个只供鸟类使用的食器。

开始步骤

UNO Q 的使用灵活性极高,因为它既可以像普通的 Arduino 开发板在 PC 主机模式下直接连接到您的电脑上,也可以在网络模式下进行远程连接,甚至还能在单板计算机模式下成为一台完整的计算机。完成初始设置后,我通过 USB-C 集线器连接了键盘、鼠标和显示器,并直接在设备上探索了 UNO Q 的开发环境——App Lab。摄像头检测物体的示例听起来与我的构想非常契合,所以我连接了一个 USB 摄像头并进行了测试。

“在摄像头上检测物体”这个示例使用了 App Lab 的“视频对象检测”模块,它为您的项目添加了拖拽式对象检测功能。我对该预训练模型的速度和准确性印象深刻,它内部使用了 Edge Impulse 的 FOMO(更快的物体,更多的物体)机器学习算法。我原本期望需要自己训练模型,但使用 yolox-object-detection 并结合视频对象检测模块能够可靠地检测出鸟类,为我节省了大量的工作量!我发现该对象检测算法将板子推到了极限,使得在 SBC 模式下运行时难以与图形用户界面进行交互,但将屏幕分辨率降低到 1280×720 似乎有所帮助。

利用双脑模式

虽然 UNO Q 可以作为单板计算机(SBC)使用,但它还配备了一个 STM32 微控制器(MCU),其与常见的 Arduino 开发板中的“大脑”部分更为相似。这便于与传感器和执行器进行交互,并且桥接库使得 SBC 和 MCU 能够进行通信,例如通过与 MCU 连接的引脚响应 Linux 部分通过网络摄像头检测到的内容来移动一个伺服电机。

一个简单的 Python 脚本会启动检测过程,并在检测到物体时执行一个回调函数:

当检测到鸟类时会调用“bird_detected()”函数,而当检测到任何物体时则会调用“anything_detected()”函数,这样便于进行调试,并能更清楚地了解摄像头所拍摄到的内容。两者都使用“print()”来表明它们已被触发,但“bird_detected()”还会通过“Bridge”调用项目中“Arduino 代码部分”的“bird()”函数。

除了将“鸟!”这一信息输出到串行监视器以表明该函数已执行完毕之外,bird() 函数还会对连接到数字引脚 D9 的一个舵机进行 5 次扫描操作,这会将种子通过储物槽中的一个隔板推出来,供检测到的鸟儿食用。

既然我的应用程序已按预期正常运行,我就在“应用实验室”中将其设置为开机自动启动,并且断开了键盘、鼠标和显示器的连接。

实地测试

由于我在户外时很难让任何鸟类或金花鼠在镜头前摆姿势,所以我便打印了一些照片,并将它们举到镜头前。这些照片效果不错,但由于伺服器被嵌入到了鸟食器内部,我之前用作指示设备正常运行的那声嗡嗡声变得变得模糊不清了。起初,我使用我心爱的 Openterface Mini-KVM 来监控这个项目,但最终我希望它能够无需任何计算机设备连接就能运行,于是决定利用 UNO Q 的 8×13 液晶矩阵来帮助传达应用程序的状态。通过使用 LED 矩阵绘制器示例,我绘制了粗糙的鸟和 X 像素艺术,并将生成的六边形数组添加到我的草图中:

随后,我使用了“loadFrame()”函数,在检测到鸟类时显示鸟类图形,而在没有检测到时则显示“X”。这样就便于从远处判断检测结果是否准确了。

注意:专为 UNO R4 的 8×12 液晶矩阵设计的出色网络版 LED 矩阵编辑器并不适用于 UNO Q。

结果与结论

使用 YOLOX 检测技术结合视频对象检测模块,即可立即实现无需额外训练即可达到的精准鸟类识别功能,相比训练自定义模型而言,节省了大量时间。UNO Q 的双脑 SBC/MCU 架构使得在 Linux 端对检测结果做出响应来驱动伺服电机变得十分容易。如果您想亲自尝试一下,只需将 USB 摄像头和带电源的 USB-C 集线器连接到 UNO Q 上,将一个伺服电机连接到 5V/GND/D9 端子,并将我的 GitHub 仓库压缩包导入 App Lab 即可。我简直被自己能够如此迅速且轻松地实现这个想法的能力所震撼!

下一步措施/未来改进措施

尽管我之前使用预制模型已经取得了成功,但我仍想利用当地的动物来训练自己的模型——或许不必排除松鼠和金丝雀,而是可以在检测到它们时为它们提供单独的食物,使用第二个伺服电机和种子储存器即可。或者反其道而行之,实施某种威慑措施!我希望能用激光切割的亚克力材料替换纸板储存器的侧壁/伺服电机安装座,并改进种子舀取装置,使其比使用简单的伺服臂的装置更有效。此外,使用外部电源为伺服电机供电也是一种最佳实践,而不是直接使用板子供电。为抵御恶劣天气并可能在夜间访客被检测到时提供小灯,这些措施都能进一步延长设备的实用性。

代码

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

我偶然发现了一款那种高端的道奇挑战者型闹钟,它的启动声音是那种充满力量感的引擎轰鸣声,而不是普通的闹钟铃声。老实说,它看起来超级酷——但看了它一会儿之后,我却觉得:

关键字: OLED 显示屏 Arduino DS3231

该项目展示了如何利用射频识别技术及一款 Arduino 板来构建一个智能考勤系统。用户无需使用人工登记表,只需扫描射频识别卡即可即时记录考勤情况。该系统会读取每张卡的唯一标识码并记录相关数据,适用于学校、办公室以及小型组...

关键字: Arduino 射频 RFID 读取器

乒乓球机器人:西蒙娜设计的基于Arduino的3D可打印乒乓球发射器模型(STL格式)——来自 Kickstarter 项目页面

关键字: Arduino 3D打印 步进电机

我想要为一个本地项目搭建一个简单的互动信息展示台,这个展示台能够当用户在屏幕上点击按钮时显示图片并播放音频内容。不需要使用树莓派,也不需要安卓平板电脑,只需要一块价格实惠、功能完备且能在几秒钟内启动的嵌入式电路板即可。

关键字: 播放器 Arduino ESP32-8048S050

几天前,一个简单的想法突然浮现在我的脑海中:如果我们能拥有一种真正的口袋式语音助手会怎样呢?这种助手能够即时回答我们的问题,无需掏出手机、解锁手机、打开应用程序,然后进行输入或点击操作。

关键字: 语音助手 Arduino ESP32

在本教程中,您将学习如何通过蓝牙低能耗(BLE)模块将 Arduino 与智能手机连接起来。完成本教程后,您将能够使用一个简单的移动应用程序无线地控制一个 LED 的开启和关闭。

关键字: 蓝牙 Arduino 智能手机 LED

北京2026年4月24日 /美通社/ -- 全球电子纸领导厂商E Ink 元太科技今(24)日宣布,搭载E Ink Prism™ 技术的 BMW iX3 Flow Edition已于2026北京车展正式公开亮相。此一里程...

关键字: TI PRISM 向量 显示器

在嵌入式项目中添加显示屏能显著提高其可用性,无论您是要展示传感器值、系统状态还是简单的图形。虽然字符液晶显示屏较为常用,但它们在灵活性和视觉效果方面存在局限性。

关键字: OLED 显示屏 Arduino

一款基于 Edge Impulse 和 Arduino UNO Q 构建的实时、由摄像头驱动的“石头剪刀布”游戏。该摄像机通过一个物体检测模型来监测你的手势动作,而 Arduino 则随机选择动作。你觉得你能战胜这台机器...

关键字: 摄像头 Arduino Edge Impulse
关闭