项目简介
本项目提供了将Edge Impulse与德州仪器(TI)Code Composer项目集成的代码片段和操作指南。借助Edge Impulse的开源C++库,可将训练好的学习算法部署到所有德州仪器的SimpleLink
设备上。项目重点在于指导用户把Edge Impulse SDK集成到现有的Code Composer Studio项目中,实现嵌入式设备上的机器学习模型推理,适用于加速度计数据分类、语音识别等多种场景。
项目的主要特性和功能
- 集成便捷:提供将Edge Impulse库集成到TI Code Composer Studio项目的详细步骤,方便用于自定义硬件设计。
- 多场景支持:包含加速度计数据分类和语音识别等示例,适用于不同类型的传感器数据处理。
- 代码质量高:代码遵循良好编程习惯和规范,函数和变量命名清晰,结构易懂,可复用性好。
安装使用步骤
前提条件
- 安装TI Code Composer Studio IDE
- 拥有一个训练好的Edge Impulse项目
集成Edge Impulse库到项目
- 将Edge Impulse项目部署为C++库并解压下载的存档,得到
edge-impulse-sdk
、tflite-model
、model-parameters
三个目录。 - 将上述三个目录复制到Code Composer项目的根目录。
- 添加所需的包含路径到项目,复制以下路径并粘贴到
Project -> Properties -> Build -> Arm Compiler -> Include Options
:${PROJECT_ROOT}/edge-impulse-sdk/porting ${PROJECT_ROOT}/edge-impulse-sdk/dsp ${PROJECT_ROOT}/edge-impulse-sdk/classifier ${PROJECT_ROOT}/edge-impulse-sdk/CMSIS/DSP/Include/
- 对于使用SimpleLink™ CC13x2_26x2 SDK的设备,启用Edge Impulse SDK中内置的TI移植功能。复制以下定义并粘贴到
Project -> Properties -> Build -> ARM Compiler -> Predefined Symbols
:EI_PORTING_TI=1
- 很多项目需要修改堆栈和堆配置,确保Edge Impulse SDK运行时有足够内存:
- 运行推理时调用堆栈深度通常比标准物联网库和应用程序大,执行Edge Impulse SDK的线程、进程或堆栈至少应有2kb可用空间。
- Edge Impulse Studio的
Deployment
选项卡会显示项目所需的堆使用量,建议将堆大小配置为至少两倍于Edge Impulse所需的大小。
应用解决方法
根据使用的平台和工具链版本,应用相关的解决方法:
- 若使用SIMPLELINK-CC13XX-CC26XX-SDK 5.40.00.40/6.10.00.00
、TIRTOS
和TICLANG 1.30 LTS
时出现"error: use of undeclared identifier E*
"错误,可将Simplelink SDK版本回退到5.20(或更早),或修改<SDK>\source\ti\posix\ticlang\errno.h
文件,在文件末尾找到#endif /* ti_posix_ticlang_errno__include */
并修改为:
```
include_next
endif / ti_posix_ticlang_errno__include /
``
- 若在Windows系统的Code Composer中出现"
filename or extension is too long"错误,可将项目移动到
C:/`下的新CCS工作区,并使用简短的工作区和项目名称。
后续步骤
集成库后,应用代码需要从传感器输入获取格式化的样本缓冲区,确定何时对数据进行分类,并根据结果执行相应操作。可参考以下示例: - ble_accelerometer:加速度计数据分类示例,适用于BLE互操作性和低频时间序列传感器。 - voice_recognition:语音识别示例,包含处理高频音频数据的必要优化。 - sdk文档:提供了Edge Impulse SDK的数据结构、例程和使用的详细文档。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】