.Net On Lego Mindstorm
troop23 writes "A blog posting by Benjamin J. J. Voigt says this "The University of Potsdam has a project to develop a .NET VM for the Lego Mindstorms system. Lego Mindstorms just got a higher priority on my shopping list!" While the thought of using .Net to program Lego Mindstorms may not be palatable, having a mainstream dev environment sure is." Perhaps Mono would work just as well.
Last I heard they had to axe some of their newer lines of products...they doing okay? I'd hate for my children to grow up in a world without Lego one day...
I don't get it. Why would they go with .NET rather than just writing a C/C++ compiler for it? We're talking about a low-speed embedded device here, a situation where the use of a VM is less than ideal.
Is it just because they want to make the front page of slashdot, or is there a real reason?
Disconnect and self-destruct, one bullet at a time.
A Java VM exists already. It's called leJOS.
http://www.usfirst.org The FIRST lego league might have use for this, but I doubt middle-schoolers would be interested...
BrickOS. It's faster and has many more features than NQC (a competing language) which uses the proprietary Lego firmware for the RCX.
BrickOS has its own firmware and supports threading and all the basic C/C++ functionality.
See:
http://brickos.sourceforge.net/
Bah. My LEGO Mindstorms robot + Vision Command camera beats everything when I use Perl and PHP to allow people to drive it around my room from across the world. A link to this robot's interface would mean doom to my connection so I'm keeping it under covers ;)
.Net for an embedded uC? No more appropriate than Java would be.
C, or assembler, or Forth.
-- John.
There already is a C compiler (well, its very close to real C) its called NQC (Not Quite C). You can buy a book about it. Google yields this as its site. http://bricxcc.sourceforge.net/nqc/
Clones are people two.
of that blue brick fo death!
Still trying to catch up ... to Java, huh? This stuff has been around for Java for years now.
Which wouldn't be surprising since Java was released in 1996, while .NET was released in 2002. You could've said the same thing when Java was first implemented on an embedded device. C/C++ and assembly were likely there for years before.
Evil robots with minds built by the Microsoft corporation all over the world.
I, for one, welcome our new Microsoft powered robotic overlords.
NQC (Not Quite C) is compiled to Lego bytecodes. BrickOS programs are compiled to H8 with gcc. There are also Forth and Java environments.
Given the range of options available (for *nixen, Windows, Mac...) I'd have to say in this case "mainstream" must mean "Microsoft".
Chernobyl 'not a wildlife haven' - BBC News
Great now you'll have to include 60 MB of IDL code to run any program. Where do these ideas come from? Who would think to port a bloated server app development API to a portable device. .NET is loved by managers who think they can dumb down their server side code so any H1-B can do it, that's about it. Nobody even uses .NET for desktop apps, so where'd the idiotic idea that it would take off in a portable environment come from. The main reason I refuse to use .NET for desktop apps is the 60 MB IDL needs to be included, better to VB 6 or anything else for that matter.
M
Please elaborate why it would be a negative to provide the very robust .NET Framekwork to Lego Mindstorms.
I love how the editorial commentary on posts here is full of straw-men and assertions. Prav-dot anyone?
GetTheJob.com : Nothing but Real Jobs.
Man what's with the bias against .NET. Oh it's not "worthy" of controlling Lego Mindstorms?
OH NOS! OMGZ, I R NOT HAX0RING MY LEGOS NLESS ITZ IN ASS3MBL3R. .NET BAD K PLZ THX! D0WN WIT MICRO$OFT!!!!111!1!
Seems to me .NET is a good idea, so good in fact it's ripped off by Mono. A solid intelligable foundation library of objects, inter language, cross platform compatability. C# is a very enjoyable language to work in for some of us (personal preference). There's always the /.'ers with monkeys on their backs that insist its one huge elaborate Microsoft bait and switch to lock everyone into the Microsoft Evil Empire, but it seems to me theres a ton of positives as well, ECMA standardization, dozens of .NET capable languages now, and the MONO project is a great thing (that is a direct result, like it or not, of .NET being born). So whats with all this "oh nos, its Microsoft, so I shall not dirty my hands of complimenting it! Must bash in every post ever!".
Open your minds like you open your source and you might learn something, like some tools are good for some jobs, other tools for other jobs. Not everything that comes from MS is evil and not everything that comes from OSS is good.
Flame away.
I'm Rick James with mod points biatch!
Perhaps Mono would work just as well.
'Mono' and '.NET' are not two competing products.
Mono is an implementation of it, together with some development tools and non-standard libs and bits and pieces.
The MS
You cannot 'use Mono instead of
This has been a public service announcement from the department of Things That The Average Slashdotter Cannot 'Get' No Matter How Often They Are Mentioned (TTTASC'G'NMHOTAM). In next week's exciting episode, we explain the difference between copyright violation and theft, and three posters reply by saying 'you can dress it up in fancy talk all you want but it's still theft!'
Whence? Hence. Whither? Thither.
Styx-on-a-brick is really cool and fits directly into the Unix way of doing things:And then you can easily connect it an Inferno Grid: http://www.vitanuova.com/solutions/grid/demogrid.
Why use a bad Java clone(that is what
uriel
P.S.: And yes, for those still living under a rock, Both Inferno and Plan 9 are Open Source. Inferno: http://www.vitanuova.com/inferno/net_download4T.h
P.P.S.: For those that don't know what Inferno is and to bypass SlashDot filters here is some text from Dennis M. Ritchie himself: Limbo is a programming language intended for applications running distributed systems on small computers. It supports modular programming, strong type checking at compile- and run-time, interprocess communication over typed channels, automatic garbage collection, and simple abstract data types.
And here is an extract from an interview with Ken God Thompson, creator of Unix and co-inventor of C:
Computer: How does your work on Plan 9 and Inferno derive from your earlier work on Unix? What are some of the new ideas arising out of this work that could and should apply to distributed operating systems in general?
Thompson: [...] In Plan 9 and Inferno, the key ideas are the protocol for communicating between components and the simplification and extension of particular concepts. In Plan 9, the key abstraction is the file system any thing you can read and write and select by names in a hierarchy and the protocol exports that abstraction to remote channels to enable distribution. Inferno works similarly, but it has a layer of language interaction above it through the Limbo language interface which is [somewhat] like Java, but cleaner.
"When in doubt, use brute force." Ken Thompson
Maybe you're not talking about the same thing that .NET detractors dislike. It might not be the .NET itself, but rather the unwillingness to throw any additional support towards the already-unmanageable 800 pound gorilla. Maybe it isn't the OSS software people really like, but rather the freedom that they have to deal with what they don't like.
Lesson for Slashdot readers in filtering the subtle troll:
Either you really don't understand the people you're talking about, or you're just an astroturfer. Discrediting your post only requires a little good discussion. The suggestion "flame away" that you are inviting people to flame you in response doesn't mean that every response is a flame. Just because you get flames does not mean your opinion holds water. It only means you have failed to reach an audience capable of responding with meaningful criticism. Inviting flames is tantamount to a request for people to pollute any discussion or criticism that may follow. You post your crap in bad faith that it can stand up to open discussion. You are a troll.
--- Nothing clever here: move along now...
I did a lot of lego design for a robotics competition I competed in last year. While legos are great because they are so easy to use, I can't stand using them for anything even slightly large in scale because of what I have dubbed "The Lego Design Flaw." Basically, there is a 6:5 ratio of height to width on legos which makes construction and reinforcement much, much more difficult than it needs to be when working in the full 3 dimensions that the Lego Technic allows one to work in.
Double-plus good Bill.
Stick Men
There's a Ruby interface for Lego Mindstorms here:
http://rubyforge.org/projects/lego-mindstorms/
It used to be that Lego was about the most interactive toy/game available. Build and break stuff and make it work.
These days there are far more stimulating interactive alternatives (computer games etc). Given the choice between an XBox and a Mindstorms set, most kids will choose the XBox. Lego's core biz is suffering in this competition for toy/entertainment dollars. Perhaps this is a reason for them shifting towards the theme toys (harry potter etc).
Is this a sad predictor of the fate of geekdom?
Engineering is the art of compromise.
I find it really stupid that people on here are saying stuff like "Why use .NET when this has already been done with C | C++ | Java". People who program on a regular basis tend to use a specific language(s) more often than not. It'd be like saying "Why speak English when French | German | Japanese is better?". I spend most of my time writing things in C# and PHP, I don't want to learn C++ or Java to write programs for fricken legos. And for everyone who calls .NET a Java clone, it may be, but just because it wasen't first, doesn't mean it's not better. JSP anyone?
Nice to have a mainstream dev environment? LeJOS is a Java VM for the brick and will let you run Java programs on it - and it's been around for a long time now (I've been using it for a couple of years). Seeing some of the things people have done with it is impressive - a Rubiks cube solver, vision systems using RPC stand out.
Live by the Psi
While mindstorm is cool, but i'm kind of disappointed to see how underpowered the motors are. If only they'd have some kind of "adult" mindstorm sets where you can build you own remote controlled helicopter out of legos.. wow, that'd be so darned cool.
Of course I doubt usual lego blocks would do though, too heavy to fly, but there's the idea. I'm sure many parents still have a secret longing for the toys they played in their childhood.
Guys never grow out of their toys! =)
Online backup with Mozy, sounds like Ozzie, but more!
LEGO + .NET = lego-helper.
You will start building something when out of nowhere some lego pieces shaped like a paper clip start talking and say: "It looks like you are building a car..."