views:

596

answers:

13

I'd love to start writting managed code for external devices and sensors. Are there any devices that come to mind that can be coded against using .NET? Any suggestions?

Edit: The main thing I'm trying to do is learn how device programming works. No better way to do that in my opinion than to try to do something fun and cool.

+4  A: 

USB Missile Launcher

Jason W
WTF! I spilled my tea laughing. What's next, "USB Nuclear Reactor" ?
HeavyWave
+4  A: 

Two products that make it super easy to interface with external devices are Phidgets and the Serializer. Phidgets come with an easy .NET API and includes a variety of hardware and software sensors and controllers. For a lot of cool Phidgets projects, and .NET hardware projects in general, check out the Coding4Fun Blog.

The Serializer, on the other hand, is geared toward robotics but also comes with a great .NET API. For a demonstration of the Serializer, there is a great article in Robot Magazine Issue 19 by Clint Rutkas (one of the people in charge of Coding4Fun).

TinyCLR, on the other hand, provides three different devices in their FEZ (Freakin' Easy) series that can be programmed using the .NET framework and run independent of a PC to interface with sensors and devices.

kersny
+1  A: 

The list will be huge, I don't see any reason why a device could not be controlled by .NET. In a last resort solution using DllImport and direct IoControl calls to the device drivers will (assumed you know the interfaces) work well.

jdehaan
I think he is asking for ones with purely managed API's
BlueRaja - Danny Pflughoeft
This is true: I've written an entire industrial control system (a system using motors, robots, sensors, cameras, valves) using C# and the System.IO.Ports.SerialPort class.
codekaizen
+9  A: 

Microsoft Robotics

Coding4Fun: Blog & Developer Kit

Walter
Students can get the Robotics Developer Studio on http://dreamspark.com
Chris Ridenour
@Chris - Great call!
Walter
Great with the Lego NXT
TWith2Sugars
+1  A: 

You should look at the Arduino or some variant - it can interface with the USB port, and the controller itself is programmed in a C-style language.

You can then interface with (basically) any sensor/device/tool you want, and you can write code in any language that can interface with the USB.

Wayne Werner
I'd say this is the best answer to the question. You are not going to find many, if any, embedded systems that can be programmed in .NET, but you will find plenty that can interface with a host computer running .NET.
rmeador
Yeah, I think (as Peter Forss pointed out) Mindstorms NXT is pretty much "it", as far as consumer grade stuff goes that can be programmed in .NET. Never used them, and at what, $200+ USD? I think the ~$30 Arduino might be a better choice if you're on a budget.
Wayne Werner
+15  A: 

Lego Mindstorms NXT

Peter Forss
I didn't know those could be programmed in .NET! Cool!
FrustratedWithFormsDesigner
I've got one and LOVE IT, I've also used it with the Robotics Studio: http://www.microsoft.com/robotics/
TWith2Sugars
+2  A: 

There are lots of Home Automation APIs for .Net.

BlueRaja - Danny Pflughoeft
+2  A: 

The Microsoft .NET Micro Framework --> http://www.microsoft.com/netmf/default.mspx

Scott Felder
+1  A: 

I had a lot of fun programming with the OCZ NIA. It is essentially EEG that allows you to use biofeedback in your software. I wrote some code that translates your alpha and beta brainwaves into MIDI and DMX for synthesizer and lighting control. The possibilities though are endless.

It uses USB HID which many devices use, so it was a good introduction. There is a handful of code over at http://code.google.com/p/nia-brew/, and you'll find the OCZ NIA forums very helpful in getting started.

Brad
That looks cool. Is there an API for the NIA?
FrustratedWithFormsDesigner
Not officially, but the code to the right of that page I sent you has all the code needed to get started. Specifically, NiaSharpReader has C# source you can use as a great jumping off point.
Brad
A: 

Arduino is one of the better ones out there I think.

arunabhdas
A: 

I know you said .Net, but the Arduino is a fun device to play around with. http://www.arduino.cc/

Amir Aliabadi
+10  A: 

The Netduino just came out, and it uses the .NET Micro Framework: --> http://www.netduino.com/

Pandincus
+4  A: 
Jared Harley