亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

物联网:Windows 远程 Arduino 和通用应用

组件和用品

Arduino UNO
× 1
SparkFun 蓝牙调制解调器 - BlueSMiRF 银色
我用的是黄金版
× 1

关于这个项目

注意:请参阅底部评论中的更新。

可以在 远程布线 上构建 Windows 10 UWP 应用 库,以便应用程序可以与运行 Firmata 的 Arduino 设备进行交互。开发了一个应用程序,类似于 Windows 远程 Arduino“Blinky”示例,但增加了功能。它执行 GPIO(输出与输入)以及一些模拟 IO。此应用程序在功能上与本系列上一篇博客中的 Windows 8.1 版本相同。本博客使用与上一篇博客相同的材料(即重复了大部分内容),但来自通用 Windows 平台 (UWP) 上下文,而不是 Windows 8.1 通用应用程序上下文。该应用程序的目标是 Win 10 桌面、Win 10 手机和 Raspberry PI2(运行 Win 10 IoT)。后一个目标是一个“work-in-progress but”。这个博客可以不参考之前的博客阅读。

这个项目在我的博客中有详细介绍,网址为 http://embedded101.com/Blogs/David-Jones/entryid/636/Windows-10-IoT-Windows-Remote-Arduino-and-Universal-Windows-Platform-Apps

Windows 远程 Arduino“Blinky”示例 位于 ms-iot.github.io。


通用应用和通用 Windows 平台应用

通用应用程序 (UA) 在 Windows 8.1 中达到顶峰您可以在同一个解决方案中实现针对 Windows Intel 桌面、ARM RT Surface 和 Windows Phone (ARM) 的应用程序。他们可以共享公共代码,例如事件处理程序、通用计算和数据。 XAML 代码必须特定于目标。您刚刚为每个目标编译了单独的子项目。在编译过程中,包含了公共代码。

随着 Windows 10 中的“One Windows”范式转变,所有目标的相同代码,包括 XAML 代码都可以用于所有目标。同一个项目只需要针对不同的目标重新编译即可。随着 UA 名称应用于 Windows 8 应用程序,真正通用的应用程序需要一个新名称。因此,通用 Windows 平台应用程序的名称是为 Windows 10 创造的。

所有 Windows 10 平台都支持 UWP 应用。但是每个平台都有特定的扩展。例如,Windows 10 IoT 扩展支持 GPIO、I2C、SPIO 等。移动扩展支持电话功能。等等。UWP 为所有设备提供有保障的核心 API 层。


Windows 10 扩展 SDK。已检查桌面、移动和 IoT 扩展。

对于 tis 博客,我们使用 UWP 模板而不是上一篇博客中的 UA。我们不需要任何扩展 SDK。


[1] 设置与 Arduino 设备的蓝牙通信。

如果您已经完成了 Win 8.1 活动,则可以跳过此部分。

USB 或蓝牙可用于 Arduino 设备和 Windows 设备之间的 Firmata 通信。对于 Windows 10,两者都可以使用,而对于 Windows 8.1,只能使用蓝牙。对于此版本的应用程序,将使用蓝牙。我使用了 Sparkfun Bluetooth Mate Gold,而 Sparkfun Bluetooth Mate Silver 与上面提到的“Blinky”示例一起使用。主要区别是黄金的射程可达 100m,而银的射程可达 10m。默认的握手设置也不同。它们都有一个TTL电平的UART接口,既可用于配置蓝牙设备的工作模式,也可用于与Arduino串口交互。

如果您需要配置蓝牙设备,可以使用 Sparkfun 或 Freetronics USB-Serial 或 Free 设备通过桌面串行终端配置设备。您还可以通过将 PIO6(实际上是 PIO4)引脚连接到高电平并切换 3 次来将设备恢复为默认设置。

蓝牙伴侣与 Sparkfun FTDI Basic 具有相同的引脚输出,因此它们可以互换使用。您不能将蓝牙伴侣直接插入 FTDI 基本板(您必须交换 TX 和 RX)。该配置可以与桌面串口终端一起使用,FTDI设备USB连接到桌面,配置蓝牙设备(或使用蓝牙设备从桌面进行串口通信。

默认的 TTL UART 串​​口设置为:

  • · 波特率 115,200
  • · 8 位
  • ·无奇偶校验
  • · 1 个停止位
  • · 硬件流控 已启用(在 Mate Silver 上为 None)
  • · 串行端口配置文件 (SPP):FireFly-WXYZ
    其中 WXYZ 是设备的 BT MAC 地址的最后 4 位数字。
  • · 密钥 1234

请注意,设备最多可以存储 8 个设备配对。

蓝牙设备的文档位于:
http://www.sparkfun.com/datasheets/Wireless/Bluetooth/rn-bluetooth-um.pdf

Firmata 配置适用于需要更改的 57600 波特率或为此配置的蓝牙设备。对于本练习,我们将修改 Firmata 配置,这是更简单的方法。硬件控制流程也可以通过配置蓝牙设备来处理,但本练习是通过将 RTS 连接到 CTS 来处理的。

Whist 蓝牙设备可以安装在面包板上并从那里连接到 Arduino 设备,我选择在原型屏蔽上为其安装一个插座。

一个 6 针 Arduino Shield 接头在 TTL UART 针脚处焊接到蓝牙设备上,插座朝外。引脚向下弯曲 900,以便设备可以垂直插入另一个屏蔽接头。如果需要配置,那么可以使用 BT 插座将其直接连接到类似安装的 FTDI 基本模块。后来将一根电线焊接到蓝牙模块上的 PIO6 (PIO4),用于恢复出厂设置。

图 3 蓝牙模块在 UART 引脚处带有屏蔽接头和屏蔽接头

一个 8 屏蔽头安装在原型屏蔽底部的中间。还要在防护罩的外侧添加接头,以便它可以直接插入Uno。

图 4 用于安装蓝牙模块的 Arduino Prototype Shield

然后将蓝牙模块面向 GPIO 引脚插入,朝向引脚 0 和 1 (Rx/Tx),黄色位置不可见。其中之一可以用作恢复出厂设置线的临时位置。

图 6 Arduino 设备上安装的蓝牙模块


[2] 设置固件

如果您已经完成了 Win 8.1 活动,则可以跳过此部分。

注意: 当从 Arduino IDE 通过 USB 编程时,Arduino Uno 的 UART 引脚 0 和 1 不可用。当连接到 Firmata 通信时,这些相同的引脚是连接到蓝牙模块的 TTL UART 接口的。因此,本节对Arduino设备进行编程时,不应连接蓝牙设备。

2.1 假设你之前为Arduino(Uno)设备开发过,新建一个Standard Firmata shield:

2.2 需要进行一项更改,即波特率。在IDE中搜索57600,替换为115200,保存Sketch,我取名为Firmata_115200。对 Uno 进行编程,这部分就完成了。


[3] 设置 Universal App Firmata 软件栈

本节与已经完成的 Win 8.1 活动仅略有不同。

软件栈由三层组成:

Remote-Wiring API 在概念上为 Arduino 硬件交互实现了属性(配置)、方法和事件。例如,GPIO(例如获取和设置引脚、更改引脚等)。它使用 Firmata 协议与 Firmata 层通信。 Firmata 通过在串行层中实现为蓝牙和 USB 串行传输层的串行协议在堆栈中向下通信。 USB 选项不适用于 Windows 8.1。

这个被调用的软件栈有两个来源:

  1. https://github.com/ms-iot/windows-remote-arduino-samples
  2. https://github.com/ms-iot/remote-wiring/

两者都包含 Windows 8.1 和 Windows 10 版本。虽然两个版本的 Windows 10 版本都可以构建,但我发现第二个版本的 Windows 8.1 无法构建。我使用的是 Visual Studio 2015 RC 版本:

  • Microsoft Visual Studio 社区 2015 RC
  • 版本 14.0.22823.1 D14REL
  • 微软.NET框架
  • 版本 4.6.00076

3.1 下载第一个版本。要正确执行此操作,您需要克隆存储库(不要下载 zip):

  • 安装 git 或 GitHub
  • 在 git shell 或 GitHub Desktop Shell(它是 Powershell)中,从合适的目录输入以下内容:
    git clone --recursive https://github.com/ms-iot/windows-remote-arduino-samples.git
    <代码>

    你得到的目录结构是:

windows-remote-arduino-samples o 远程接线 Microsoft.Maker.win8_1 Microsoft.Maker.win10 o win8_1 o win10

后两个文件夹(win8_1 和 win10)只是示例应用程序(包括“blinky”示例),我们现在将忽略它们。两个 Maker 版本都使用相同的源文件夹,因此对于 Windows 10,我们只需要:

windows-remote-arduino-samples o 远程接线 Microsoft.Maker.win10

    到合适的文件夹。我建议在驱动器的根目录下放置一个,例如 c:\wras10,因为我发现使用 ARM 构建可能会出现一些与路径名过长有关的错误。您可能还想复制 .md 文件以供参考。这些可以在VS中打开。

    3.2 在Microsoft.Maker.win10中打开解决方案文件

    3.3 将目标设置为 Win32 构建解决方案。

    三个构建完成。软件堆栈中的三层中的每一层都有一个..

    3.4 ARM 配置同理。如果您有 x64 机器,那么您可能也想尝试该版本。


    [4] 创建 HW LED UWP 应用

    本节中有一个“短路”,供那些已经完成了以前的 Win 8.1 活动的人使用。

    对于应用程序的这个初始版本,一个软件按钮将打开一个硬件 LED,另一个将关闭它。 LED 将连接到 GPIO 引脚 5。

    “Blinky”文档说有很多方法可以获取和使用这些库。最终 Nuget 将成为一种方式,但目前尚不可用。您可以在开发系统上以通用方式引用这些构建版本,最简单的方法是将所需的通用应用程序添加到解决方案中并引用它们。我们将使用这种方法。

    4.1 将新的 C# Windows Blank 通用应用程序添加到解决方案。 (注意这次不是 Windows 8.1):

    给它一个合适的名字。我称我的为 wrauwp:Windows 远程 Arduino 通用应用程序 UWP。
    请注意,这次只创建了一个项目(UWP)。XAML 和 CSharp 代码对于应用程序的桌面和移动版本是相同的。不同之处在于它的编译方式。

    包清单中需要串行和蓝牙功能:

    4.2 通过查看代码在文本编辑器(不是它的 GUI)中打开 package.appmanifest。 Internet 客户端功能包含在底部。将此部分修改为:

    在 package.appmanifest

    <功能>

    <代码>

    此外,如果我们在桌面上使用 USB-Serial 而不是 Bluetooth-Serial,我们会为此添加一个功能。

    需要对每个相关软件层的引用:

    4.3 为桌面 UA 添加引用 Firmata、RemoteWiring 和 Serial(同样只需要为一个项目执行此操作):

    提示:对于那些已经完成了以前的 Windows 8.1 的人,您现在可以短路以下内容

    • 将网格 xml 代码从该项目复制到此新项目中的 MainPage.xaml。
    • 您现在可以跳到在目标上测试应用程序

    对于那些继续在这里的人......

    4.4 修改UA的Grid XAML为:

    MainPage.xaml:用户界面

    代码

    • WindowsRemoteArduino_Win10.zip
    WindowsRemoteArduino_Win10.zipC#
    An extended version of "Blinky"
    Input, Output, Analog Input
    Fancier UI
    No preview (download only).

    示意图


    制造工艺

    1. Raspberry Pi Universal Remote
    2. Windows IoT:人脸识别门
    3. Windows 10 IoT Core 和 SHT15
    4. Windows 10 IoT Core for Raspberry Pi 3 Model B+
    5. GoPiGo v2 与 Windows IoT
    6. 支持远程供应链团队的应用和设备
    7. 使用 Arduino、1Sheeld 和 Android 的通用远程控制
    8. LCD 动画和游戏
    9. IOT - 使用 ESP8266、Arduino 和超声波传感器的智能罐
    10. Python3 和 Arduino 通信
    11. PCB 和物联网指南
    12. 思科推出适用于 IT 和 OT 的物联网远程监控解决方案