Jaa


Hello Morse Code; Hello .NET Micro Framework.

讲师照片 

张欣 -微软Windows Mobile MVP 多年以来一直从事与微软平台下的项目开发,对于.NET平台、数据库、多层架构设计有着丰富经验,参与并主导过多个大型应用系统的架构设计以及研发、实施工作。目前致力于Windows Mobile的应用开发以及Windows Mobile的自动化测试方面的研究工作。 2005年以来一直担任MSDN Webcast讲师进行Windows Mobile开发方面的 Webcast。同时,也分别在Tech ED 2005、Tech ED 2006、MEDC 2006、MEDC2007大会上进行有关Windows Mobile开发的课程。

原文地址: https://mobileside.cn/blogs/breakstring/archive/2007/10/06/MorseCodeOnDotNETMF.aspx
 

    2007年9月18日,微软中国和CSIP一起召开了".NET Micro Framework 2007技术大会"。我有幸参加此次盛会并且得到了一块Digi公司的开发板得以一窥.NET MF。

什么是.NET Micro Framework?

    .NET Micro Framework是微软公司基于.NET平台,主要针对硬件资源非常稀少、有限的嵌入式应用而设计的快速嵌入式开发技术。.NET Micro Framework针对传统的SOC、MCU市场设计,可以运行在ARM7/ARM9之上,对于低端的ARM7处理器,可以不具备存储器管理单元(MMU),而存储器方面更是只要300KB左右的容量即可运作。特别适合Windows Vista Sideshow、远程控制、智能家电、医疗电子、零售终端以及汽车电子等行业应用场景。并且用户使用统一的Visual Studio .NET平台和托管代码(C#)开发产品应用,包括设备驱动!显著的降低了厂商开发门槛,节约了大量开发时间和开发成本。掌握.NET Micro Framework技术,是生产嵌入式设备的硬件厂商在硬件环境飞速发展时代的必需之选。

更多关于.NET MF的信息请参加微软官方页面: https://msdn2.microsoft.com/en-us/embedded/bb267253.aspx

什么是Morse Code?

Morse Code就是摩尔斯码,1844年由美国人摩尔斯发明。它主要使用一些短促的信号和稍微长一点的信号来构成信息。赫赫,在电影中你经常会看到那些老式的发报机发出“滴滴答答”的声音来,那就是摩尔斯码。很可惜,由于通信技术的发展,现在貌似已经停止使用了。关于更多Morse Code的知识,您可以在网上找到很多信息在此就不多说了。

初始.NET MF之Digi开发板

话又回到前边说的我拿到了一块Digi的开发板上,让我们来看看它的样子吧。除了包装盒内其他的光盘/网线/电源等等,Digi的开发板主要由以下两个部件组成:
首先就是开发板本身了,如下图所示:
 

其次就是最重要的Connect ME模块:


将模块插到板子上后如下图所示:

更多关于Digi的开发板的资料,您可以到本网站的文件下载栏目里面看到。

初始.NET MF之体验篇

依次安装完VS2005、.NET MF 2.0 SDK以及Digi的开发板Jump Start Disk之后。您可以在C:\Program Files\Digi\Digi JumpStart for Microsoft .NET Micro Framework\Samples 找到几个Digi公司做好的Demo程序。现在让我们打开BlinkLEDs目录下的程序看看。该程序是一个很简单的例子,用来控制开发板上的3个LED等依次闪烁。在项目中,Digi公司已经做好了几个重要的类(LED,BlinkLED等等)用来帮助您控制LED灯的状态。要想运行此程序,请按以下步骤:

1. 将Connect ME模块接上开发板,通过网线将Connect ME模块和您的电脑连接到同一个Hub上。注意,由于MFDeploy工具的Bug,您的电脑不能同时有多个网络连接,如果您的电脑同时有多个网络连接,例如无线,请先暂时禁用掉其他的连接。只留下一个用来和开发板通讯的网络连接。

2. 将开发板接通电源,打开MFDeploy工具(在.NET MF SDK和Digi Jump Start里面都会安装)。选择TCP/IP连接方式,它会自动找到当前网络上的支持.NET MF的设备的IP地址。当然,您会发现该工具还支持USB和串口。但是很遗憾,Digi的板子不支持USB;至于串口我的笔记本不支持,所以无法测试。然后点击MFDeploy上的“ping”按钮,您会发现下面输出“Pinging... TinyCLR”字样,说明连接正常。如下图所示:

3.在VS2005中,刚才打开的工程的属性里面设置.NET Micro Framework的部署方式为TCP/IP,同时地址设置为刚才MFDeploy工具中找到的地址:

4.保存工程,然后按下F5运行程序,程序会自动编译并且部署到Connect ME上运行。然后您就会看到开发板上有三个LED等依次闪烁。

看看工程里面的代码,很简单不是么? :)
BlinkingLed led0 = new BlinkingLed((Cpu.Pin)0, false);  //实例化一个LED灯
然后调用其Blink方法就行了。

在这里我需要提示一下大家,开发板上有5个LED灯,但是Demo代码中只有3个。如果想用上另外两个,需要用以下代码初始化:
            BlinkingLed led3 = new BlinkingLed((Cpu.Pin)5, true);
            BlinkingLed led4 = new BlinkingLed((Cpu.Pin)6, true);
因为这两个LED灯对应的CPU的Pin是5号和6号,而不是依次的3和4。

在开发板上还有5个GPIO接口可以使用,可惜俺的硬件功底太差,否则自己动手给它加上个开关或者步进电机之类的作个小车也挺好玩。咱就不奢望那么多了,就利用现有的LED灯吧。这就用到了前边提到过的摩尔斯码。。。。。

摩尔斯码只不过是利用长短两种信号来表示信息,所以,我们完全可以使用它的LED灯来显示摩尔斯码。我将代码作了修改,增加了摩尔斯码的转换功能,让它通过一个LED显示"Hello Morse Code; Hello .NET Micro Framework."。具体代码我这里就不贴出来了,代码您可以从这里下载,然后让它显示您所想显示的内容。

最后再提示一个MFDeploy的功能,当您想要把设备上的程序删除掉的话,请点击“Erase”按钮,然后就会提示您一些信息,确定后即可删除设备上的您的程序:

 

通过这次演练,您会发现编写嵌入式程序也会如此的简单。不是么,赫赫,至少熟悉的C#在眼前是那么的亲切,不用去复习那些早都还给老师多少年的汇编了。。。。。。汗。。。惭愧惭愧。。。。。。
也许不久的将来,您就会发现很多使用.NET MF开发的嵌入式的产品,例如智能家电系统,工业控制系统以及Vista的SideShow设备。

Comments