1. 概述

相信很多朋友已经在玩 Arduino了,而且一般都是使用官方的Arduino IDE来写程序控制Arduino硬件。为了能够实现更加方便的控制,微软在Windows IoT计划中推出了Windows Remote Arduino。简单来说,Windows Remote Arduino是一个开源的Windows运行时组件,通过它,我们可以使用蓝牙、USB、WiFi或者是以太网这四种连接方式中的任意一种来控制Arduino硬件。因此,在Windows 10这个统一的大平台下,我们可以使用Windows 10系统的PC、平板、手机,甚至是树莓派等运行IoT Core的设备来控制Arduino硬件。Windows Remote Arduino提供的功能包括:

(1)GPIO控制(模拟和数字)

Digital Write

Digital Read

Analog Write

Analog Read

Setting the pin mode for any pin

Receive events when values change / are reported.

(2)I2C接口通信

(3)Firmata用户自定义协议

2. 上位机环境准备

这里将运行Windows的PC、Surface、或者Windows Phone统称为上位机,我们可以使用以下三种方法中的任意一种来完成上位机的环境设置:

  • Download the Windows Remote Arduino Experience app from the Microsoft Store
  • Install the NuGet package
  • Manually add the Windows Remote Arduino project files to a new Visual Studio solution.

上述三种方式的难以程度依次升高。其中,第一种适用于简单的使用场景,用户无需编写代码就可以通过下载的Windows Remote Arduino Experience来完成Arduino设备的控制。第二种适用于编写自己的UWP应用场景,通过引用Windows Remote Arduino包,在自己编写的程序中完成Arduino设备的控制。第三种需要手动将Windows Remote Arduino源代码工程添加到自己的工程中来,这种方式可以获得的自由度最大,用户可以根据自己的需求定制Windows Remote Arduino。

这里,以第一种方法为例,打开微软商店,直接在PC或者Mobile上安装Windows Remote Arduino Experience应用,该应用是UWP应用。

3. Arduino设置

Windows Remote Arduino建立在Firmata protocol 基础之上,因此,我们首先需要在Arduino硬件设备上烧写对应的代码。在安装Arduino IDE的时候,StandardFirmata 是默认安装的,用户可以按照以下的步骤进行程序的烧写:

  1. 通过USB接口连接Arduino设备,这里以Arduino UNO为例。
  2. 启动Arduino IDE
  3. 通过Tools > BoardTools > Port选择对应的板类型和端口号。
  4. 通过File > Examples > Firmata > StandardFirmata,打开该工程。
  5. 点击Upload,将StandardFirmata sketch烧写到Arduino UNO中。

如果用户仅仅希望通过USB来控制Arduino设备的话,到这里已经完成了Arduino的设置工作。如果用户希望通过蓝牙来控制Arduino设备,那么,首先,PC上需要有蓝牙模块,其次,Ardunio上也需要连接一个蓝牙模块,具体可以参考这个文章《hook up a Bluetooth device to the Arduino 》。另外,如果用户希望通过WiFi来控制Arduino设备,那么,Arduino需要一个WiFi Shield,具体可以参考这个文章《hook up a Wi-Fi device to the Arduino 》。

4. PC操作

打开Windows Remote Arduino Experience应用程序,连接类型选择USB,速率选择57600。如果此时Arduino已经正确连接了PC的USB接口,则会自动显示Arduino Uno(COM*),用户只需点击Connect就可以连接Arduino设备了,如下图所示,

之后,应用程序界面分别包含了Digital、 Analog、PWM这三个页面,用户可以点击对应的页面进行远程控制和数据读取。以Pin 13为例,默认是Output的Low,通过点击更改电平,如下图所示。

观察Arduino Uno的板载Pin 13连接的LED灯,即可发现其状态已经点亮,如下图所示。

5. 使用以太网连接

笔者手头有W5100的Ethernet Shield,所以尝试了这种方式。注意,这种方式下,我们需要重新烧写Arduino的sketch。具体步骤如下:

  1. 登陆Github,下载standard-firmata-networking。
  2. 解压,拷贝lib目录下的EthernetStream文件夹到本地的Arduino libraries目录。
  3. 打开standard-firmata-ethernet.ino
  4. 插上W5100 Ethernet Shield,将Arduino Uno通过USB连接到PC。
  5. 点击Upload烧写sketch。

烧写完成以后,可以将W5100 Ethernet Shield通过网线连接到TPLink上,查看其自动获得的IP地址,当然,用户也可以修改standard-firmata-ethernet.ino的代码,设置其IP地址。

然后,在PC或者Mobile上打开Windows Remote Arduino Experience应用程序,连接类型选择Network

,速率选择57600。IP地址处填写Arduino获得的IP地址,端口号默认为5000(也可以通过standard-firmata-ethernet.ino进行修改)。

点击连接之后,同样可以按照上面第4节的内容控制Arduino了。

参考链接:

1. http://ms-iot.github.io/content/en-US/win10/WRA.htm

2. Download the Windows Remote Arduino Experience app from the Microsoft Store

3. Install the NuGet package

4. Manually add the Windows Remote Arduino project files to a new Visual Studio solution

5. hook up a Bluetooth device to the Arduino

6. hook up a Wi-Fi device to the Arduino

7. https://github.com/ms-iot/remote-wiring/

8. https://github.com/ms-iot/remote-wiring/#notes-on-wifi-and-ethernet

本文转自灵动生活博客园博客,原文链接:http://www.cnblogs.com/dearsj001/p/WindowsRemoteArduino.html,如需转载请自行联系原作者

控制Arduino的利器-Windows Remote Arduino相关推荐

  1. WIFi 开关控制实现-ESP8266 物联网 android studio arduino QT多线程服务器

    WIFi 开关控制实现-ESP8266 物联网 android studio arduino QT多线程服务器 WIFI局域网/外网 开关控制实现-物联网ESP8266 android QT 简介:本 ...

  2. Arduino是什么 arduino 哪个国家 arduino好学吗 难不难 arduino能做什么 为什么arduino这么火

    目录 Arduino是什么? 为什么Arduino广受欢迎? 如何使用Arduino? Arduino是什么? 写在前面: 接触和使用arduino将近10个年头了(到2019年底),说来惭愧,这麽多 ...

  3. 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader

    简 介: 测试了利用Nano板对于基于MEGA328的Arduino的Bootloader下载,在此基础之上,利用了FT232TL的USB-TTL UART模块对测试MEGA328下载执行程序. 关键 ...

  4. arduino nano 蓝牙_用Arduino玩转掌控板(ESP32):ESP32概述与Arduino软件准备

    前言 近年来,掌控板(英文名:mPython)在创客教育中应用越来越广泛.掌控板集成了 ESP32 高性能双核芯片,具备 WiFi 和蓝牙连接功能,同时在板子上又配置了丰富的传感器,最重要的是它是专门 ...

  5. arduino服务器_如何使用Arduino检查Web服务器的响应状态

    arduino服务器 by Harshita Arora 通过Harshita Arora 如何使用Arduino检查Web服务器的响应状态 (How to use Arduino to check ...

  6. arduino和单片机c语言,Arduino和单片机的区别-与非网

    Arduino是一款便捷灵活.方便上手的开源电子原型平台.包含硬件(各种型号的Arduino板)和软件(ArduinoIDE).由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Ban ...

  7. arduino运行java_调试在Arduino MKR1000上运行的Arduino Uno代码

    所以,我是Arduino的业余程序员,之前从未使用过Arduino MKR1000 . 我使用了Arduino Uno并使用Grove Ear夹心跳传感器和Grove温度传感器编写附加代码来检测心跳和 ...

  8. arduino analogread_Arduino编程语言教程,Arduino和单片机的区别

    众所周知,Arduino是一个开放性源码电子平台,拥有灵活.易用的硬件和软件.Arduino作为知名度很高的微控制器,已经融入到好多领域.现在很多中小学生.老师.创客们.设计师.艺术家等都在玩ardu ...

  9. Arduino基础入门篇02—Arduino开发环境IDE安装使用

    工欲善其事,必先利其器.本文主要介绍Arduino开发环境IDE的安装及功能介绍. Arduino IDE安装 从官网下载IDE开发环境,IDE下载地址 .笔者使用Win10系统,点击 Windows ...

  10. 【Arduino】重生之Arduino 学僧(1)----Arduino简介

    大家对内容感兴趣的话,可以点赞关注哦 一.什么是Arduino? 如果想要知道arduino就先要了解什么是单片机,Arduino平台的基础就是聚合AVR指令集的单片机. 1.什么是单片机?它与个人计 ...

最新文章

  1. 新春祝福必杀计之发送短信攻略
  2. 引入Redis|tensorflow实现 聊天AI--PigPig养成记(3)
  3. 大学java专业核心课程_计算机应用技术专业核心课程有哪些?
  4. (一)Cisco DHCP Snooping原理(转载)
  5. 对C语言中递归算法的分析
  6. boost::qvm::deduce_vec相关的测试程序
  7. 【每日一题】8月10日题目精讲—排座椅
  8. 十多年前的 Adobe ColdFusion 漏洞被用于勒索攻击
  9. Ubuntu16.04 ORB_SLAM2的安装教程
  10. java里新建线程设置线程名字_多线程开发不得不掌握,设置和获取线程名称及JVM如何运行的...
  11. Hive 中日志的存放位置
  12. 数值补码和原码计算方法介绍
  13. 画图解释 SQL join 语句
  14. IDEA 返回上一步,回到下一步 冲突 快捷键设置
  15. 注册表怎么禁用计算机,注册表的禁用方法与解锁方法
  16. Office文件转PDF的解决方案
  17. Flutter之常用组件的使用举例(中)
  18. 大数据 | Hadoop性能测试
  19. APP分类及与web区别
  20. 计算机音乐数字乐谱未闻花名,未闻花名简谱(歌词)-演唱-小叶歌曲谱

热门文章

  1. spite用法 java_despite 和in spite of 用法
  2. 116.填充同一层的兄弟节点
  3. clear与resize
  4. 如何得到最后N位都是1的二进制数
  5. Java反射机制--反射概述
  6. 劳力埃大学计算机科学,劳里埃大学计算机科学本科.pdf
  7. 编译原理完整学习笔记(七):优化代码
  8. angular解决跨域问题
  9. java多线程--容器类和其他工具类
  10. iOS开发之HTTP与HTTPS网络请求