当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]我叫卡洛,是一名计算机科学老师。几周前,UNIHIKER向我寄来了一些K10教学板,供我在学校开展一个项目。在本学年的最后几天里,我将两块K10教学板送给了我校的两名学生安德烈亚和马里奥,他们是我所任教的中学一年级的学生。

我叫卡洛,是一名计算机科学老师。几周前,UNIHIKER向我寄来了一些K10教学板,供我在学校开展一个项目。在本学年的最后几天里,我将两块K10教学板送给了我校的两名学生安德烈亚和马里奥,他们是我所任教的中学一年级的学生。

我向他们展示了K10的功能以及一些使用它的应用实例。安德烈亚和马里奥用了一周时间研究K10,之后我们共同头脑风暴,确定了一个开发项目。

我们曾考虑开发一个系统,帮助听力受损的人。K10主板始终在监听,一旦检测到特定声音,就会闪烁LED灯,并在屏幕上显示该声音的类型,例如门铃声或手机铃声等。

我们使用 Edge Impulse 在我们的电路板上实现了基于人工智能的声音识别系统。

我们用了什么?

使我们能够以极少的努力开发出复杂系统的电路板是UNIHIKER的K10。这是一款真正强大的电路板,尽管价格实惠,却集成了大量功能。例如:

•MCU:ESP32-S3

•SRAM:512KB

•闪存:16MB

•Wi-Fi:IEEE 802.11b/g/n

•蓝牙

•温湿度传感器

•环境光传感器

•三轴加速度传感器

•显示屏:2.8英寸 240×320彩色LCD

•摄像头:200万像素

•MEMS麦克风

•扬声器:2W

•RGB LED

•TF卡插槽

因此,我认为它非常适合用于物联网实验室,因为板载传感器数量众多且种类丰富,从而减少了对外部连接和库配置的需求。

此外,UNIHIKER K10 在计算机科学实验室中也可发挥重要作用。它可通过 UNIHIKER MindPlusPlus 进行编程,MindPlus 是一款基于 Scratch 的软件,支持人工智能和物联网功能,即使没有编程经验的学生也能轻松使用。安装所需库后,还可以使用 Arduino IDE IDE 进行编程,最后也可以通过 MicroPythonPython 进行编程。这种极高的通用性使其成为教学计算机科学的实用工具,从使用 Scratch Scratch 编程学习基础概念,到经典的 Arduino C 语言编程,再到 Python Python 编程,能够应对更复杂的问题,甚至实现简单的 AI AI 应用。

它有什么作用?

Unihiker AI声音助手是一款“智能耳朵”,可持续监测周围环境。通过Edge Impulse TinyML模型,它能够识别各种家庭声音,例如门铃声、手机铃声、对讲机声,甚至玻璃破碎的声音。当检测到显著声响时,设备会立即通过其2.8英寸屏幕上的专用用户界面以及高亮度闪烁的RGB LED灯提醒用户。

它为何被创建?

该项目源于对无障碍需求的考量。对于听力障碍者而言,错过门铃或电话呼叫可能成为一大障碍。该设备通过将音频信号转换为清晰且可操作的视觉提示,有效弥补了这一差距。同时,它还具备安防监控功能,能够实时检测玻璃破碎等紧急声响。

它是如何工作的?

系统从Unihiker内置的麦克风捕获高质量音频数据。它以低功耗的“监听”模式运行,实时监测环境音量。一旦达到特定音量阈值,系统便会将数据存储在音频缓冲区中,并在设备本地执行**神经网络推理**。

开发流程

•数据采集:我们使用Unihiker内置的麦克风,在不同声学环境中录制了各种家庭声音样本(如门铃、电话、对讲机、玻璃破碎声)。

•模型训练:数据通过Wi-Fi上传至Edge Impulse,在那里我们进行了数字信号处理(MFE - 基于梅尔频率的能量)并训练了一个神经网络分类器。

•固件集成:我们将导出的Edge Impulse库集成到Arduino IDE中,实现了I2S数据采集循环以及用于管理视觉警报的逻辑系统。

优化:我们优化了缓冲区管理和推理时序,以确保实时响应且不导致系统崩溃。

故障排除与遇到的错误

在开发过程中,我们遇到了一些技术难题,这些挑战有助于优化最终的代码:

•I2S读取阻塞:最初,系统在音频采集过程中会卡住。我们通过调整i2s_read的超时时间并优化采集窗口来解决此问题。

•内存分配(RAM):AI模型和音频缓冲区需要大量内存。我们使用 `ps_malloc` 将缓冲区分配移至 PSRAM,以防止 ESP32-S3 上出现“内存不足”错误。

•误报:背景噪音有时会触发助手。我们引入了“环境噪音”基准线和动态“灵敏度偏移量”,以确保AI仅分析显著高于环境噪音水平的声音。

•模型频率不匹配:一个常见问题是训练模型(通常为16kHz)的采样率与麦克风设置不匹配。我们通过 `i2s_set_clk`` 并结合 `EI_CLASSIFIER_FREQUENCY``` 常量来同步此问题。

•UI刷新延迟:快速更新画布导致画面闪烁。我们实现了一种状态检查逻辑(`currentSoundIndex`),仅在真正发生新事件时才重新绘制屏幕。

结论

我们已经看到UNIHIKER K10是一款具有巨大潜力的电路板。它通过一项动手实践的活动,非常有效地帮助大家开始探讨人工智能。完成这个项目的学生表现非常出色,他们几乎完全独立工作,根据所获得的建议,并通过在线研究解决了项目过程中遇到的各种问题。

本文编译自hackster.io

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