使用DEEPCRAFT™和MicroPython轻松实现边缘AI
扫描二维码
随时随地手机看文章
边缘AI听起来很有趣……直到数据捕获成功?我们听到了!MicroPython与DEEPCRAFT™Studio的集成使其变得前所未有的简单。
半焊板,传感器粘在任何移动的东西上——每一个原型都是从混乱和希望开始的。你的想法看起来很有希望,但甚至在你开始之前,获取实时传感器数据就成了主要的障碍。突然间,您被埋没在嵌入式C驱动程序、破碎的日志和神秘的bug中,只是试图回答:“传感器实际感知到什么?”灵感的火花在繁琐的设置墙后消失了。
通过我们的DEEPCRAFT™MicroPython集成,数据捕获变得非常简单。在您的主板上运行一个MicroPython脚本,将数据无线传输到您的主机。在主机端,DEEPCRAFT的捕获服务器处理其余的-实时日志记录,时间戳,并格式化您的数据,准备直接进入DEEPCRAFT™工作室进行培训。没有笨拙的司机。没有损坏的csv。只有干净的、带有时间戳的数据——就像你想象的那样。从传感器到数据集,它比以往任何时候都更流畅。下面是工作流的样子:
Capture Server提供了多个接口,但这种集成侧重于通过Wi-Fi使用TCP无线传输传感器数据,使整个管道既灵活又不需要电缆。
让我们开始看看这有多简单。我们将以音频数据流作为应用程序示例来讲解这个Protip。如果您需要复习PDM麦克风,我们已经在这篇文章中为您介绍了。
硬件设置
你所需要的只是CY8CKIT-062S2-AI套件。该套件有两个内置的IM72D128数字麦克风。本套件中连接PDM-PCM总线的引脚有:
•CLK: p104
•数据:P10_5
软件设置
步骤1。安装
1. 首先,您需要在PSOC™设备上运行MicroPython固件。在这里找到设置的所有细节。
2. 按照Capture Server文档中提供的说明克隆并设置Capture Server存储库。
3. 克隆您将找到数据获取脚本的GitHub存储库。
步骤2。在设备上启动传感器数据采集
1. 一旦克隆了GitHub存储库,在任何MicroPython支持的IDE(如thony)中打开该位置。选择所有源并通过点击“上传至/”将其复制到设备。
将它们成功复制到设备后,您应该看到以下屏幕。
2. 现在在你的MicroPython设备上打开config.py,添加你的网络凭据并保存在设备上。
3. 打开data_acquisition.py脚本并单击play按钮。
步骤3:运行Capture Server
1. 从命令提示符终端导航到克隆的Capture Server存储库的根目录。您必须已经在名为captureserver的文件夹中。然后转到examples/generic文件夹。
2. 将参数替换为实际参数后,执行如下命令执行Capture Server:
注意,这里的参数也应该与数据采集脚本中的传感器配置值相匹配。以PDM麦克风配置为例:
•ip-address:是设备的ip地址,您将在运行data_acquisition.py脚本时在终端中看到打印输出。
•数据格式:.wav(音频数据)
•数据类型:h(短)
•每包样品:512个。每个包中样本的大小也与缓冲区大小相似)
•特点:1(无)的功能)
•采样率:16000(传感器可接受采样率)
因此,data_acquisition.py中相应的配置看起来像:
有关每个参数的解释,请查看Capture Server文档。根据上述参数值,命令如下:
成功运行Capture Server后,您将看到开始录制、停止录制和退出的选项,如下所示:
完成后,记录的数据将存储在上面提到的输出目录中。
步骤4:导入DEEPCRAFT™Studio
1. 启动DEEPCRAFT™Studio并创建一个新项目或打开一个现有项目。转到DATA选项卡,单击Add DATA按钮,并选择包含捕获的.wav或. DATA文件及其相应标签文件的输出目录。
2. 选择输出目录后,DEEPCRAFT™Studio将自动将音频/数据文件及其相应的标签文件导入到新的数据会话中。
3. 创建数据会话后,您的数据集将在DEEPCRAFT™Studio中访问,准备进行预处理,标记和训练机器学习模型。
就像这样,你的传感器数据就在工作室里了——马上就可以训练了。
代码的解释
想知道引擎盖下面是什么吗?下面将深入介绍在硬件的文件系统上运行的Python脚本。
1. 从必需的导入开始。
•struct:用于在通过TCP发送之前将缓冲区数据打包成二进制格式。
•network_utils:模块处理Wi-Fi连接。
•tcp_server:设置一个TCP套接字来监听传入的连接。
•pdm_pcm:音频传感器模块;这可以根据需要与其他传感器交换。
2. 连接到Wi-Fi,使用设备的IP地址设置TCP服务器,并等待Capture server(在您的主机上)连接。
3. 初始化传感器以及存储传感器数据的缓冲区。还要准备数据流的格式。
•init():初始化传感器(例如,设置时钟,配置总线)。
•get_buffer():准备一个缓冲区来保存采样数据。
•get_format():返回端序(<或>)和数据格式(h, h等)。
•full_format:用于struct。将原始样本转换为二进制包。
4. 等待Capture Server连接。只有在运行Capture Server脚本后,才会通过打印IP地址显示已连接。
5. 完成所有设置后,开始将数据捕获到缓冲区中,将其转换为所需的格式并通过TCP发送。
6. 然后关闭连接并释放所有资源。
使用其他传感器
使用不同的传感器?其实也很简单!
转到添加您自己的传感器部分来集成您的自定义传感器并开始流式传输。
本文编译自hackster.io