65.9K
CodeProject 正在变化。 阅读更多。
Home

嵌入式编程 – Netduino 入门

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.60/5 (5投票s)

2015年1月20日

CPOL

7分钟阅读

viewsIcon

17479

嵌入式编程 – Netduino 入门

我一直对业余电子产品很感兴趣,从小就喜欢拆解东西,只为了看看它们是如何工作的。20世纪90年代初,BASIC Stamp处理器开始面向电子爱好者。自2005年以来,又增加了一些处理器,提供了更广泛的选择。如今,两个有趣的选择包括ArduinoNetduino平台。本文将介绍Netduino开发平台的入门基础知识。

对于本入门指南,假设用户对使用.NET Framework和C#进行编程有基本的了解。提供的代码示例基于Netduino Plus平台。如果您使用的是标准Netduino,大部分代码应该仍然有效;但是,项目引用略有不同。如果您使用的是Netduino Mini,部分代码将无法工作,因为我将使用板载LED,而mini没有配备板载LED。但是,如果您正在使用mini,很可能您已经超越了入门级别(提示:如果您尚未购买开发板,我建议选择Netduino Plus,因为它具有额外的功能)。

设置

Netduino网站上提供了一份优秀的入门指南,我将在此总结一下步骤。

首先,您可能需要下载一些项目

  1. Visual Studio 2010 (C# Express Edition)
  2. .NET微框架软件开发套件 (SDK)
  3. Netduino SDK,32位64位版本

更新日期:2012年2月25日 – 虚拟环境

我更喜欢在虚拟机/工作站 (VM) 上进行编程,并且在VM上工作是可行的(至少对于VMware workstation 8,我还没有尝试过其他版本)。要开始使用,只需按照VM上的说明进行操作即可。对于主机,您只需要安装Netduino SDK以定位到相应的平台:32位或64位。64位主机和32位VM之间没有问题。

如果您已安装Visual Studio 2010 (VS2010),则可以跳过此步骤。如果未安装或您的版本不包含C#,则必须下载免费版或购买其他版本。对于免费下载,请确保您已下载C# Express版本。安装VS2010后,安装.NET微型SDK。最后,您可以安装Netduino SDK。如果您使用的是32位操作系统,请下载并安装32位版本的SDK;如果您使用的是64位操作系统,请下载并安装64位版本的SDK。

在启动VS2010之前,通过USB端口将Netduino连接到计算机,以便下载驱动程序。

驱动程序安装完成后,您可以启动VS2010并创建一个新项目。

我的第一个程序

现在所有必需的软件都已设置完毕,我们可以开始编写第一个程序了。我们的第一个应用程序将是嵌入式编程中的“Hello World”:LED闪烁。Netduino Plus和标准Netduino都带有板载LED。这将稍微简化事情,因为我们无需自己连接电路(这将在以后的教程中介绍)。同样,如果您有mini,则没有板载LED,因此您必须自己连接电路并相应地调整代码。

开始页,点击新建项目(或者从菜单中选择文件 -> 新建 -> 项目...)。

这将打开“新建项目”窗口。

项目位于“已安装的模板”下的Visual C# -> Micro Framework

根据您购买的Netduino开发板选择项目模板。对于其余说明,我将使用Netduino Plus。

Visual Studio将创建项目,添加引用,并创建默认的Program.cs文件。

查看解决方案中的引用,将有两个来自Secret Labs。由于我们选择了Netduino Plus,因此已添加对SecretLabs.NETMF.Hardware.NetduionPlus.dll的引用。如果您有不同的开发板,此引用将不同。如果您错误地选择了错误的项目模板或想要将项目移动到不同的开发板,请删除该引用并添加对相应平台的引用(标准版本为SecretLabs.NETMF.Hardware.Netduion.dll,mini版本为SecretLabs.NETMF.Hardware.NetduionMini.dll)。

查看创建的默认代码文件Program.cs,您可以看到已添加了许多引用

  1. 已添加对.NET微框架的using语句。重要的是要注意,这些与常规.NET解决方案中的不同。这些命名空间特定于微框架,与标准.NET库的丰富领域相比,微框架显得贫瘠。
  2. 包含对SPOT(智能个人对象技术)的using语句。这些DLL包含大多数嵌入式和硬件相关的类和接口。
  3. 已添加对Netduino特定实现的using语句。如前所述,这可能会因所使用的硬件而略有不同。
  4. 该模板包含一个主方法的存根。正如注释中所述,“在此处编写代码”。这对于(真正)小的项目或我们的第一个教程来说可能没问题,但最好将其理解为“在此处编写部分代码”。

现在我们需要更改一些解决方案属性。打开项目属性(双击解决方案资源管理器中的“Properties”文件夹)并切换到.NET Micro Framework选项卡。模拟器默认被选中,我们需要将其切换到Netduino设备。

在“传输”下,选择“USB”。

这将把设备设置更改为NetduinoPlus_NetduinoPlus(如果您有其他平台,这将反映当前连接到计算机的设备)

调整这些设置后,构建过程将通过USB端口将代码上传到Netduino开发板。

我们的第一个程序非常简单,以大约0.3 Hz的频率闪烁板载LED

  1. Main方法中,第15行,我们初始化了一个名为onboardLed的新输出端口。这个新方法接受两个参数:引脚ID和一个布尔值。
    在大多数情况下,端口与开发板上的编号端口之一相关;但是,在这种情况下,请使用板载LED。
    布尔值设置LED的初始状态,可以是开或关(true表示开;false表示关)。在代码中,LED最初设置为关(false)。
  2. 在第17行,创建一个循环。通常,嵌入式程序需要一个不退出的循环。循环内包含在系统供电时重复执行的代码。一个可能的例外是如果您围绕中断(或事件)设计了系统。在使用基于中断的系统时,可能不需要循环。
  3. 3. 第18-21行包含系统要完成的工作。
    在第18行,调用输出端口onboardLed上的write方法。write方法接受一个布尔参数,就像构造函数一样,true将向端口供电并打开LED,而false将切断LED电源并将其关闭。
    由于初始状态设置为关闭,请打开LED。
    在第19行,将当前线程(Main方法运行的线程)休眠1500毫秒(或1.5秒)。
    接下来在第20行,对onboardLed调用write方法,并使用false来关闭LED。
    在第21行,再次休眠当前线程1500毫秒。

     

LED将闪烁,直到断开电源或按下复位按钮(在Netduino Plus上标记为SW1)。如果重新供电或按下复位按钮,整个过程将重新开始:onboardLed以关闭状态初始化,进入循环,LED以大约0.3 Hz的频率闪烁。这很重要,因为如果您创建了任何变量,如果断电或按下复位按钮,所有信息都将丢失。

这篇初始文章到此结束。我的下一篇将包括代码优化。接下来,用户将把工作移出主方法,并为LED创建一个单独的类。

附加信息

© . All rights reserved.