在 Arduino Create 中使用 Intel® 库
本文将介绍在 Arduino Create 中可用于运行 Linux 的 Intel® 平台有哪些库。
虽然有许多传统的 Arduino* 库对微控制器很有用,但基于 Linux* 的目标设备可以通过利用额外的处理能力和操作系统功能来获得许多功能。本文将介绍在 Arduino Create 中可用于运行 Linux 的 Intel® 平台有哪些库。
架构方式
由于 Arduino Create* 完全在云端运行,因此您的代码将在服务器(撰写本文时为 AWS)上编译,然后二进制文件将被复制到您的开发板的 ~/sketches 文件夹中。该二进制文件以 root 身份运行。
Arduino Create 中的大多数库都是静态链接的,这意味着它们在 Arduino Create 云端进行了链接。少数库(较大的库)是动态链接到目标平台上安装的库的,并且必须在目标设备上手动安装才能使用。例如,MRAA 调用不需要事先在开发板上安装 MRAA 即可工作(在云端静态链接)。Intel® 数学核心库 (MKL) 则要求先在开发板上手动安装(动态链接)。
当前可用库列表及其编译方式如下所示
库 | 链接方式 |
---|---|
MRAA | 静态 |
UPM | 静态 |
Intel® Math Kernel Library | 动态 |
OpenCV | 动态 |
AWS* IoT 设备 SDK | 静态 |
Microsoft Azure* IoT 设备 SDK | 静态 |
LittleB | 静态 |
如果您有兴趣添加其他库,请阅读下面的“添加其他库”部分。添加的额外库将是静态链接的。
可以通过进入编辑器中的“库”选项卡来添加库。
我将在下面介绍其中一些库。
MRAA 和 UPM 在 Arduino* 库中
Arduino 库现在使用 MRAA 作为基于 Linux 的平台的硬件抽象层 (HAL)。Arduino C++ API 仍可像其他平台一样使用,但底层由 MRAA 进行转换以与硬件通信。有关在 Arduino Create 中使用 MRAA 和 UPM 的更多信息,请参阅我的另一篇文章 https://software.intel.com/en-us/articles/mraa-and-upm-basics-in-arduino-create。
OpenCV
作为 Arduino Create 中现有的库之一,您可以使用 OpenCV 版本 3.3.0。这是一个动态链接库,因此它首先要求在您的目标平台上安装 OpenCV。有关安装说明,请参阅 https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/OpenCV-Setup。尽管本教程是为运行 Ubuntu* Server 16.04 的 UpSquared* Grove IoT 开发套件编写的,但这些步骤可以轻松应用于运行 Ubuntu 的任何系统。
Arduino Create 中的 OpenCV 库(库 > OPENCV)附带两个示例:轮廓和 HelloOpenCV。我们还创建了一个“人物计数器”示例,可以在“库 > UP SQUARED GROVE IOT DEV KIT > OpenCV-PeopleCounter”中找到。
HelloOpenCV 和 OpenCV-PeopleCounter 示例都需要网络摄像头。轮廓示例则不需要。
Intel® 数学核心库 (MKL)
此库主要用于数据和信号处理。它加快了矩阵乘法的速度,并且还包括 FFT、滤波器和一些变换。在许多情况下,您可能希望将此库用于物联网应用程序
- 对传感器数据进行 FFT,以便在通过网络发送之前处理和聚合来自多个传感器的数据
- 数据分析,将数据拟合到数学模型
- 数据压缩,获取数据集并创建更小的近似值以供分析或传输
它是 Arduino Create 中的一个动态链接库,这意味着您需要先在目标平台上安装它。
请查看这篇文章 https://software.intel.com/en-us/articles/optimize-iot-applications-using-intel-math-kernel-library 了解有关应用程序及其在 Arduino Create 中使用方法的更多信息。
添加其他库
如果您想使用某个库但它未在列表中,您可以使用 Arduino Create 中的库管理器导入它。执行此操作时,Arduino Create 云端会重新编译您上传的库,并使其在 Create 环境中可用。通常,只需执行以下步骤:
- 找到您想要的库的 GitHub 存储库
- 从该存储库下载 .zip 文件
- 将其导入库管理器(这可能需要几秒到几分钟,取决于文件大小)
支持
由于这些库来自各种来源,因此报告每个库问题的最佳地点是以下位置:
- OpenCV - https://github.com/opencv/opencv
- MRAA - https://github.com/intel-iot-devkit/mraa
- UPM - https://github.com/intel-iot-devkit/upm
- Intel® 数学核心库 - https://software.intel.com/en-us/forums/intel-math-kernel-library
- AWS - https://github.com/intel-iot-devkit/aws-iot-device-sdk-cpp-arduino-create
- Microsoft Azure - https://github.com/intel-iot-devkit/azure-iot-sdk-c-arduino-create