From: "R. Hill" <t...@u.washington.edu>
Subject: Mindstorms Questions
Date: 2000/01/02
Message-ID: <Pine.A41.4.10.10001021549200.52482-100000@dante22.u.washington.edu>#1/1
X-Deja-AN: 567570435
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Complaints-To: he...@cac.washington.edu
X-Trace: nntp3.u.washington.edu 946857549 19904 (None) 140.142.17.37
Organization: University of Washington
Mime-Version: 1.0
Newsgroups: rec.toys.lego
NNTP-Posting-User: ttm

Hello Fellow LEGO people,

	I have a few questiond about the "Mindstorms" Robot sets. I saw an
aftermarket book about LEGO mindstorms robots over christmas, and I didn't
have the spare chash to get it. When I flipped through it, it looked like
you could create LEGO models and transfer instructions to them from your
computer (pc). I happen to be a C/C++ programmer, AI/robotics enthusiast,
and LEGO kind of guy, and this looks too cool for words. What set(s) do I
need to get started? How do you send the compiled LASM code from your
computer to the controll pack, via COM port, PCI bus card, or USB? 

	It looked like the controll language was a C/C++ or PASCAL
dirivative. Can you develop code in existing suites like BORLAND and MSVC,
or do you have to use an propritary dev suite?

	Any info would be appreciated. Thanks in advance.

Roger

From: mat...@mattdm.org (Matthew Miller)
Subject: Re: Mindstorms Questions
Date: 2000/01/03
Message-ID: <slrn8703dh.kaa.mattdm@jadzia.bu.edu>#1/1
X-Deja-AN: 567852930
References: <Pine.A41.4.10.10001021549200.52482-100000@dante22.u.washington.edu>
X-Complaints-To: ne...@bu.edu
X-Trace: news3.bu.edu 946867635 3831 128.197.20.189 (3 Jan 2000 02:47:15 GMT)
Organization: Boston University
User-Agent: slrn/0.9.6.2 (Linux)
Reply-To: mat...@mattdm.org
Newsgroups: rec.toys.lego

Hi Roger.

The basic Mindstorms kit comes with a smart brick (the "RCX"), some sensors
and motors, and a starting selection of technic parts. The software Lego
offers is REALLY poor, even for children, and as a programmer, you'll be
terribly disappointed. But there's hope: thanks to reverse engineering and a
lot of amazing work by really cool smart people, there are great alternative
tools. You'll want to check out <URL:http://www.crynwr.com/lego-robotics/>
for info on the reverse engineering project, and
<URL:http://www.lugnet.com/robotics/> for a lot of archived discussion.

I'd really recommend the O'Reilly book
<URL:http://www.oreilly.com/catalog/lmstorms/>, which is possibly what you
were looking through. It gives a great overview of the possible programming
environments.

In summary:

 - You can use the official "RCX Code" software to develop programs, but it
   doesn't have such basic concepts as variables and basic control
   structures, so you probably don't want to.

 - You can also use Visual Basic or any other MSWin programming language to
   talk to an OCX control which Lego provides. This works, but isn't ideal,
   since you're basically writing VB or C programs to spit out the ASM-like
   bytecodes -- so you're not really working in a high level language in
   terms of what's going on actually on the Lego brick. The advantage of
   this approach comes in if you want to have the PC do the complicated
   stuff and just use the RCX as a remote-control brick, but I personally
   find that less fun.

 - There's a C-like language called NQC. The compiler runs on Win32, MacOS,
   and Linux. It doesn't use Lego's OCX control, but DOES use the same
   firmware and bytecode that the official stuff does. This is my favorite
   solution -- you don't have quite the power of the options listed below,
   but I certainly haven't exhausted what can be done yet.

 - If you feel like learning/dealing with Forth, pbForth is pretty cool. It
   works as a replacement firmware, and gives you a lot more power than you
   could have with the official one, yet is far simpler to deal with than
   the most radical option:

 - LegOS is a complete raw replacement for the firmware, which basically
   lets you write programs that run on the RCX at hardware level. It's 
   my understanding that it's not actually an OS, but as suite of programs
   and libraries to make the job easier. I haven't worked with this much;
   others can tell you more.

And once you've got started with that, you'll want a bunch of technic lego
sets. I'd recommend staying away from the Mindstorms expansion sets --
they're a bad value. Instead, get as many technic sets (especially in the
more advanced 84xx series, which are generally more complicated than the
82xx ones) as you can afford/fit in your house.

-- 
Matthew Miller                      --->                  mat...@mattdm.org
Quotes 'R' Us                       --->             http://quotes-r-us.org/