专栏首页施炯的IoT开发专栏Windows 10 IoT Serials 3 - Windows 10 IoT Core Ardunio Wiring Mode

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Windows 10 IoT Core 17101 for Insider 版本更新

    除夕夜,微软发布了Windows 10 IoT Core 17101 for Insider 版本更新,本次更新只修正了一些Bug,没有发布新的特性。 已知的...

    ShiJiong
  • VS2008下使用托管代码控制Windows Mobile Device Emulators

      在听黎波老师的Webcast-Visual Studio 2008 移动开发新体验时,听他提到过可以使用代码来控制Device Emulator。今天在ms...

    ShiJiong
  • 控制Arduino的利器-Windows Remote Arduino

    1. 概述     相信很多朋友已经在玩 Arduino了,而且一般都是使用官方的Arduino IDE来写程序控制Arduino硬件。为了能够实现更加方便的控...

    ShiJiong
  • 腾讯云服务器如何上传文件

    登录 https://console.qcloud.com/cvm 然后更换系统,选择使用其他镜像安装,然后选项里面选择可视化云面板

    用户6468650
  • 赫尔辛基大学AI基础教程:赔率和概率(3.1节)

    在赫尔辛基大学AI基础教程:搜索和游戏(2.3节)中,我们讨论了搜索以及它在完全信息时的应用 ,比如像国际象棋这样的游戏。但是,在现实世界中,事情很少这样清晰。

    AiTechYun
  • .NET Core应用的三种部署方式

    FDD:Framework-dependent deployment,框架依赖部署。这种方式针对某个特定版本的.NET Core进行发布,只打包应用本身及.NE...

    雪飞鸿
  • 赫尔辛基大学AI基础教程:贝叶斯定理(3.2节)

    我们不会过分介绍概率微积分的细节以及它用于各种AI应用程序的方法。但我们将讨论一个非常重要的定理。

    AiTechYun
  • 网管心得1-2-3

    1.大家在使用外部邮箱时,遇到附件的邮件;最好养成把附件下载到本地的习惯。因为你今天能打开、查看;并不表示你每时每刻都可以打开的。也许你明天点击时就报错,因为它...

    py3study
  • 看腻了大佬虐菜,只盼三场势均力敌的小组赛,pick一下?

    截止周二早上(6月26日),2018俄罗斯世界杯64场比赛已战36场,小组赛还有最后三晚12场,分别是C、D、F、E、H、G小组的第三轮。

    用户1569917
  • 在Ubuntu上安装开源邮件服务器-iRedmail

    运行自己的邮件服务器有很多好处。它允许您管理邮箱和附件的大小,运行每小时/每日电子邮件备份,查看邮件日志,并允许您自由使用任何可用的域名。缺点通常是安装所有必要...

    双愚

扫码关注云+社区

领取腾讯云代金券