当前位置:首页 > > 开发板
[导读]C#工程师的福音来了:Netduino 3 Wi-Fi是netduino的第三代产品,硬件开源。Netduino 3 Wi-Fi开发板使用STM32F427VI作为主控,同时使用TI CC3100作为网络接口,提供网络访问能力。

 物联网很火!

不管你关不关心,愿不愿意,物联网都在慢慢的改变我们的生活。今天的32位微控制器(MCU)已具备了足够的能力处理一些简单的任务包括实时级别的处理。像STM32类型的MCU,对于大部分的外设信息处理已游刃有余,所以在物联网的应用中,只要给他一个网络接口,物联网就不再只是概念,哪怕是作为菜鸟的你,也能第一时间感受物联网的魅力,体验物联网的神奇!

Netduino就是这样一款开发板,为MCU插上网络的翅膀,带你遨游物联网的世界!

Netduino 3 Wi-Fi是netduino的第三代产品,硬件开源。Netduino 3 Wi-Fi开发板使用STM32F427VI作为主控,同时使用TI CC3100作为网络接口,提供网络访问能力。

贸泽电子(Mouser Electronics)近日宣布,开始分销Netduino3电子平台,能够使商业硬件解决方案和个人电子项目快速上市,同时提供了最大的设计灵活性并降低了风险。

Netduino 3 Wi-Fi的产品包装没有包装盒,打开快递包裹,欣赏下来自遥远的MEMPHIS, TN的产品。


图1:开箱

什么叫环保,连包装盒都省了,算不算环保。打开外面的塑封袋,里面是一根Micro USB转USB Type A数据线,用来配置及调试开发板。加上防静电袋封得严严实实的Netduino 3 Wi-Fi开发板。


图2:防静电包装

拆拆拆,打开防静电包装袋,Netduino 3 Wi-Fi终于出现了。


图3:netduino 3 Wi-Fi

整体黑色的PCB板,配上蓝色的Arduino兼容接口及GoBUS接口,整体感觉不错,至于GoBUS是什么,后面会简单科普一下,先不管它。除了板子及USB数据线,还附送一根GoBUS连接线,用来连接GoBUS外围设备。

Netduino 3 Wi-Fi开发板尺寸虽小(3.3”X 2.1”),还是提供了一些基本的外设,主要的几个部件包括:STM32F427VI MCU,TI CC3100无线模块,一个Micro SD卡槽以及Arduino UNO R3兼容接口,还有三个LED指示灯,用来指示开发板的不同状态。


图4:netduino 3 Wi-Fi主要资源

供电接口两个,一个是标准的DC接口,物理规格为5.25/4.7mm,内正外负,可以使用外部7.5-12 VDC给开发板供电。另外还可以使用Micro USB接口来给开发板供电,经电压调节器调节后可以输出标准5V/3.3V输出。每个引脚提供的最大电流约25mA,但整体电流值不能超过125mA。Micro USB接口除了可以给开发板供电外,还可以用来配置开发板及作软件调试之用。


图5:DC及USB

TI CC3100模块用来提供无线网络连接功能,支持802.11b/g/n无线网络,使用2.4Ghz频段,最高可以支持300Mb的接入速度。模块支持流行的网络安全标准如WEP及WPA2等;除此之外,还支持SSL 3.0及TLS 1.2的加密功能。而网络协议栈则是Netduino.IP hybrid,这是一个混合网络协议栈。


图6:TI CC3100无线模块

Arduino UNO R3兼容接口提供了与Arduino兼容的接口,然此接口非彼接口,因为低层使用的是STM32F427VI MCU,所以这些接口实际上是连接到STM32 MCU的相关引脚,具体情况请参阅STM32F427VI数据手册。虽然底层的实际情况不同,但只要是兼容的外设或扩展板,都能在软件的支持下,实现真正意义上的兼容。

STM32F427VI作为开发板的实际控制者,用来执行用户设定的各种指令序列。这是一款高性能的MCU,基于Cortex-M4内核,最高主频达168Mhz,内置FLASH/SRAM存储容量分别为1408KB/164+KB。处理能力强劲,内存容量也足够大,加上还支持单精度浮点运算,对于一般应用应是得心应手。


图7:STM32F427VI MCU

不过略为不足的是SD卡的容量,按照官方的说明,最大只支持2GB的容量。

GoBUS是什么?引用一段官方的原话:

You asked for a Netduino with more speed, more flash, and more RAM.

You asked for a Netduino with more GPIOs, more serial ports, more analog inputs, and more PWMs.

……

Today, we introduce a Netduino with more speed, flash, and RAM. And a Netduino with support for more GPIOs, serial ports, analog inputs, and PWMs. And today, we introduce a plug-and-play Netduino.

Best of all, these are all the same board.[!--empirenews.page--]

说白了,这是一种新的接口,给你更多的扩展接口,更快的速度,当然,前提条件是你的设备得符合go的要求!官方已提供了部分外设供选用。下面是一个使用GoBUS设备的效果图


图8:Go设备及连接

单从硬件方面来说,netduino 3 Wi-Fi算是配置非常合理。但它另一个有趣的地方是它的软件开发环境,这是一款基于.net平台的开发板!

说它有趣,是因为在嵌入式领域,差不多一直都是C的天地,C++有,但亦不多,这下C#程序员是不是要欢呼了!终于赶上了嵌入式的春天?当然还有Visual Studio这个最优秀的IDE。

都说喜欢一个东西不需要理由,但排斥一个东西则必定有它的理由。至少对我来说是这样子,Arduino是一个好东西,但它那个IDE实在太复古!

没错,netduino使用的平台就是.net,IDE就是Visual Studio。这对于C#工程师来说真是得心应手。所以在我们正式体验netduino 3 Wi-Fi之前,先来准备必要的开发环境。

首先安装Visual Studio,从微软的官方下载软件,推荐下载免费好用的社区版。虽然官方推荐的是Visual Studio 2013,咱还是喜欢用比较新的产品,下个VS2015吧,然后安装,next, next…。


图9:安装Visual Studio 2015社区版

接下来要安装.Net Micro Framework框架。开发人员可以在低功耗,低成本的ARM7,Cortex-M3及ARM9和Blackfin处理器上使用该框架(不需要MMU),所开发出来的软件仅需要几百Kbytes的RAM或Flash/ROM的存储空间。.NET Micro Framework技术可以应用到Windows Vista Sideshow、远程控制、智能家电、医疗电子、零售终端以及汽车电子等行业应用场景。因为.Net Micro Framework功能强大,并且能从C#.Net的PC开发快速进入,它几乎适用于所有嵌入式场合。支持.Net Micro Framework的产品成本。从http://netmf.codeplex.com/下载最新的软件,当前版本是V4.4。


图10:安装.NET Micro Framework

接下来要安装的.Net MF plug-in,这是一款插件,用来管理.Net MF。

最后要安装的就是netduino的SDK程序包了,这是netduino的底层封装,用于支持netduino系列硬件。


图11:安装Netduino SDK

这些都安装好后,实际连同netduino的硬件驱动也安装好了。现在可以上电,看看都有些什么好玩的东西。

使用附带的USB线连接开发板和netduino 3 Wi-Fi。因为可以使用USB接口给开发板上电,所以这时候开发板实际已经开始工作了。

不过这里有几点要注意的地方,一是要确认硬件驱动已安装并工作正常,因为接下来的体验就是编程及调试了。另外一个问题是如果在WINDOWS 10下开发的话,还要安装.net 3.5 sp1这个补丁包,否则在后面编程代码的时候通不过。笔者在这个上面折腾了很久,最后也是在官方论坛上爬文才找到的答案,现在免费将经验传授给你,不谢!

打开PC的设备管理器,确认netduino设备的存在。


图12:Netduino设备驱动

如果没有问题了,接下来就是写个简单的程序测试下。

启动Visual Studio,先new一个工程,按如下设置


图13:新建工程文件

待工程生成以后,打开项目管理器里的program.cs文件,这就是程序的代码文件了,先添加一点简单的逻辑,实现LED灯的闪烁功能,顺带体验一下netduino的开发流程。

在program.cs里添加代码,修改后完整的源文件内容如下

namespace NetduinoLED

{

public class Program

{

public static void Main()

{

// write your code here

OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);

while (true)

{

led.Write(true);

Thread.Sleep(500);

led.Write(false);

Thread.Sleep(500);

}

}

}

}[!--empirenews.page--]

上面的代码很简单,和使用其它编程工具如MDK相比较而言,可以看出逻辑基本是一样的,设定一个GPIO端口,然后反复写入0和1,实现LED灯的闪烁。

现在来将代码写入到netduino 3 Wi-Fi开发板,看它会不会动。先设置工程的属性,使得可以正确将代码下载到开发板。打开工程文件的属性对话框,作如下设置


图14:配置工程文件

如果设置无误,就可以开始下载代码到开发板了。点击IDE工具栏上的Start按钮,就会编译代码并将它下载到开发板,稍微等几秒后,应该可以看到开发板上的LED灯开始了。

作为一款Wi-Fi开发板,怎能少得了网络功能的体验呢?接下来,咱们体验一下网络应用,建立一个小小的Web服务器,然后通过网络来控制板载的LED灯的亮和灭。仍然按照前面介绍的方面,建立一个新的工程WebServer,设定相关的参数。在Program.cs文件中添加如下代码

public class Program

{

public static void Main()

{

// write your code here

OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);

int port = 80;

Thread.Sleep(8000);

Microsoft.SPOT.Net.NetworkInformation.NetworkInterface

networkInterface =

Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.

GetAllNetworkInterfaces()[0];

Debug.Print("my ip address: " + networkInterface.IPAddress.ToString());

Socket listenerSocket = new Socket(AddressFamily.InterNetwork,

SocketType.Stream,

ProtocolType.Tcp);

IPEndPoint listenerEndPoint = new IPEndPoint(IPAddress.Any, port);

Debug.Print("setting up socket");

listenerSocket.Bind(listenerEndPoint);

listenerSocket.Listen(1);

Debug.Print("listening");

while (true)

{

Debug.Print(".");

Socket clientSocket = listenerSocket.Accept();

bool dataReady = clientSocket.Poll(5000000, SelectMode.SelectRead);

if (dataReady && clientSocket.Available > 0)

{

byte[] buffer = new byte[clientSocket.Available];

int bytesRead = clientSocket.Receive(buffer);

string request =

new string(System.Text.Encoding.UTF8.GetChars(buffer));

Debug.Print(request);

if (request.IndexOf("ON") >= 0)

{

led.Write(true);

}

else if (request.IndexOf("OFF") >= 0)

{

led.Write(false);

}

string statusText = "LED is " + (led.Read() ? "ON" : "OFF") + ".";

string response =

"HTTP/1.1 200 OK\r\n" +

"Content-Type: text/html; charset=utf-8\r\n\r\n" +

"" +

"" + statusText + "";

clientSocket.Send(System.Text.Encoding.UTF8.GetBytes(response));

}

clientSocket.Close();

}

}

}[!--empirenews.page--]

这是一段简单的基于Socket通信的代码,服务器监听80端口,等待用户请求,根据请求的内容决定打开还是关闭板载的LED灯。嗯,这已经具备了物联网的基本特征,通过网络通信来采集或控制远程传感器的数据。

不过你也许会有疑惑,TI CC3100模块是如何连接到我的路由器并获取相应的IP地址的呢?问得好,确实咱们还有一个重要的步骤没有介绍,就是配置无线访问的参数。netduino 3 Wi-Fi的网络配置专门有一个程序来负责,这是一个独立的程序,包含在.Net Micro Framework中,打开Windows的开始菜单,在.Net Micro Framework程序组下有一个叫作.Net Micro Framework Deplay Tool的程序项,打开这个程序,在Device选项的下拉列表里面选择“USB”,会出现一个Netduino3_Netduino设备,然后点击Target菜单里面的connect命令,连接netduino设备。然后打开Target菜单下的Configuration/Network选项,会弹出一个对话框,


图15:配置网络

按上图中的参数进行设置,注意用你自己的路由器SSID及密码替换上图中的Pass phrase及SSID参数,然后点击update按钮,这样对网络的配置就算完成了。

需要注意的,在配置好网络参数之后,这些配置不会立即生效,需要等你下载代码到开发板或重新上电后,这些配置才会生效。另外目前暂不提供通过代码来配置网络参数,不过官方论坛已放出消息,正在完善这一功能,相信不久就可以实现在代码中配置网络的功能。

接下来就可以体验网络功能了,下载代码到开发板,注意Visual Studio中Output窗口的输出信息,大致如下

The thread '' (0x2) has exited with code 0 (0x0).

The thread '' (0x4) has exited with code 0 (0x0).

my ip address: 192.168.2.102

setting up socket

listening

表明TI CC3100已正确获取到IP地址,并且打开了一个监听窗口。现在打开浏览器,在地址栏内输入http://192.168.2.102/ON,然后回车,浏览器给出”LED is ON.”的信息,同时开发板的LED灯点亮。相应的,在地址栏内输入http://192.168.2.102/OFF,然后回车,出现如下信息,同时开发板上的LED灯会熄灭。


图16:WEB版远程控制

当然,更多更有创意的应用,将随着你对netduino 3 Wi-Fi的熟悉而逐渐浮现。现在,你与物联网大牛仅仅只有一步之遥!

netduino 3 Wi-Fi开发板为你打开了物联网探索与应用之门!板载STM32F427 MCU,最高168Mhz的运行频率及较大的内存组合使得开发物联网应用不必担心硬件资源的不足,加上TI CC3100模块,网络访问时不必添加三方网络模块,即刻体验网络控制与采集信息的便利,一句话,STM32F427+TI CC3100可谓黄金组合。另外不得不提一下GoBUS,单从设计理念来看,无疑是一个非常实用的功能,硬件扩展从此变得更加容易,不仅仅是物理连接更容易,软件开发也变得更轻松。

软件方面使用.Net平台,可以使用所有支持.Net平台的语言如C#、VB进行程序开发,至于底层的细节,无需关心。而你,只需要关注程序的功能及逻辑,一切都尽在掌握!在这里,你不会看到一般MCU开发中的一些繁琐操作,如时钟树的配置,底层的中断等硬件细节;你也无需考虑是否要采用RTOS来简化程序逻辑,甚至RTOS的移植等!这一点上与Arduino甚为相似,只不过相对Arduino的简单处理,.Net更是一个完善的平台。

略为美中不足的是TI CC3100,根据官方的说法:

The CC3100 module can handle 8 simultaneous unsecure sockets plus 2 simultaneous secure sockets.

参考资源:

Netduino官网

.Net开源官网

GoBUS参考

 

本文系21ic原创,未经许可禁止转载

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭