Quantcast
Channel: 英特尔开发人员专区文章
Viewing all articles
Browse latest Browse all 583

英特尔® 物联网技术入门代码示例:使用 C++ 编写机器臂

$
0
0

引言

这款机械臂应用是一系列英特尔® 物联网技术代码示例入门实践(使用英特尔® 物联网开发人员套件、英特尔® Edison 开发板、云平 台、API 和其他技术)的一部分。

从该实践中,开发人员可以学习到如何:

  • 连接英特尔® Edison 开发板 — 一个旨在创建原型,生产物联网和可穿戴计算产品的计算平台。
  • 使用英特尔® 物联网开发人员套件中的 MRAA 和 UPM 与英特尔® Edison 开发板 IO 和传感器库交互;该套件是一款完整 的软硬件解决方案,可帮助开发人员探索物联网和实施创新项目。
  • 在英特尔® System Studio 物联网版(面向 C/C++ 和 Java* 开发的 Eclipse* IDE)中运行这些代码示例;该工具是一个 IDE,可创建与传感器和制动器交互的应用,支持立即开发面向英特尔® Edison 或英特尔® Galileo 开发板的软件。
  • 直接使用英特尔® Edison 开发板提供的网页设置 Web 应用服务器来控制机械臂。

它是什么

该项目支持您使用英特尔® Edison 开发板创建具备下列功能的机械臂:

  • 持续检查 Grove* 操纵杆;
  • 根据操纵杆的控制移动 2 个步进电机;
  • 支持通过内置 Web 界面访问以控制电机;

工作原理

本示例支持您使用拇指操纵杆控制机械臂。 每个操纵杆的轴对应一个要控制的电机。

此外,电机还可直接使用英特尔® Edison 开发板提供的 Web 页面进行单独控制。

硬件要求

Grove* 机器人套件,包括:

  1. 带有 Arduino breakout 开发板的英特尔® Edison 开发板
  2. Grove * 基座护罩 V2
  3. Grove* 拇指操纵杆
  4. 步进电机控制器和步进电机 (x2)

软件要求

  1. 英特尔® System Studio 物联网版(面向  C/C++ 和 Java* 开发的 Eclipse* IDE)

如何设置

首先,使用电脑上的 Git*(如下) 复制英特尔® 物联网技术代码示例入门库:

$ git clone https://github.com/intel-iot-devkit/how-to-code-samples.git

想要下载 .zip 文件? 在您的 Web 浏览器中,访问 https://github.com/intel-iot-devkit/how-to-code-samples,并点击右下方的 Download ZIP按 钮。 下载 .zip 文件后,对其进行解压,然后使用目录中的文件(对本例而言)。

将程序添加至 Eclipse*

在 Eclipse* 中选择 Import Wizard 以将现有项目导入至工作区,如下所示:

  1. 从主菜单中选择 File > Import
    Import Files
  2. Import Wizard 对话框打开。 选择 General > Existing Project into Workspace 并单击 Next
    Existing Project
  3. 单击 Select root directory,然后单击相关的 Browse 按钮,以找到包含项 目文件的目录。
    Browse Button
  4. 在 Projects 下方选择目录和您希望导入的项目文件,单击 OK,然后单击  Finish 以将文件导入至 Eclipse*。
    Finish Import
  5. 您的主 .cpp 程序将显示在 src 文件夹下方的工作区。
    SRC Folder

连接 Grove* 传感器

您需要具有连接至兼容 Arduino* 的 breakout 开发板的 Grove* 基座护罩 V2,以便将所有 Grove* 设备插入 Grove* 基座护罩 V2。 确保 Grove* 基座护罩 V2 上的微型 VCC 开关设置为 5V

您需要使用入门套件附带的外部电源适配器为英特尔® Edison 开发板供电,或使用外部的 12V 1.5A电源替代该 适配器。 您还可使用外部电池,如 5V USB 电池。

此外,您需要电路试验板 (breadboard) 和额外的 5V电源为电机供电。 注:您需要使用单独的电池或电源为电 机供电。 您不可将同一电源用于英特尔® Edison 开发板和电机,因此您总共需要 2 个电池或电源。

  1. 将每个步进电机控制器插入 Arduino* breakout 开发板的 4 个针脚内,以便对其进行控制。 将第一个步进电机控制器连接 到针脚 4、5、6 和 7 中,将第二个步进电机控制器连接到针脚 8、9、10 和 11 中。 将两个控制器分别连接到地面 (GND)、Arduino* breakout 开发板 (VCC) 的 5V电源和电机 (VM) 上单独的 5V电源上。
    Robot Arm
  2. 将 Grove* 线缆的一端插入 Grove* 操纵杆,并将其另一端连接至 Grove* 基座护罩 V2 的 A0 端口上。

英特尔® Edison 开发板设置

该示例还使用 Crow* Web 微框架,以提供易于使用,但功能强大的 Web 服务器。 Crow* 库要求 libboost软件 包安装于英特尔® Edison 开发板,并将所需的包含和库文件添加至 Eclipse* Cross G++ Compiler 和 Cross G++ Linker。

  1. 更新 opkg base feed,以便安装所需的相关性。 建立 SSH 与英特尔® Edison 开发板之间的连接,并运行以下 命令:

    vi /etc/opkg/base-feeds.conf
  2. 编辑文件以包含以下内容:

    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
  3. 依次按下 Esc:qEnter,保存文件。

每个英特尔® Edison 开发板只需这样操作一次,如果已经操作过,可跳至下一步。

通过运行以下命令,将 boost库安装于英特尔® Edison 开发板:

opkg update
opkg install boost-dev

复制库

您需要将库和包含文件从开发板复制到运行 Eclipse* 的计算机,以便 Cross G++ Compiler 和 Cross G++ Linker 能够找到它们。 通 过从计算机(而非英特尔® 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* 上复制库

我们提供一个实用的链接,以完成这一设置:

using- winscp.md

注:您需要通过在开发板上运行 configure_edison --password命令,以打开 SSH。 设置密码后,确保将其写下。 您只需操作一次,它在重启英特尔® Edison 开发板时设置。

连接英特尔® Edison 开发板和 Eclipse*

  1. 在左下角右击 Target SSH Connections选项卡的位置,并选择 New > Connection
    SSH Connections
  2. 显示 Intel® IoT Target Connection窗口。 在 Filter字段中,输入开发板的名 称。
    Target Connection
  3. Select one of the found connections列表中选择设备名称并单击 OK
    Select Connections
  4. Target SSH Connections选项卡中,右击设备并选择 Connect
    Connect

如果收到有关用户名和密码的提示,用户名为 root,密码为您在配置英特尔® Edison 开发板时指定的密码。

在英特尔® Edison 开发板上运行代码

准备运行该示例时,在 Eclipse* 中单击顶部菜单栏中的 Run
Run the Code

这样将使用 Cross G++ Compiler 编译程序,使用 Cross G++ Linker 进行链接、将二进制代码传输至英特尔® Edison 开发板,然后 在开发板上执行代码。

运行程序后,您将看到类似于下图中的输出。
View Output

生成 HTML 和 CSS

如果要对 index.htmlstyles.css文件进行更改,需要生成以通过内置 Crow* Web 服务 器提供资产的 .hex 文件。 此处提供介绍如何使用该 shell 脚本的教程:

how-to-run-the-shellscript.md

通过 Web 浏览器控制机械臂。

您可在示例程序运行时,直接使用英特尔® Edison 开发板提供的单页 Web 界面控制机械臂。
Robot Arm Web

该 Web 服务器运行在端口 3000上,因此,如果英特尔® Edison 开发板连接至 192.168.1.13上 的Wi-Fi*,您在同一网络上时浏览的地址是 http://192.168.1.13:3000

如欲获取 18 个英特尔® 物联网技术代码示例(用 C++ 编写)入门的完整列表,请参阅本篇英特尔® 开发人员专区博文 18 个英特尔® 物联网技术代码示例入门现可在 C++ 中使用

如欲获取 18 个英特尔® 物联网技术代码示例(用 JavaScript* 编写)入门的完整列表,请参阅本篇英特尔® 开发人员专区博文 发布 18 个英特尔® 物联网技术代码示例入门

有关该代码示例的更多详情,请访问 GitHub*


Viewing all articles
Browse latest Browse all 583

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>