Windows 10 IoT Serials 3 - Windows 10 IoT Core Ardunio Wiring Mode
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的更多相关文章
- Windows 10 IoT Serials 2 - Windows 10 IoT RTM 升级教程
7月29日,微软推出了Windows 10 for PC的正式版,其版本号是Build 10240.近两天官方说已经有4700万的下载安装量,同时这个数字还在不断攀升.另外,除了Windows 10 ...
- Windows 10 IoT Serials 5 - 如何为树莓派应用程序添加语音识别与交互功能
都说语音是人机交互的重要手段,虽然个人觉得在大庭广众之下,对着手机发号施令会显得有些尴尬.但是在资源受限的物联网应用场景下(无法外接鼠标键盘显示器),如果能够通过语音来控制设备,与设备进行交互,那还是 ...
- 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)运行的是 ...
- Windows 10 IoT Serials 8 – 如何改变UWP应用的目标平台
Windows Insider计划直接加速了Windows系统的迭代,缩短了系统发布的周期.就Windows 10 IoT Core而言,迭代的速度和Windows 10 for PC.Windows ...
- Windows 10 IoT Serials 10 – 如何使用OCR引擎进行文字识别
1. 引言 OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方 ...
- Azure IoT Edge on Windows 10 IoT Core
在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge ).该版本的主要特点就是将计算能力由Azure端推送至 ...
- 【Windows 10 IoT - 3】Windows 10 RTM安装及新特性(树莓派 Pi2)
在<[Window 10 IoT - 1]Window 10系统安装(树莓派 Pi2)>中,我们介绍了Windows 10 IoT预览版的安装,正式版Windows 10 IOT(OS版本 ...
- Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介
原文 Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介 原文地址: http://channel9.msdn.com/Series/Windows-Ph ...
- Windows 10 安装 Docker for Windows
Docker for Windows是Docker社区版(CE)应用程序. Docker for Windows安装包包括在Windows系统上运行Docker所需的一切. 本主题介绍了预安装注意事项 ...
随机推荐
- c# 我所理解的 值类型 and 引用类型
一直以来对于值类型和引用类型都只是一个模糊的概念,趁最近有空深入理解了下. 先说说值类型,在msdn上是这样介绍值类型的. 意思就是值类型直接包含值. 变量引用的位置就是值所在内存中实际存储的位置,所 ...
- machine learning基础与实践系列
由于研究工作的需要,最近在看机器学习的一些基本的算法.选用的书是周志华的西瓜书--(<机器学习>周志华著)和<机器学习实战>,视频的话在看Coursera上Andrew Ng的 ...
- Stackoverflow/dapper的Dapper-Extensions用法(二)
之前翻译了Dapper-Extensions项目首页的readme.md,大家应该对这个类库的使用有一些了解了吧,接下来是wiki的文档翻译,主要提到了AutoClassMapper.KeyTypes ...
- 与类相关基本概念----Beginning Visual C#
span.kw { color: #007020; font-weight: bold; } code > span.dt { color: #902000; } code > span. ...
- idea 自动提示生成 serialVersionUID
from: http://tonycody.blog.51cto.com/8421818/1401422 Intellij IDEA 默认没启用这个功能. Setting->Inspection ...
- 数据库设计(2/9):域,约束和默认值(Domains, Constraints and Defaults)
对于设计和创建数据库完全是个新手?没关系,Joe Celko, 世界上读者数量最多的SQL作者之一,会告诉你这些基础.和往常一样,即使是最专业的数据库老手,也会给他们带来惊喜.Joe是DMBS杂志是多 ...
- Cesium原理篇:2最长的一帧之网格划分
上一篇我们从宏观上介绍了Cesium的渲染过程,本章延续上一章的内容,详细介绍一下Cesium网格划分的一些细节,包括如下几个方面: 流程 Tile四叉树的构建 LOD 流程 首先,通过上篇的类关系描 ...
- PgwSlideshow-基于Jquery的图片轮播插件
0 PgwSlideshow简介 PgwSlideshow是一款基于Jquery的图片轮播插件,基本布局分为上下结构,上方为大图轮播区域,用户可自定义图片轮播切换的间隔时间,也可以通过单击左右方向按键 ...
- C#学习记录
转眼几个月没更博了,把几个月前学C#的笔记发一下,就记录了点教重要的点子而已 1.打印 Console.WriteLine(); 打印 Console.ReadKey(); 按一个按键继续执行 Con ...
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
[问题] 用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response: resp = (Http ...