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所需的一切. 本主题介绍了预安装注意事项 ...
随机推荐
- GROUP BY的扩展
GROUP BY的扩展主要包括ROLLUP,CUBE,GROUPING SETS三种形式. ROLLUP rollup相对于简单的分组合计增加了小计和合计,解释起来会比较抽象,下面我们来看看具体事例. ...
- ASP.NET MVC Authorization 自定义跳转
应用场景:在 ASP.NET MVC 应用程序中,需要对用户身份权限进行验证,比如没有登录或者不符合权限的用户,访问 Action 的时候,跳转到指定页面. 重写 Authorize: public ...
- ZOJ Problem Set - 1383 Binary Numbers
水题,输出的时候注意下 #include <stdio.h> #include <math.h> int main() { int d; scanf("%d" ...
- 【JVM】JVM系列之执行引擎(五)
一.前言 在了解了类加载的相关信息后,有必要进行更深入的学习,了解执行引擎的细节,如字节码是如何被虚拟机执行从而完成指定功能的呢.下面,我们将进行深入的分析. 二.栈帧 我们知道,在虚拟机中与执行方法 ...
- Scala 中下划线的用途
转载自:https://my.oschina.net/leejun2005/blog/405305 Scala 作为一门函数式编程语言,对习惯了指令式编程语言的同学来说,会不大习惯,这里除了思维方式之 ...
- 认识Java Core和Heap Dump
什么是Java Core和Heap Dump Java程序运行时,有时会产生Java Core及Heap Dump文件,它一般发生于Java程序遇到致命问题的情况下. 发生致命问题后,Java进程有时 ...
- nodejs学习笔记一——nodejs安装
a.nodejs安装 nodejs的安装没有什么说的默认安装即可.安装包官网下载即可:nodejs官网 本人用的是window的安装包node-v4.2.6-x64.msi 安装完成后打开命令行查看使 ...
- C# 热敏打印机 Socket 网络链接 打印 图片 (二)
IPAddress ip = IPAddress.Parse("192.168.1.212"); IPEndPoint iport = );//9100为小票打印机指定端口 Soc ...
- C#中 @ 的3种用途
1.忽略转义字符例如string fileName = "D:\\文本文件\\text.txt";使用@后string fileName = @"D:\文本文件\text ...
- Yii2:避免文件路径暴漏,代理访问文件
制作背景:公司要做第三方文件管理系统,客户有时候需要直接访问文件,但是我们又不想暴露文件路径,才有这代理访问 基本功能介绍:读取txt文档.读取图片,如果有需要,可以通过插件读取doc.pdf文档, ...