.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/
Considering Mindstorms came out in 1999, they must have been damn low on your shopping list to start with...
.NET would be that much more appealing.
And anyway, within six months we could code on something approaching C on the thing; I don't see why
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 ;)
that they'll discover a security hole that lets people control the brick remotely.....
I own a pump action golf ball cannon. I made it myself.
.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.
I'd rather see someone getting parrot to run on it. =)
Why not use Lejos for Java?
of that blue brick fo death!
i use leJos..... very powerful.... you can play around with EVERYTHING....
I own a pump action golf ball cannon. I made it myself.
... to Java, huh? This stuff has been around for Java for years now.
-1, Offtopic
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
NQC is pretty slick. It made my little rover a heck of a lot smarter.
:-)
Of course I still got bored with it right away... but it sure was cool
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!
It's programmed 100% in C, is Bluetootha? enabled, etc.
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.
I thought I remembered reading that Lego discontinued the Mindstorm products along with a bunch of other stuff due to the company's financial problems.
:(
As much as I would like to put Mindstorms on my shopping list they've been crossed off of it for a while now
.NET is an implementation. CLR (Common Language Runtime) is the standard.
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.
Who cares about .nET when you can run Esterel on Lego Mindstorms? Seriously, let's see someone do some cool things with a language tailored for lego projects before porting language (Standards) for no reason. I term this project a BWOTE. Big waste of time and effort.
Often wrong but never in doubt.
I am Jack9.
Everyone knows me.
With a whopping 32kilobytes of memory, you'll have a hard time
porting mono to it...
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!
Buggy, full of holes and too much ram to run.
.NET is steeling or borrowing every single good project from the java community. for those who bitch about too many projects doing the same thing and that MS doesn't do that, think again.
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.
Sounds to me like you're making his point for him. Slashdotters hate .NET because it's from Microsoft ("...unwillingness to throw any additional support towards the already-unmanageable 800 pound gorilla..."), and rather than saying so, they spew absurd "technical" arguments which merely serve to prove that they are completely unfamiliar with .NET.
Discrediting his post may only require a little good discussion, but I note that rather than doing so, you chose to call him a troll and an astroturfer, and his argument "crap". Wow, as technical arguments go, that's +5, Insightful.
embadded jvms or MS net vms are not actually true all pure vms..
alot fo JIT compiler tricks nad scaling back fucntions make an embedded vm highly tunned for that environment but a pian inthe ass to write for..
Not the same pian you got from writing game smid 1980s in assembly for small memory machines but similar challenges no matter what VM technology you are writing to..
The only difference is that we somewhat better toools in IDEs and code analysis to help us along the way
Don't Tread on OpenSource
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..."
Slashdotters hate .NET because it's from Microsoft ("...unwillingness to throw any additional support towards the already-unmanageable 800 pound gorilla..."), and rather than saying so, they spew absurd "technical" arguments which merely serve to prove that they are completely unfamiliar with .NET.
.Net is probably a good framework, though I also think that from where I'm standing both the concept and most of the implementation looks like a straight ripoff of Java. I STILL won't use them unless forced by employers, because I dislike the proverbial 800 pound gorilla.
Ok then, here is one datapoint to support him. I think Windows from W2K and onwards are generally good operating systems. I think
The dislike goes back to around 1994 when I got my first PCs. I upgraded often in those days, and every time I had to pay for a new Windows 95 or 98 copy though I already had several legal copies. They also kept forcing things like IE down my throat though I wanted to use Netscape. They also killed off several companies and technologies I liked through methods I thought were unfair. For some reason, companies that try to treat me like their bitch though I have given them money pisses me off. They might be better these days, but I'm childish and carry very long grudges.
So, there you go. A Slashdot poster who admits being prejudiced against the company itself but admits the products are pretty good.
Being bitter is drinking poison and hoping someone else will die
Just write the VM in NQC. Should be a walk in the park :o)
http://www.ni.com/company/robolab.htm/ http://www.lego.com/eng/service/faqs.asp?section=C onsumerService-FAQ-TechSupport&catid=1E65DEDE-9A63 -4C69-9FE2-445BF90ABEC1&faqid=3280&tech=tr ue/
It usues LabVIEW instead though which for children I would think is a lot easier
When I was a kid in the early 90's, Nintendo was just as expensive as xbox is today, yet I still played with legos and enjoyed them. Why? Because my parents bought them, and encouraged me to use them at a young age. Maybe Lego's lack of sales should be attributed to the parents. When I was a kid, I could only play video games a few hours a day, which caused me to play with legos more.
Oh the joy of baseless assertions, straw-men arguments, and ad hominem attacks. I love this place. Someday, the people of Slashdotworld will realize the Microsoft wars ended years ago.
GetTheJob.com : Nothing but Real Jobs.
As those who did read the projects weblog might have noticed, they are currently not offering a VM.
.NET in the RCX, just not in a VM. The interpreter might be extended to become an VM, but as some have already pointed out, this doesn't make much sense.
There is an interpreter for the Hitachi microcontroller and a GCC IL frontend available. Thus you can run
42 cows on a 42km road on their way to 42.org
This has already been done with the use of java. I don't see the reason for using such a resource intensive system like .net for such a task like embedded systems like this.. The lego robots have already been done using java.
http://java.sun.com/developer/technicalArticles/Pr ogramming/robotics/
Linux is like a teepee. It has no windows, no gates, and there's an Apache inside.