当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]我们生活在一个信息过载的世界。我想将计算机视觉与日常生活结合起来,解决一个简单的问题:为了查看早间新闻,不得不在手机上不停地滚动浏览。

我们生活在一个信息过载的世界。我想将计算机视觉与日常生活结合起来,解决一个简单的问题:为了查看早间新闻,不得不在手机上不停地滚动浏览。

认识AI新闻播报器。这是一款独立的桌面硬件设备,将计算机视觉与您的日常生活融为一体。按下SELECT按钮后,它会利用原生边缘计算视觉技术验证您的身份。一旦验证通过,便会立即在清晰的LCD屏幕上呈现个性化的每日新闻摘要,您可通过触控按键模块以自己的节奏浏览新闻标题。无需臃肿的应用程序,无需订阅服务,仅需优雅的边缘计算体验。

最初设计得过于复杂的云/人工智能庞然大物,最终演变为一款美观、运行迅捷且完全无需依赖的嵌入式硬件。通过利用Arduino UNO Q(4GB)的双架构,我构建了一种零依赖的系统架构,无需任何API密钥和速率限制,仅使用纯Python原生库,从而绕过传统硬件瓶颈。

无论你是想了解边缘视觉的初学者,还是希望绕过Arduino桥接负载限制的开发者,本指南都将为你详细展示如何构建它。

宏伟愿景与现实的对比

刚开始时,我打算使用 OpenCV 这样的重型 Python 框架和大型语言模型来摘要新闻。但正如任何硬件工程师都知道的那样,嵌入式系统总能迫使你做出简化。

在Arduino App Lab的前沿技术基础上,我需要将代码运行在隔离且安全的容器中。这个容器缺少标准的C++编译工具。每次我尝试将大型库强制引入项目时,系统都会崩溃。我意识到,为了使这一过程对初学者来说易于访问、高度可靠且便于复现,我必须彻底重新思考我的方法。

拥抱零依赖架构

我并没有与硬件对抗,而是充分利用了它的限制。我摒弃了臃肿的软件,采用了一种严格的“零依赖”架构。

对于初学者来说,“依赖”是指需要下载的外部代码库,才能让程序正常运行。通过避免使用这些依赖,我的项目变得更快、更容易复现。

愿景:我使用了Arduino App Lab原生的视频对象检测模块,直接连接到摄像头,而不是自定义的OpenCV模型。

数据:我并没有使用新闻API付费,而是用Python内置的标准库(urllib和xml)编写了一个轻量级的自定义数据解析器,用于提取原始的Google新闻RSS订阅源。该解析器内存开销为零,且无需任何API密钥。

绕过桥接协议

最大的技术难题是让长篇新闻摘要在2英寸屏幕上显示。Arduino的两个部分通过一个名为Arduino_rpclite的内部桥接器进行通信。

我很快发现,这个桥梁对每条消息的字节数有严格的限制,大约为256字节。当我尝试发送一段较长的新闻描述时,通信就会中断,屏幕也会卡住。此外,我还了解到,在新闻流中使用原始HTML标签和随机换行符(\n)会严重破坏串行通信。

为了解决这个问题,我发明了一种“分片RPC架构”。RPC是远程过程调用的缩写,即处理器之间的通信方式。主Python脚本不再发送整篇新闻文章,而是只发送标题。这样就能原生地将完整的250个字符文本流式传输到屏幕上,而不会导致程序崩溃。

最终用户体验

最终呈现的是一款响应灵敏的桌面伴侣,运行优雅且完全免费。你坐下后按下SELECT按钮,设备会通过摄像头以视觉方式确认你的存在,然后为你提供每日新闻。

打造AI新闻主播是一项极佳的减量实践,证明了构建智能设备并不需要庞大的软件堆栈。

步骤1:网络与环境配置

该项目采用私有且本地的方式。新闻内容直接通过 Python 内置的标准库从 Google News RSS 链接获取,因此无需 API 密钥、Google Cloud 令牌,也无严格的速率限制。

1. 下载并安装 Arduino App Lab(版本 0.7 或更高)。

2. 使用USB-C数据线将您的Arduino UNO Q连接到工作站。

3. 打开 App Lab 工作区底部的终端标签页,以直接与电路板的 Linux 微处理器单元(MPU)通信。

4. 通过执行以下命令启动可视化网络管理器:

5. 使用方向键导航至“激活连接”,选择您的本地WiFi网络,输入凭据,退出工具并断开电路板连接。

步骤2:硬件接线

根据以下映射表连接您的组件。

完成物理组装后,将 Arduino 8-in-1 USB-C 集线器直接插入 UNO Q 的主 USB-C 接口,将迷你摄像头连接到集线器上的可用 USB-A 接口,然后通过集线器的 USB-C PD 接口将其连接到您的工作站。

步骤3:训练边缘视觉模型

配置此砖块以识别用户,训练一个轻量级的单类人脸检测模型。

1. 登录 Edge Impulse Studio,创建一个名为 AI-Newscaster-FaceDetect 的项目。

2. 上传一组包含200到500张人脸图像的数据集,这些图像需在不同的光照条件和角度下拍摄。请确保选择将数据自动划分为训练集和测试集的选项。

3. 导航至数据采集 -> AI标注,选择使用OWL-ViT的边界框标注,并使用提示“一个人脸(face, 0.1)”对您的数据集进行批量标注。

4. 在 Impulse Design 中,将图像输入尺寸设置为 320x320 像素(按短边适配),并添加一个物体检测学习模块。

5. 在目标检测参数中,选择 MobileNetV2 SSD FPN-Lite(仅支持 320x320)架构。使用学习率 0.1 对网络进行 50 个周期的训练。

6. 转到部署页面,搜索 Arduino UNO Q 平台,选择“未优化(float32)”构建流水线,然后生成你的库。从浏览器 URL 中复制你唯一的项目 ID。

步骤4:App Lab 项目设置与部署

准备好资产后,配置 App Lab 套件中的运行环境。

1. 打开 Arduino App Lab,并创建一个名为 AI 新闻播报器的项目。

2. 打开“砖块”面板,插入视频对象检测模块。

3. 在 AI 模型部分,连接您的 Edge Impulse 账户凭据,并选择已训练的面部检测模型。请确认您的 app.yaml 文件中明确列出了正确的项目 model_id。

4. 打开 App Lab 库管理器,将 Adafruit GFX 库与 Adafruit ST7735 和 ST7789 库一起安装。

5. 您可以在“附件”部分找到完整的注释源代码。将Python逻辑上传到您的App Lab容器,将.ino文件烧录到MCU,并将摄像头放在桌面上即可。

点击 App Lab 中的“运行”。平台将自动为 STM32 编译 C++ 代码,部署视觉容器,并启动您的 Python 环境。

步骤5:如何使用你的AI新闻主播

整个用户体验完全在设备上完成,无需手机或电脑。为确保这一点,请在应用名称旁边的下拉菜单中切换“启动时运行”选项。

1. 使用您的5V/3A移动电源为设备供电。

2. 等待LCD显示:“您好!按SELECT键获取新闻……”。

3. 按下 SELECT 按钮以启动摄像头。

4. 看向镜头。一旦检测到你的脸,选择一个新闻类别,它就会为你获取新闻摘要。

5. 使用上下按钮浏览故事,按返回键回到空闲界面。

未来源于本地

我们太过于将注意力投向无限滚动的屏幕。AI新闻播报员通过将智能从云端直接传输到你桌边,重新夺回了那些时间。借助UNO Q的双架构设计,最终打造出一个完全私密、无需订阅且即时响应的智能伙伴。智能硬件的未来不在于添加更多依赖软件的层级,而在于让本地硬件变得更加智能。

本文编译自hackster.io

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

市面上的每款智能音箱看起来都像是出自同一场设计会议:圆柱形机身、网状格栅、发光环。我想打造一个东西,你一眼望去以为是装饰品,直到你注意到那支手工绘制的黄铜号角里传来微弱的音乐嗡鸣声。

关键字: 智能音箱 扬声器 Arduino

在传统模式下,人类使用手工库存管理系统,这种方式耗时且容易出错。随着技术的发展,我们开发了一款条码扫描器,能够快速扫描产品并管理库存系统。本项目展示了如何构建一款基于树莓派的条码扫描终端,通过即时扫描和记录产品信息,实现...

关键字: 树莓派 条码扫描器 Arduino

高速通信网络的快速发展推动了多芯光纤(MCF)的发展,使其成为克服传统单芯光纤传输容量限制的一项前景广阔的技术。通过在单一包层内集成多个光芯,多芯光纤显著提高了数据吞吐量,同时减小了光缆的物理尺寸。

关键字: 多芯光纤 自动化 计算机视觉

无论您是在打印购物小票、餐厅账单、停车券、运单还是排队凭证,很可能您都曾使用过热敏打印机。与传统的喷墨或激光打印机不同,热敏打印机通过选择性加热特殊的热敏纸张来生成文字,因此无需使用墨盒或碳粉。

关键字: 热敏打印机 Arduino QR204

在这个项目中,你将学习如何使用Arduino构建一个智能报警系统。当有人靠近传感器时,系统会触发警报,并向用户发送电子邮件通知。

关键字: 传感器 Wi-Fi Arduino

这个项目从广受欢迎的战术射击游戏《反恐精英2》中提取了一个核心的游戏玩法元素,并将其转化为一个真实的互动玩具。该设备采用Arduino Uno/Nano、4x4矩阵键盘、I2C LCD显示屏和蜂鸣器,模拟了游戏中经典的倒...

关键字: Arduino LCD显示屏 蜂鸣器

如果你小时候玩过《过山车大亨》,你一定知道那种感觉:你建造一座过山车,向游客开放,然后屏住呼吸,等待游戏计算出刺激度、紧张度和恶心值。太刺激?没人坐。太无聊?也没人坐。准确地获得全部三个数值,才是整个游戏的全部重点。

关键字: 可穿戴设备 Arduino IMU

这是一个DIY手持式Arduino游戏机,由Arduino UNO R4 WiFi驱动。它在一块0.96英寸的SSD1306 OLED显示屏(128×64像素)上运行10款复古风格的街机游戏,通过四个触控按钮进行控制。配...

关键字: Arduino Wi-Fi 升压转换器

创建一个安全且自动化的门锁与解锁机制,通常通过密码等输入方式来控制。

关键字: 伺服电机 LCD Arduino

风力涡轮机的安全高效运行至关重要,但其人工监控并不实用。本项目开发了一套智能风力涡轮机监控系统,可根据风况自动控制涡轮机的伺服位置,并实时感知风暴、野生动物、振动等环境风险,通过手机向您发送电子邮件,及时通知您。

关键字: 风力涡轮机 Arduino 传感器
关闭