×

Windows物联网与英特尔伽利略开源硬件

消耗积分:0 | 格式:zip | 大小:0.22 MB | 2023-02-02

李麒铭

分享资料个

描述

Intel Galileo 板默认在 Linux 操作系统上运行,但我们也可以使用 micro SD 卡使其在功能更强大的 Linux 或 Windows 版本上运行。Windows 对于小于 9 英寸的屏幕是免费的,因此许可不是问题。您可以在 Galileo 板上免费使用它作为 Linux。这里还出现了一个问题,即为什么要为物联网使用 Windows 操作系统。原因可能如下:

  1. 熟悉的操作系统。
  2. 使用 Visual Studio 的易于使用的工具和强大的开发环境,可让您调试代码。
  3. 访问在 Windows 上运行的许多库。
  4. 通常所有 Arduino 扩展板都是兼容的,包括 Grove base 扩展板。
  5. 您是 Windows 迷。

对于本文,我使用的是 Intel Galileo gen2 开发板。如果您有 Gen1 板,则整个过程是相同的。有很多支持的板,其他 Windows 操作系统支持的板如下:

  • 树莓派 2
  • MinnowBoard MAX
  • 英特尔伽利略

让我们看看如何在我们的小板上开始使用 Windows。

硬件:

  • 英特尔伽利略主板。
  • 伽利略电源。
  • 以太网电缆
  • 以太网转 USB 适配器
  • 微型 SD 卡(16 GB 或更多)
  • 微型 SD 卡读卡器
  • LED
 
WP_20150823_006.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
 

软件:

  • 视觉工作室 2013

    目前,英特尔 Galileo 支持的 IDE 是 Visual Studio 2013 Express、Professional、Premium 或 Ultimate。当前不支持 Visual Studio 2015。如果您没有 Visual Studio 2013,则可以从以下位置下载它:Visual Studio 下载

设置您的电脑

  1. 在您的计算机上安装 telnet。Telnet 提供对远程主机上命令行界面的访问。使用 telnet 我们将远程访问我们的板。

    在您的 PC 上,转到“控制面板”,然后“程序和功能”,选择“打开或关闭 Windows 功能”。Windows 功能窗口将打开。勾选“ Telnet 客户端”。单击确定并重新启动计算机。

     
    6.png?auto=compress%2Cformat&w=740&h=555&fit=max
     
     
    7.png?auto=compress%2Cformat&w=740&h=555&fit=max
     

     

  2. 安装WindowsDeveloperProgramforIoT.msi您需要使用 Microsoft 帐户在 Connect Windows Developer Program for IoT 上注册。

     

  3. 运行此文件后,您将在计算机中看到两个主要变化。

    它将安装一个名为 Galileo Watcher 的实用程序,它将帮助您访问您的威廉希尔官方网站 板,并且在 Visual Studio 中,新项目中将有一个名为“Galileo Wiring App”的物联网模板。

     

更新开发板上的固件

软件包:

在目录的根目录中创建一个新文件夹并将其命名为“galileo”并将这两个下载的文件放入其中。我将它们放在 C:\ 驱动器中,因为这样更容易访问。我的 SD 卡位于 D:\ 驱动器中。
不明确的

将您的 micro SD 卡连接到您的 PC,并使用 Fat32 文件系统对其进行格式化。如果有任何数据,Windows 映像创建将失败。让我们为 Galileo 创建一个可引导的 Windows 映像:

  1. 转到命令提示符,右键单击并选择“以管理员身份运行”。
  2. 导航到“galileo”文件夹(保存下载文件的位置)。
  3. 类型 :

    {包含目录的文件}apply-bootmedia.cmd -destination {YourSDCardDrive} -image {.wimFile downloaded above} -hostname mygalileo -password admin

例如在我们的例子中:

C:\galileo>apply-bootmedia.cmd -destination d:\ -image 9600.16384.x86fre.winblue_rtm_iotbuild.150309-0310_galileo_v2.wim -hostname mygalileo -password admin

 
12.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

 

 

在这里,我们使用 apply-bootmedia.cmd 在安装 SD 卡的目标驱动器上创建映像。您无需输入整个图像名称,只需输入“–image”并按 Tab 键,命令提示符将为您完成。您必须为您的 Windows 管理员帐户传递更多参数“主机名”和“密码”。强烈建议使用“mygalileo”作为主机名,使用“admin”作为密码。除非你没有正当理由坚持这一点。IoT 的 Visual Studio 模板使用“mygalileo”作为默认主机名,如果您在此处更改它,请确保在 Visual Studio 调试配置中更改它。安装过程将开始,这将需要一些时间。在应用图像之前,它会暂停一分钟,给它一些时间。整个过程大约需要 10 分钟。

 
13.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

 

可启动映像准备就绪后,您可以将其安装到 SD 卡插槽中的英特尔 Galileo 主板。将开发板连接到电源,Galieo gen1 和 gen2 开发板使用不同的电源。如果您使用的是 Gen2 板,则使用 12 伏电源,使用 Gen1 时使用 5 伏电源。

  1. 将网络电缆的一端连接到英特尔伽利略。
  2. 将网络电缆的另一端连接到计算机的以太网端口,或者如果您没有可用的以太网端口,则可以使用以太网-USB 适配器。
  3. 为您的威廉希尔官方网站 板供电。
  4. Galileo 将从 Windows 操作系统的 SD 卡映像启动。在此过程中,SD 卡指示灯将开始闪烁。当指示灯稳定下来时,它将完成启动,此过程可能需要大约 2 分钟。
     
    WP_20150824_006.jpg?auto=compress%2Cformat&w=740&h=555&fit=max
     

     

伽利略守望者

现在您可以运行 Galileo Watcher 实用程序。“Galileo Watcher”将自动检测您的威廉希尔官方网站 板。如果没有,则确保它具有使用防火墙的网络访问权限。该实用程序将显示有关您的开发板的一些信息,例如其 MAC 地址和 IP 地址。它还有一个复选框来显示您的 Galileo 是否已连接。当您右键单击板时,它将打开一个方便的上下文菜单,您可以使用它复制 MAC 和 IP 地址或远程连接到您的 Galileo。

 
14.png?auto=compress%2Cformat&w=740&h=555&fit=max
 

在这里远程登录

它将启动与董事会的远程登录会话。您将能够获得针对您的 Galileo 的远程命令提示符。它会询问用户名和密码

 

网络浏览器在这里

MinWin 上运行着一个网络服务器,你可以看到一个任务列表,你的板子上运行的进程,文件列表和内存统计。它就像伽利略的任务管理器。您只需打开网络浏览器并输入http:// 即可

 

 

打开网络共享

Galileo 上的 Windows 有 ac$ 份额。您将获得一个远程文件系统。连接参数如下:
用户名:mygalileo\Administrator
密码:admin

 

您可以在文件资源管理器中键入\\mygalileo\c$以打开网络共享。

如果它无法识别用户名,那么您可以使用 IP 地址。

 

当我们设置电子板时,我们首先通过运行使 LED 闪烁的程序来测试它。这与运行你的 Hello world 程序是一样的。因此,让我们在 Galileo 上编写适用于 Windows 的 Hello World 应用程序。

  1. 将 LED 连接到引脚 13。它们具有极性,这意味着我们需要以正确的顺序连接它们。区分LED阴极和阳极的方法有很多种,我们可以通过多种方式仔细观察LED来分辨。

    较长的引线将是阴极,较短的是阳极。

    当我们从顶部检查 LED 时,我们会看到两个金属柱,两者中较小的是阳极,较大的是阴极

  2. 打开 Visual Studio 2013,依次转到文件、新建和项目,在模板下转到Visual C++,为 IoT 选择Windows,然后单击Galileo Wiring app

     

     
    newproject.png?auto=compress%2Cformat&w=740&h=555&fit=max
     

     

  3. 它基本上是一个 C++ 控制台应用程序,它引用了 Galileo SDK 以允许它与 Arduino 方面的事物对话。在 Main.cpp 中的项目下,您将找到所有代码。
  4. 它是默认的 Blink Sketch。该草图看起来与 Arduino 中的草图几乎相似,唯一的区别是将输出写入 stdOut 和调试器的 Log 方法。
     
    program.png?auto=compress%2Cformat&w=740&h=555&fit=max
     

     

  5. 通过单击“远程 Windows 调试器”或按 F5 来运行您的程序。对于第一次连接尝试,它将提示输入凭据。

    用户名:mygalileo\Administrator
    密码:admin

    现在您将看到 LED 闪烁,因此您已成功在 Windows on Galileo 上部署了您的第一个应用程序。

     

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'Windows物联网与英特尔伽利略开源硬件',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);