Intel® IoT 技术代码示例:C++ 中的机器人手臂
此机器人臂应用程序是使用英特尔® 物联网开发套件、英特尔® Edison 开发板、云平台、API 和其他技术进行英特尔® 物联网技术代码示例练习系列的一部分。
获取新的英特尔® 物联网开发套件,这是一个完整的软硬件解决方案,让开发者能够利用英特尔® Galileo 和英特尔® Edison 开发板创建令人兴奋的新解决方案。请访问 英特尔® 物联网开发者专区。
引言
此机器人臂应用程序是使用英特尔® 物联网开发套件、英特尔® Edison 开发板、云平台、API 和其他技术进行英特尔® 物联网技术代码示例练习系列的一部分。
通过此练习,开发人员将学习如何:
- 连接英特尔® Edison 开发板,这是一个专为物联网和可穿戴计算产品原型设计和生产而设计的计算平台。
- 使用英特尔® 物联网开发套件中的 MRAA 和 UPM 接口与英特尔® Edison 开发板 IO 和传感器存储库进行交互,这是一个完整的软硬件解决方案,可帮助开发者探索物联网并实现创新项目。
- 在英特尔® 系统工作室物联网版(用于 C/C++ 和 Java* 开发的 Eclipse* IDE)中运行这些代码示例,以创建与传感器和执行器交互的应用程序,从而能够快速启动英特尔® Edison 或英特尔® Galileo 开发板的软件开发。
- 设置一个 Web 应用程序服务器,以直接从英特尔® Edison 开发板提供的网页控制机器人臂。
它是什么
使用英特尔® Edison 开发板,该项目允许您创建一个机器人臂,该机器人臂可以
- 连续检查 Grove* 游戏杆;
- 根据游戏杆的控制移动 2 个步进电机;
- 可以通过内置的 Web 界面访问以控制电机;
工作原理
此示例允许您使用拇指游戏杆控制机器人臂。游戏杆的每个轴对应一个要控制的电机。
此外,还可以通过直接从英特尔® Edison 开发板提供的网页单独控制电机。
硬件要求
Grove* Robotics Kit 包含
- 带有 Arduino* 扩展板的英特尔® Edison 开发板
- Grove* 基座扩展板 V2
- Grove* 拇指游戏杆
- 步进电机控制器和步进电机 (x2)
软件要求
如何设置
首先,使用 Git* 在您的计算机上克隆 **如何使用英特尔® 物联网技术代码示例** 存储库,如下所示
$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git
想要下载 .zip 文件?在您的网络浏览器中,转到 https://github.com/intel-iot-devkit/how-to-code-samples,然后单击右下角的 **Download ZIP** 按钮。下载 .zip 文件后,解压它,然后使用此示例目录中的文件。
将程序添加到 Eclipse*
在 Eclipse* 中,选择导入向导,将现有项目导入工作区,如下所示:
- 从主菜单中,选择文件 > 导入。
- 导入向导对话框打开。选择通用 > 现有项目到工作区,然后点击下一步。
- 点击选择根目录,然后点击相关的浏览按钮,找到包含项目文件的目录。
- 在项目下,选择包含您要导入的项目文件的目录,然后点击确定,再点击完成,将文件导入 Eclipse*。
- 您的主 .cpp 程序现在显示在工作区中的 _src_ 文件夹下。
连接 Grove* 传感器
您需要将 Grove* Base Shield V2 连接到兼容 Arduino* 的扩展板,以便将所有 Grove* 设备插入 Grove* Base Shield V2。请确保 Grove* Base Shield V2 上的微型 VCC 开关设置为 **5V**。
您需要使用入门套件附带的外部电源适配器为英特尔® Edison 开发板供电,或者使用外部 **12V 1.5A** 电源。您也可以使用外部电池,例如 **5V** USB 电池。
此外,您还需要一块面包板和一个额外的 **5V** 电源来为电机供电。注意:您需要一个独立的电池或电源为电机供电。您不能为英特尔® Edison 开发板和电机使用同一个电源,因此总共需要 2 个电池或 2 个电源。
- 将每个步进电机控制器插入 Arduino* 扩展板的 4 个引脚,以便能够对其进行控制。将步进电机控制器 #1 连接到引脚 4、5、6 和 7,将步进电机控制器 #2 连接到引脚 8、9、10 和 11。将两个控制器都连接到接地 (GND)、来自 Arduino* 扩展板的 **5V** 电源 (VCC) 以及独立的电机 **5V** 电源 (VM)。
- 将一个 Grove* 电缆的一端插入 Grove* 游戏杆,另一端连接到 Grove* Base Shield V2 上的 A0 端口。
英特尔® Edison 开发板设置
此示例使用 Crow* Web 微框架提供一个易于使用但功能强大的 Web 服务器。Crow* 库要求在英特尔® Edison 开发板上安装 **libboost** 包,以及将所需的包含文件和库文件添加到 Eclipse* Cross G++ 编译器和 Cross G++ 链接器。
-
更新 opkg 基本源,以便您可以安装所需的依赖项。与英特尔® Edison 开发板建立 SSH 连接并运行以下命令:
vi /etc/opkg/base-feeds.conf
-
编辑文件,使其包含以下内容:
src/gz all http://repo.opkg.net/edison/repo/all src/gz edison http://repo.opkg.net/edison/repo/edison src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
-
按 Esc,然后按 :,然后按 q,再按 Enter,保存文件。
这只需为每个英特尔® Edison 开发板执行一次,因此如果您已经完成,可以跳到下一步。
通过运行以下命令在英特尔® Edison 开发板上安装 boost 库:
opkg update opkg install boost-dev
复制库
您需要将库和包含文件从开发板复制到运行 Eclipse* 的计算机上,以便 Cross G++ 编译器和 Cross G++ 链接器能够找到它们。最简单的方法是通过从您的计算机(而不是英特尔® Edison 开发板)运行 scp
命令来完成,如下所示:
scp -r USERNAME@xxx.xxx.x.xxx:/usr/include/boost ~/Downloads/iotdk-ide-linux/devkit-x86/sysroots/i586-poky-linux/usr/include scp USERNAME@xxx.xxx.x.xxx:/usr/lib/libboost* ~/Downloads/iotdk-ide-linux/devkit-x86/sysroots/i586-poky-linux/usr/lib
将 USERNAME@xxx.xxx.x.xxx
更改为与您设置的开发板的用户名和 IP 地址相匹配。
将 ~/Downloads/iotdk-ide-linux
更改为与您在计算机上安装英特尔® 物联网开发套件的位置匹配。
在 Windows* 上复制库
我们有一个有用的链接来设置它,请看这里:
注意:您需要通过在开发板上运行 configure_edison --password
命令来开启 SSH。设置密码后,请务必记下。您只需执行一次此操作,并且在重启英特尔® Edison 开发板时会进行设置。
将英特尔® Edison 开发板连接到 Eclipse*
- 在左下角,右键点击目标 SSH 连接选项卡上的任意位置,然后选择新建 > 连接。
- 出现英特尔® 物联网目标连接窗口。在过滤器字段中,输入您的开发板名称。
- 在选择一个找到的连接列表中,选择您的设备名称,然后点击确定。
- 在目标 SSH 连接选项卡上,右键点击您的设备,然后选择连接。
如果提示输入用户名和密码,则用户名为 root,密码是您在配置英特尔® Edison 开发板时指定的密码。
在英特尔® Edison 开发板上运行代码
当您准备运行示例时,点击 Eclipse* 顶部菜单栏中的运行。
这将使用 Cross G++ Compiler 编译程序,使用 Cross G++ Linker 链接程序,将二进制文件传输到英特尔® Edison 开发板,然后在开发板本身上执行它。
运行程序后,您应该会看到与下图类似的输出。
重新生成 HTML 和 CSS
如果您对 _index.html_ 或 _styles.css_ 文件进行任何更改,您都需要重新生成用于通过内置 Crow* Web 服务器提供资源的 .hex 文件。我们有一个关于如何使用 Shell 脚本的有用教程,请参见此处:
通过 Web 浏览器控制机器人臂
机器人臂使用一个单页 Web 界面进行控制,该界面在示例程序运行时直接从英特尔® Edison 开发板提供。
Web 服务器在端口 3000
上运行,因此如果英特尔® Edison 开发板通过 Wi-Fi* 连接到 192.168.1.13
,那么如果您在同一网络上,要浏览的地址是 http://192.168.1.13:3000
。
如需 C++ 版本的 18 个如何使用英特尔® 物联网技术代码示例的完整列表,请访问此英特尔® 开发者专区博客文章 18 个如何使用英特尔® 物联网技术代码示例现已提供 C++ 版本。
如需 JavaScript* 版本的 18 个如何使用英特尔® 物联网技术代码示例的完整列表,请访问此英特尔® 开发者专区博客文章 宣布推出 18 个新的如何使用英特尔® 物联网技术代码示例。
有关此代码示例的更多详细信息,请访问GitHub*。