Maker社区和智能硬件的朋友一定知道Arduino,很多3D打印机都是用它做的。为了迎合这一大块市场,微软在基于Intel Galileo的Windows 8.1 IoT中就是使用这种基于Arduino的硬件接口和编程模式。目前,在Windows 10 IoT Core中也提供了这个功能。也就是说,我们使用树莓派,刷Windows 10 IoT Core系统以后,可以让它直接跑Arduinio的应用。虽然有点杀鸡用牛刀的感觉(毕竟树莓派比Arduino UNO贵好多,处理能力什么的也强不知道多少倍),但这毕竟也是微软为树莓派和Arduino社区结合所做的一些贡献。废话少说,下面就直接进入正题。

首先,我们使用最新的Windows 10 IoT Core OS 10586,Visual Studio 2015 Update 1。大家可以去微软官方下载:

1. 在Windows 10 IoT Core中设置运行Arduino程序的Lighting模式

运行Windows 10 IoT Core设备,如树莓派2。使用网页管理器登陆设备,如下图所示。

打开其中的Devices页面,如下图所示。

在Default Controller Driver中,默认是InBox Driver,将其设置为Direct Memory Mapped Driver,并点击update driver更新,如下图所示。

之后,设备更换Driver模式,并且重新启动。重新启动以后,进入同一个页面,可以发现其Driver模式已经更换。

2. 新建工程

如果已经升级到Visual Studio 2015 with Update 1的版本,那么该模板应该是已经有了。如果没有,可以去Windows IoT Core Project Templates extension page下载。

创建工程时,选择File -> New Project -> Visual C++ -> Windows -> Windows IoT Core -> Arduino Wiring Application for Windows IoT Core,如下图所示。

在默认的源程序中,就给出了闪烁LED灯的例子,其默认代码如下:

void setup()

{

// put your setup code here, to run once:

pinMode(GPIO_5, OUTPUT); // Configure the pin for OUTPUT so you can turn on the LED.

}

void loop()

{

// put your main code here, to run repeatedly:

digitalWrite(GPIO_5, LOW); // turn the LED off by making the voltage LOW

delay(500); // wait for a half second

digitalWrite(GPIO_5, HIGH); // turn the LED on by making the voltage HIGH

delay(500); // wait for a half second

}

很显然,这个程序的结构和Arduino开发环境是一致的,在setup中初始化资源,在loop中循环执行任务。

3. 硬件连接

按照下图方式连接LED灯、电阻和树莓派,注意LED灯长引脚为正极,短引脚为负极。

有关引脚映射,可以参考这个网页:

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

4. 部署和调试

选中工程,目标类型选择ARM,右键,选择属性菜单,在Machine Name中输入IP地址,认证类型中选择Universal模式。如下图所示。

注意,认证类型一定要选择Universal,不然就无法调试。

然后,就可以看到连接的LED闪烁了。

5. 存在的问题

目前,从网页管理器启动已经部署的Ardunio应用程序尚存在一些问题。如下图,在网页管理器中选择已经部署的应用程序,点击start的时候,会弹出错误信息。

6. 调试模式的改变

在Visual Studio 2015 Update 1中,更改了调试认证模式,由原来的None变为了Universal。这点需要开发者朋友注意。大家知道,原来msvsmon.exe这个进程是设备在开机时自启动的。现在,该进行非开机自启动,而是调试程序过程中才会启动。在程序调试结束以后,该进程自动退出。下图是非调试状态下,从网页管理器端看到的正在运行的进程。

下图是调试程序时,从网页管理器端看到的正在运行的进程。

参考链接:

l http://ms-iot.github.io/content/en-US/win10/Lightning.htm

l http://ms-iot.github.io/content/en-US/win10/ArduinoWiringProjectGuide.htm

l http://ms-iot.github.io/content/en-US/win10/LightningSetup.htm

l http://ms-iot.github.io/content/en-US/win10/ArduinoWiringPortingGuide.htm

l http://ms-iot.github.io/content/en-US/win10/samples/arduino-wiring/HelloBlinky.htm

Windows 10 IoT Serials 3 - Windows 10 IoT Core Ardunio Wiring Mode的更多相关文章

  1. Windows 10 IoT Serials 2 - Windows 10 IoT RTM 升级教程

    7月29日,微软推出了Windows 10 for PC的正式版,其版本号是Build 10240.近两天官方说已经有4700万的下载安装量,同时这个数字还在不断攀升.另外,除了Windows 10 ...

  2. Windows 10 IoT Serials 5 - 如何为树莓派应用程序添加语音识别与交互功能

    都说语音是人机交互的重要手段,虽然个人觉得在大庭广众之下,对着手机发号施令会显得有些尴尬.但是在资源受限的物联网应用场景下(无法外接鼠标键盘显示器),如果能够通过语音来控制设备,与设备进行交互,那还是 ...

  3. Windows 10 IoT Serials 1 - 针对Minnow Board MAX的Windows 10 IoT开发环境搭建

    目前,微软针对Windows IoT计划支持的硬件包括树莓派2,Minnow Board MAX 和Galileo (Gen 1和Gen 2).其中,Galileo (Gen 1和Gen 2)运行的是 ...

  4. Windows 10 IoT Serials 8 – 如何改变UWP应用的目标平台

    Windows Insider计划直接加速了Windows系统的迭代,缩短了系统发布的周期.就Windows 10 IoT Core而言,迭代的速度和Windows 10 for PC.Windows ...

  5. Windows 10 IoT Serials 10 – 如何使用OCR引擎进行文字识别

    1. 引言 OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方 ...

  6. Azure IoT Edge on Windows 10 IoT Core

    在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge ).该版本的主要特点就是将计算能力由Azure端推送至 ...

  7. 【Windows 10 IoT - 3】Windows 10 RTM安装及新特性(树莓派 Pi2)

    在<[Window 10 IoT - 1]Window 10系统安装(树莓派 Pi2)>中,我们介绍了Windows 10 IoT预览版的安装,正式版Windows 10 IOT(OS版本 ...

  8. Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介

    原文 Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介 原文地址: http://channel9.msdn.com/Series/Windows-Ph ...

  9. Windows 10 安装 Docker for Windows

    Docker for Windows是Docker社区版(CE)应用程序. Docker for Windows安装包包括在Windows系统上运行Docker所需的一切. 本主题介绍了预安装注意事项 ...

随机推荐

  1. iOS 利用JSPatch 添加热补丁功能

    ios 由于苹果的审核政策,一旦上线后发现bug是件让人崩溃的事情 不过可以利用oc的runtime机制可以家用JSPatch动态的为工程打热补丁 下载地址:https://github.com/ag ...

  2. Oracle OCP 1Z0-053 Exam Topics

    根据OU官方发布的考试大纲,OCP 1Z0-053考点如下: 1. Database Architecture and ASM Describe Automatic Storage Managemen ...

  3. 重温JSP学习笔记--El函数库

    EL函数库(由JSTL提供的) * 导入标签库:<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/f ...

  4. Python的安装和详细配置

    Python是一种面向对象.解释型计算机程序设计语言.被认为是比较好的胶水语言.至于其他的,你可以去百度一下.本文仅介绍python的安装和配置,供刚入门的朋友快速搭建自己的学习和开发环境.本人欢迎大 ...

  5. js构建ui的统一异常处理方案(四)

    上一篇我们介绍了统一异常处理方案的设计方案,这一篇我们将直接做一个小例子,验证我们的设计方案. 例子是一个todo的列表界面(页面代码参考于https://github.com/zongxiao/Dj ...

  6. ODBC database driver for Go:Go语言通过ODBC 访问SQL server

    Go语言通过ODBC 访问SQL server,这里需要用到go-odbc库,开源地址::https://github.com/weigj/go-odbc 一.驱动安装 在cmd中打开GOPATH: ...

  7. Java 多线程 自定义线程辅助

    之前的文章我介绍了C#版本的多线程和自定义线程处理器. 接下来我们来看看Java版本的呢 java 的线程和C#的线程有点区别,java的线程没有是否是后台线程一说,具体原因是java的线程是jvm的 ...

  8. WCF服务自我寄宿 Windows服务

    WCF寄宿有自我寄宿跟IIS寄宿 服务代码: [ServiceContract] ---服务契约 public interface ICustomerService { [OperationContr ...

  9. thinkphp验证码

    thinkphp自带验证码 前端页面: <div style="position:absolute;z-index:3;top:160px;left:180px;"> ...

  10. php图片验证码为什么必须加上ob_clean();才能正常显示。

    ob_clean这个函数的作用就是用来丢弃输出缓冲区中的内容,如果你的网站有许多生成的图片类文件,那么想要访问正确,就要经常清除缓冲区. If you work on an extremely lar ...