很酷的硬件/设备,可以在.NET中编程?
我很想开始写外部设备和传感器的托pipe代码。 是否有任何可以用.NET编码的设备? 有什么build议么?
编辑:我想要做的主要事情是学习设备编程如何工作。 在我看来,没有比这样做更好的办法,而不是尝试做一些有趣而酷的事情。
乐高头脑风暴NXT
Netduino刚出来,它使用.NET Micro Framework: – > http://www.netduino.com/
微软机器人
Coding4Fun: 博客和开发工具包
TinyCLR生成几个不同的板卡,支持.Net Micro Framework,最受欢迎的是Fez Domino :
FEZ(Freakin'Easy!)是运行Microsoft .NET Micro Framework的微型开源板。 这意味着,您可以使用C#编程语言在免费的Microsoft Visual C#express下更高效地编写代码。 将FEZ Domino连接到其中一个屏蔽或多个可用组件,即可在几分钟内构build您的下一个项目。 包括USB电缆。
包括FAT文件系统,线程,USB客户端,USB主机,UART,SPI,I2C,GPIO,PWM,ADC,DAC等等。
FEZ提供了Arduino,BASIC STAMP和其他许多function:
- 基于微软的.NET Micro Framework。
- 运行在72Mhz恩智浦ARM处理器上。
- 支持运行时debugging(断点,variables检查,步进等)
- 使用Visual C#2010 Express Edition进行开发。
- 高级function,如FAT,USB设备和USB主机。
- 轻松升级到硬件,如EMX 。
- 开源硬件devise文件。
- 使用现有的屏蔽和支架板。
- 基于USBizi芯片组 (适用于商业用途)。
- FEZ Mini是BS2引脚兼容额外的I / O。
- FEZ Domino是Arduino引脚兼容额外的I / O。
USB导弹发射器
Phidgets和Serializer是两款使其与外部设备非常容易连接的产品。 Phidgets带有一个简单的.NET API,包含各种硬件和软件传感器和控制器。 对于很多很酷的Phidgets项目,以及一般的.NET硬件项目,请查看Coding4Fun博客 。
串行器,另一方面,面向机器人,但也带有一个伟大的.NET API。 对于Serializer的演示,Clint Rutkas(Coding4Fun的负责人之一)在机器人杂志第19期中有一篇很棒的文章。
另一方面,TinyCLR在其FEZ(Freakin'Easy)系列中提供了三种不同的器件,可以使用.NET框架进行编程,并可以独立于PC运行,与传感器和器件进行接口连接。
你应该看一下Arduino或者其他一些变体 – 它可以和USB端口连接,而控制器本身则是用C语言编程的。
然后,您可以与(基本上)所需的任何传感器/设备/工具进行交互,并且可以使用任何可以与USB接口的语言编写代码。
有很多的.Net的家庭自动化API 。
Microsoft .NET Micro Framework – > http://www.microsoft.com/netmf/default.mspx
我和OCZ NIA有很多有趣的编程。 它本质上是EEG,允许您在软件中使用生物反馈。 我写了一些代码,将你的alpha和beta脑波转换成MIDI和DMX,用于合成器和照明控制。 可能性虽然是无止境的。
它使用许多设备使用的USB HID,所以这是一个很好的介绍。 在http://code.google.com/p/nia-brew/上有一些代码,你会发现OCZ NIA论坛对于入门很有帮助。
名单将是巨大的,我看不到为什么一个设备不能被.NET控制的任何理由。 在最后的解决scheme使用DllImport和直接IoControl调用设备驱动程序将(假设你知道接口)工作良好。
Tinkerforge
我还没有尝试,但我想做更多的硬件编程,我正在考虑使用Tinkerforge。
维基百科页面简短介绍(我强调) :
Tinkerforge是可堆叠微控制器构build块(砖块)的平台,可以控制不同的模块(Bricklets)。 构build模块的主要通信接口可以使用主扩展进行扩展。 硬件可以通过USB或Wifi连接在C,C ++,C#,Object Pascal,Java,PHP,Python,Ruby和VB.NET编写的外部程序控制,并在Windows,Linux和Mac OS X上运行。embedded式编程方法消除了传统embedded式软件开发(cfr Arduino)的典型要求和限制(开发工具,RAM的有限可用性和处理能力)。 Tinkerforge硬件和软件都是开源的,所有文件都托pipe在GitHub上。
据我所知,这比Arduino更高级。
我大概可以从使用Arduino中学到更多关于实际硬件编程的知识,但是我不想要/需要关于低级硬件编程的深入知识 – 我只是想用硬件来创build一些很酷的东西。
已经有另一个答案提到一个USB导弹启动器…但是,那里的代码已经超过六年了,我不能让它与我的模型一起工作。
所以我写了我自己的库(在.NET 4.0中): MissileSharp
对于任何感兴趣的人来说,完整的源代码在这里 。
这是我第一次尝试编写硬件设备的代码。
为了学习目的,我查看了另一个答案中链接的项目的代码,以及可以从供应商站点下载的“官方”控制软件的代码( 直接链接 – 源代码不是直接可用的,但是该软件是用.NET编写的,所以你可以用Reflector,ILSpy或类似的工具来查看代码)。
我使用HidLibrary将实际的命令发送到设备。
Arduino是我认为最好的之一。
我知道你说的。净,但是Arduino是一个有趣的设备玩。 http://www.arduino.cc/