UP SQUARED Grove IoT 开发套件入门指南
请按照以下步骤将您的开发板连接到 Arduino Create 并开始使用您的开发套件。
请按照以下步骤将您的开发板连接到 Arduino Create* 并开始使用您的开发套件。
您将完成以下基本步骤
- 连接开发板 连接 Grove Pi+* 板和线缆以启动您的 UP²* 板。
- 连接到 Arduino Create*
注册一个 Arduino Create 帐户,并将 UP² 板连接到 Arduino Create Web 编辑器。 - 运行闪烁应用程序
查找并运行一个示例应用程序以闪烁 LED。
开始之前:准备好您的材料
收集您套件中的物品
您还需要以下物品,但不包含在套件中
- 以太网线和互联网访问
- 一台连接到互联网的主机计算机
您的原型设计环境
完成本指南中的步骤后,您的环境将设置为这样
您将能够编写草图代码,并通过云从您的主机计算机上传和运行它们。
第一步:连接您的开发板
在此步骤中,您将
- 安装 Grove Pi+* 板
- 连接您的 micro USB 线
- 连接您的以太网线
- 为您的开发板供电
安装 Grove Pi+* 板
- 在 UP²* 板上,找到白色小箭头。这表示开发板上的连接器 1。
- 将 Grove Pi+ 板上的引脚 1 与 UP² 板上的连接器 1 对齐,然后小心地向下按压,使 Grove Pi+ 板上的引脚整齐地插入连接器。
将 Micro USB 线插入 UP²* 板
- 在 UP² 板上,找到 USB 3.0 Micro B 端口。micro USB 线插入该端口的左侧。
- 将 micro USB 线插入 UP² 板上的 USB 端口左侧。
- 将 micro USB 线连接到您的主机计算机。
注意:即使您插入 micro USB 线后看到指示灯亮起,此连接也不足以可靠地为您的开发板供电。micro USB 连接用于设置 Arduino Create 开发环境。您很快就会将开发板连接到电源。
将以太网线连接到 UP²* 板**和**您的路由器
- 将以太网线插入 UP² 板。
- 将以太网线的另一端插入路由器,将其连接到与您的主机计算机相同的网络。
注意:您的主机计算机不必与 UP² 板在同一网络上。
为您的开发板供电
- 将您的 UP² 板插入电源,并将电源插入电源插座。
注意:如果需要关闭开发板,可以按蓝色 LED 旁边的白色小按钮,或者直接拔下电源线。
连接完成!
您的开发板应如上图所示。您已准备好进行下一步。
第二步:连接开发板
在此步骤中,您将
- 注册 Arduino Create*
- 在您的主机计算机上安装 Arduino 插件
- 验证您的开发板连接
- 将 Arduino 连接器上传到您的开发板
- 命名您的开发板
配置 UP2* 板
在您的主机计算机上,访问 https://create.arduino.cc/getting-started/up2。然后点击登录。
注意:如果您还没有 Arduino Create 帐户,请按照屏幕上的说明进行注册。您需要激活您的帐户并使用新帐户登录该网站。
- 如果您是第一次使用 Arduino Create,系统将要求您安装 Arduino 插件。请按照屏幕上的说明安装 Arduino 插件。
注意:如果您收到一条错误消息,提示“我们无法检测到已安装的插件”,请尝试在系统托盘中找到 Arduino 插件图标
,右键单击,然后选择“打开插件”。
验证您的开发板连接
- 安装插件后,您将看到一个页面,要求您仔细检查开发板是否已正确连接,以便安装连接器。验证它是否仍然通电,然后点击“下一步”。
注意:如果您已完成本指南中的第一步,您的开发板已设置完毕。
将 Arduino* 连接器上传到您的开发板
如果您在“将开发板连接到 Arduino Create”屏幕上停留超过 3 分钟,请检查您的连接(以太网、micro USB、电源)并重试。如果仍然无效,请尝试以下故障排除技巧
- 完全重启您的 UP² 板,方法是拔下电源和 micro USB 线。然后重新供电。等待几分钟让其启动,然后再次尝试连接到 Arduino Create。
- 如果您的主机计算机运行 Windows*,请最小化所有窗口,以确保您没有错过弹出消息,要求安装驱动程序。
- 强制刷新 Arduino 网页。例如,如果您使用的是 Chrome*
- 对于 Windows,请按 Ctrl+Shift+R。
- 对于 macOS*,请按住 Shift 键并点击“重新加载”按钮。
命名您的开发板
- 为您的开发板命名,例如 up2。
现在您已准备好进行下一步:运行您的第一个程序。
注意:您的开发板通过互联网连接到 Arduino Create 开发环境。如果您断开开发板并将其移至其他位置,它应该会重新连接到 Arduino Create 环境。如果您使用代理设置,则在将开发板移至没有代理的网络时,需要再次执行此设置过程。
第三步:运行闪烁应用程序
在此步骤中,您将
- 连接 LED
- 打开闪烁示例应用程序
- 修改您的开发板的草图
- 使用 Arduino Create* 上传您的草图
- 深入代码
连接 LED
- 找到 Grove* 绿色 LED 并使用 Grove* 线将其连接到 Grove Pi+* 板上的 D4。插入 LED 时,开发板可以保持开启状态。
注意:您可能需要先将 LED 插入 Grove LED 模块的端子;如果是这样,请务必将较长的线连接到正极端子。
打开闪烁示例应用程序
- 如果尚未打开,请打开 Arduino Web 编辑器。
- 打开为此套件特别制作的闪烁示例。您可以在“示例”>“来自库”>“UP SQUARED GROVE IOT DEV KIT”>“Blink”中找到它。
注意:每个示例都包含指向 GitHub* 中相应自述文件的链接,其中包含有关如何设置和运行该示例的说明。对于闪烁示例,其外观如下
使用 Arduino Create* 上传您的草图
注意:当您点击“上传”按钮时,您正在将草图上传并运行到目标设备上。要编译草图而不上传和运行它,请点击“上传”图标左侧的“验证”按钮
。
- 选择您的开发板,“通过云”。
- 点击“上传”图标以上传并运行草图。
您的草图正在运行!
- 您可以通过屏幕底部的日志给出进程 ID (PID) 来确认您的草图正在运行。例如
- 您应该看到 LED 闪烁。
- 您已将 LED 连接到 Grove Pi+ 板上的正确连接器 (D4)。
- 确保您选择的开发板是标有“通过云”的那个。
- 您的开发板仍然连接着。您可以在“我的设备”页面 https://create.arduino.cc/devices 上看到这一点。它应该显示为“在线”。如果不是,请检查网络连接。如果所有方法都失败,并且您的开发板仍然离线,请再次完成设置过程,从 创建帐户并安装 Arduino 插件 开始。
- 确保 LED 以正确的方向插入(较长的线应连接到正极端子)。如果可能,请尝试另一个 LED。
停止和启动草图
现在您的草图正在运行,我们将向您展示如何停止它。
- 通过单击左上角的菜单图标并选择“我的设备”来转到“我的设备”页面。或者,您可以访问 https://create.arduino.cc/devices。
- 点击“1 个草图正在运行”。
您现在应该看到您运行以闪烁 LED 的草图名称,例如“Blink”。点击“正在运行”。
您现在应该看到“已停止”。
深入代码
您可能看到了一些您不认识的代码行。在深入研究之前,有几个概念需要理解
- MRAA* (mraa.io) – 发音为“em rah”,是 Arduino Create 中基于 Linux* 的平台的硬件抽象层。它是一个开源项目,支持多种开发板和编程语言。使用 MRAA 可以让您以易于理解的 API 初始化和使用开发板上的引脚。
- 平台 – MRAA 抽象硬件的方式是通过用户空间的引脚映射。因此,当您使用 MRAA 时,您需要设置您的平台,以便为您的特定开发板正确进行映射。在这种情况下,平台是 UP² 板,但 MRAA 支持十几个开发板。您可以在此处查看完整的引脚映射列表:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/blob/master/extras/pin-mapping.md
MRAA 支持 GPIO、I2C、PWM、SPI 和 UART。还有一个非常实用的库,建立在 MRAA 之上,它是针对单个传感器的抽象。它被称为 UPM,您可以在 https://upm.mraa.io/ 上阅读相关信息。对于使用 MRAA 的平台,Arduino Create 支持 UPM。
- 子平台 – 使用 MRAA 时,您可以选择定义一个子平台。子平台的操作 API 与平台相同,但您需要为所有引脚添加 512 的偏移量。请注意,每个使用 MRAA 的应用程序只能有一个子平台。使用子平台的最常见原因是为了扩展平台的 I/O 功能。在本指南中,Grove Pi+ 板提供了易于使用的 Grove 传感器连接器,为 UP² 板增添了便利。Grove Pi+ 板上有一个 ATMEL ATMEGA 328,当您尝试将其作为子平台运行时,MRAA 会用 Firmata* 草图对其进行编程。在 ATMEGA 上运行的 Firmata 草图充当某种从属设备,解释来自平台(运行在 UP² 板上的 MRAA 应用程序)的命令,并在 I/O 和平台之间传递数据。子平台通过 I2C 控制(也可以通过串行通信)。
现在来看代码…
#define LED_BUILTIN 516
由于 Grove Pi+ 板是 UP² 板的子平台,我们需要将引脚号偏移 512。由于 LED 连接到 D4,我们需要使用的引脚号是 4 加上 512 的偏移量,即 516。
数字引脚和模拟引脚都从零开始。例如,模拟引脚 0 (A0) 对应 512,数字引脚 4 (D4) 对应 516。
mraa_add_subplatform(MRAA_GROVEPI, "0");
此行将 Grove Pi+ 板添加为子平台。
其余代码使用标准的 Arduino API。
- PinMode - https://www.arduino.cc/en/Reference/PinMode
- DigitalWrite - https://www.arduino.cc/en/Reference/DigitalWrite
- Delay - https://www.arduino.cc/en/Reference/Delay
后续步骤
现在您的开发板已连接到 Arduino Create,请继续进行教程。
我们所有的教程都位于 GitHub,地址为 https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples,并且可以在 IDE 中的“示例”>“来自库”>“UP SQUARED GROVE IOT DEV KIT”下访问。
这些教程通常分为四类
如果您不确定从哪里开始,我们建议通过 GroveRotaryAngle 教程学习有关传感器的基础知识。
OpenCV 设置
在本示例中,您将学习如何下载、构建(编译)和安装 OpenCV* 3.3.0 库。
图形用户界面 (GUI) 安装
对于 UP2 套件,由于 Ubuntu 16.04 操作系统(套件包含)不包含图形用户界面 (GUI),因此您需要安装一个 GUI 才能查看 OpenCV* 处理的图像或视频流的结果。
sudo apt-get install --no-install-recommends ubuntu-desktop
--no-install-recommends
仅包含必需的依赖项。您可以在 https://packages.ubuntu.com/xenial/ubuntu-desktop 上查看完整列表。
重启系统以完成 GUI 安装
reboot
此示例在 GitHub 上继续:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/OpenCV-Setup
OpenCV 人数计数器
在本教程中,您将学习如何
- 在 Ubuntu 16.04 LTS 上设置 OpenCV 3.3.0
- 在 Arduino Create IDE 中从源代码构建人数计数器应用程序。
- 从 Ubuntu* 桌面上的命令提示符运行人数计数器应用程序。
此代码示例在 GitHub 上继续:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/OpenCV-PeopleCounter
Grove* LCD 显示屏
此示例使用 Grove* LCD UPM 库。它将 Grove 旋转角度传感器的模拟输入值打印到显示屏。
此示例在 GitHub 上继续:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/GroveLCD
Grove 旋转角度传感器
在本示例中,您将学习如何
- 停止正在运行的草图
- 设置串行监视器
- 从传感器读取模拟输入数据
- 使用模拟输入控制数字输出
您将使用串行监视器查看传感器输出的原始数据。您将能够使用旋转角度传感器输入来控制 LED 闪烁的速率。
此代码示例也可在 GitHub 上找到:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/GroveRotaryAngle
收集您的材料
您需要以下物品才能完成本教程
停止运行草图
本教程假设您已将开发板设置为与 Arduino Create* 配合使用。如果您还没有这样做,请返回入门部分。
- 在继续本教程之前,请确保停止所有正在运行的草图。硬件抽象层 (MRAA*) 会锁定其使用的硬件引脚,因此如果您尝试在之前的草图仍在运行时运行使用相同引脚的另一个草图,可能会不起作用。
- 要停止运行的草图,请通过单击左上角的菜单图标并选择“我的设备”来转到“我的设备”页面。或者,您可以访问 https://create.arduino.cc/devices。
- 点击“1 个草图正在运行”。
- 您现在应该看到您运行以闪烁 LED 的草图名称,例如“Blink”。点击“正在运行”。
- 您现在应该看到已停止。
连接硬件
- 将 Grove LED 插入 Grove Pi+ 板上的 D4。
- 将 Grove 旋转角度传感器插入 A0。
获取代码
- 打开 GroveRotaryAngle 示例。您可以在“示例”>“来自库”>“UP SQUARED GROVE IOT DEV KIT”>“GroveRotaryAngle”中找到它。
- 在将示例草图上传到开发板之前,请确保在 Arduino Create 中打开监视器。此示例将原始模拟数据值输出到串行监视器。
- 通过点击编辑器右上角的“上传”图标上传示例草图。您应该在监视器中看到模拟读数。您还应该看到 LED 闪烁。如果您转动旋转角度传感器上的旋钮,可以改变闪烁的速率。
如果此项无效
- 仔细检查您的连接。Grove LED 连接到 D4,Grove 旋转角度传感器连接到 A0。
- 仔细检查您是否已停止“我的设备”页面上任何其他正在运行的草图(https://create.arduino.cc/devices)。进入页面后,如果您看到“N 个草图正在运行”的消息,请点击“正在运行”并停止任何草图。
- 如果您尝试停止草图但仍然无效,请尝试重启您的 UP² 板。
工作原理
您会注意到,在代码中,512 对应于 Grove Pi+* 板上的 A0,而 516 对应于 D4。代码不使用 0 或 4,因为您需要为 Grove Pi+ 板上的任何引脚添加 512 的偏移量。
为什么?在底层,MRAA(Arduino 中的硬件抽象库)将 Grove Pi+ 板用作子平台!因此,需要此行将 MRAA_GROVEPI 添加为子平台。
mraa_add_subplatform(MRAA_GROVEPI, "0");
每当您在 MRAA 中使用子平台时,都需要为使用的任何引脚添加 512 的偏移量。例如,如果您要设置 GPIO 引脚 4 的引脚模式,通常您的代码应如下所示
pinMode(4, OUTPUT);
但使用子平台时,您的代码应如下所示
pinMode(516, OUTPUT);
数字引脚和模拟引脚都从零开始。因此,模拟引脚 0 (A0) 对应 512,数字引脚 4 (D4) 对应 516。
如果您仍然不清楚这是如何工作的,请返回到闪烁 LED 示例并阅读有关 MRAA 和子平台的此部分。
串行监视器在 setup() 函数中启动。
DebugSerial.begin(115200);
然后可以使用以下命令发送数据
DebugSerial.println(sensorValue);
有关如何使用串行监视器的更详细信息,请参阅串行监视器教程。
连接到 Amazon Web Services (AWS)* 云
您将学到什么
- 如何设置 AWS 帐户和 Thing
- 如何为您的 Thing 创建证书
- 如何将证书输入到 SECRETS 选项卡中
- 如何在 AWS 中验证连接
设置 AWS 门户
访问 AWS IOT 控制台并注册或登录。
此示例在 GitHub 上继续:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/MqttPubAWS
在 Arduino Create 中使用 Microsoft Azure* 的 MQTT
您将学到什么
- 如何设置 IoT Hub
- 如何获取设备的凭证并将其输入到 SECRETS 选项卡中
- 如何使用设备资源管理器查看您的数据
创建帐户
如果您还没有 Microsoft Azure* 帐户,请注册免费试用:https://azure.microsoft.com/en-us/free/
创建 IoT Hub
您需要一个 IoT Hub 来实现 Azure 与您的设备之间的通信。创建 IoT Hub 的最简单方法是通过 Azure 门户。请按照 https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-create-through-portal 中的步骤操作。
门户网站位于 https://portal.azure.com
此示例在 GitHub* 上继续:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/MqttPubAzure
运行 Linux* 进程
本教程将指导您使用 Process 类运行 Linux* 进程。它从网络获取 Arduino* 的 ASCII 艺术标志,并通过串行输出。它还会获取并打印 CPU 信息。
您将学到什么
- 如何将参数传递给您的进程
- 如何使用 Process 类生成进程
此代码示例在 GitHub 上继续:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/Process
串行监视器
您将学到什么
在本示例中,您将学习如何设置串行监视器。您将使用内置函数通过串行设置、传输和接收数据,这对于调试非常有用。
此代码示例也可在 GitHub 上找到:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/SerialMonitor/DebugSerial
此外,还提供了另一个串行监视器示例:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/SerialMonitor/Serial
收集您的材料
您需要以下物品才能完成本教程
设置您的环境
本教程假设您已将开发板设置为与 Arduino Create* 配合使用。如果您还没有这样做,请返回入门部分。
Arduino Create 中的监视器可用于接收或发送与开发板之间的消息。
根据您与开发板的连接方式,您可以使用两种方法进行串行通信。如果您通过 USB 线连接到开发板,请使用 Serial 方法。如果您通过云连接到开发板,则使用 DebugSerial 方法。DebugSerial 与 Serial 类似,因此您可以在所有实例中将 Serial 替换为 DebugSerial。
获取代码
- 创建一个新草图并输入以下代码
int incomingByte = 0; // for incoming serial data void setup() { DebugSerial.begin(115200); // opens serial port, sets data rate to 115200 bps } void loop() { // send data only when you receive data: if (DebugSerial.available() > 0) { // read the incoming byte: incomingByte = DebugSerial.read(); // say what you got: DebugSerial.print("I received: "); DebugSerial.println(incomingByte, DEC); } }
- 在将示例草图上传到开发板之前,请确保在 Arduino Create 中打开监视器。
- 如果您在上传草图后在监视器中输入
hello
,您将看到以下内容
工作原理
DebugSerial 的行为类似于 Serial https://www.arduino.cc/en/Reference/Serial。总的来说,使用方法如下
- 在 setup() 方法中初始化,波特率为 115200
DebugSerial.begin(115200);
- 要从开发板打印消息,请使用以下任一方法
DebugSerial.println(“message”);
- 或者
DebugSerial.print(“message);
- 要监听消息
DebugSerial.read()
系统调用
您将学到什么
在本示例中,您将学习如何从 Arduino 草图中进行系统调用。
系统调用有助于运行命令,就像从命令提示符运行一样。您可以使用系统调用来运行脚本、配置系统、复制文件等。重要的是要注意,当从 Arduino 草图运行命令时,该命令以 root 用户身份运行。
此代码示例也可在 GitHub 上找到:https://github.com/intel-iot-devkit/up-squared-grove-IoT-dev-kit-arduino-create/tree/master/examples/SystemCalls
收集您的材料
您需要以下物品才能完成本教程
获取代码
- 创建一个新草图并输入以下代码
/* check the Monitor to see IP Address */ void setup() { system("ip a"); system("whoami"); } void loop() { printf("hello there"); delay(5000); }
- 在将示例草图上传到开发板之前,请确保在 Arduino Create 中打开监视器。
- 上传草图后,您应该在监视器中看到
ifconfig
命令的结果。这些结果包含开发板的 IP 地址,如下所示。
工作原理
此示例使用了内置的 C++ system() 库。您可以在以下两个地方找到有关此库的更多信息
- https://cppreference.cn/w/cpp/utility/program/system
- http://www.cplusplus.com/reference/cstdlib/system/
或者,您也可以使用 Process,这是内置的 Arduino 库,可以在以下位置找到:https://www.arduino.cc/en/Tutorial/Process。