May 30, 2006

Quiet, Holiday, Special Project

Sorry it's been so quiet here for the past few days... it's a holiday in the US (Memorial Day) and everyone has a 3-day weekend - mine has been spent painting a room and bathroom.

I've also picked up a special NXT writing project that's kept me busy - all my motors, sensors, and other parts are in use and I've got no time to play.

Just an FYI: I will be out of town June 3-11 with no internet access and no email. Hopefully Matthias and Brian will keep you occupied during that time. I'm not sure how they respond to dares, but you could try to provoke them :)


May 27, 2006

Closeups of the Education Bins

LEGO Education has posted some larger images of the storage bins. You can get a better idea of the types of bricks and beams. Plus there's the little LEGO man thrown into the mix.

Check it out here.

May 26, 2006

Line-Follower and code

Dave Astolfo, fellow MDPer, has posted some pictures and code for his Line-Follower... check it out here.

Another Screen-Capture video

I received an email asking if I could show how the wiring works when connecting blocks...

Well, it's very simple and I hope you're not disappointed - no fireworks or any special animation... you just click on a port/plug and drag to another... if the wire is colored (in this example, yellow) it means you've got a valid connection... a dashed line indicates a broken wire meaning you've incorrectly connected two plugs (for example, an output plug that puts out TEXT connected to a plug that is expecting an Integer).

It's another .EXE file... sorry, but that's how the software saves it... view it here.

May 25, 2006

LEGO is listening

Okay, I've got readers from LEGO corporate and LEGO Education that check in on the blog, so here's our chance to have an open discussion about the converter cable & legacy block subject. I'll also email my contacts to let them know they might want to look in on the discussion...

For starters, I want to provide some short statements from Lisbeth (in red, edited for length):

"... as of today, I have not heard anything about a retail version that will have the legacy blocks, nor has my immediate supervisor..."

"...we’re not trying to make people cancel pre-orders of retail sets so they’ll order from us. We may serve the hobbyist market, but by and large our primary market is educators. Lots and lots of schools have spent lots and lots of money creating LEGO Robotics labs, and we know that school budgets run the gamut from perpetually underfunded to usually underfunded. My understanding is that this is the biggest reason for the inclusion of the legacy blocks and converter cables in the education sets. Schools are much more likely to be purchasing 4 or 8 or 12 sets, as opposed to the average hobbyist... who is most likely only purchasing one set."

"... there’s no intent to scam anyone... we’ve designed the education versions to work better in the classroom than the retail version would. To protect the investments they’ve already made and to justify further expenditures on LEGO Education robotics, it’s important that educators have a transition plan – moving from the old sets to the new. Legacy blocks, converter cables, etc. help with this, and make the purchase of our set more appealing."

"All the little things – sorting trays, rechargeable batteries – those are all things that make using the LEGO Mindstorms in the classroom that much easier for the instructors (who all need all the help they can get, really, they’re asked to do so much in so little time with so much riding on their success). "

---- What I got from Lisbeth's email was that LEGO Education is focused on the needs of teachers and students -they make decisions about their product that are in the best interest of their specific customer(s). I don't think the two divisions met and talked about ways to make one product more appealing than the other... I think LEGO Education took what they saw being developed and went their own direction with it in terms of components and software to be included. Lisbeth has stated she has heard nothing on this subject when it comes to the retail version, but that doesn't necessarily mean bad news - it just means she doesn't know, so let's not read anything more into the statements than that. That said, I will continue to try and get an official statement from LEGO. And as I stated earlier, LEGO has shown they are serious about listening to the customer and I have no doubt they will listen to well-written and logical discussions on this subject.

I'm going to pull back on this one and let the comments/discussions go where they may (within limits). I will inform LEGO and LEGO Education about this post so they can check in if they so choose.

HELP documentation - legacy motor and sensor

I've taken a couple of screenshots of the HELP documentation provided with the NXT software. You'll notice the asterisk (*) added to the names of some of the items indicating a legacy item. article

I submitted an article to - it covers the Firmware update process as well as the brick control window (where you can see battery strength, change the brick default name, view programs and other files, etc.). Check it out here.

May 24, 2006

NXT jousting: temporarily on hold

Some MDP activities are preventing us from working on the Joust project right now. We're not stopping work on it, just putting it on hold for a few weeks.

May 23, 2006

NXT jousting: Early rider concepts

My thoughts on the rider are that we need to minimize pieces - mainly to have a larger selection of pieces for the mount. Some might argue for leaving the design of the rider open, but I think we should "lock in" some variables to make the game fair. I think the mount is where we should allow for creativity. Just my opinion.

In the first rider I'm including here, I've just put together some quick concepts of what a rider might look like. The claws I rarely have a use for, so I thought using them for legs might save some other beams for the mount. I used the main body (with head/eyes) for the 2nd rider... (I'm also including a photo of the exploded 2nd rider for view of all the required pieces).

The 2nd rider design uses more of the dark gray pieces, but it's still fairly light weight and does resemble a rider (maybe not...).

These are just ideas... not final designs. I'll be curious to see what Brian and/or Matthias come up with...

Intelligent Brick menu map

The Education NXT blog has posted a PDF file that contains the menu map for the NXT brick. Check it out here.

NXT jousting: the lance, viewed from aft

By popular demand, here's the lance, viewed from aft.

NXT jousting: a version of the lance with 15 holed head

As requested, here's a version of the lance with a 15 holed head and more stable connectors for comparison.
Personally, I think the 13 holed head version below more well-balanced - but that's just my subjective opinion.


NXT jousting: yet another lance


Regardless what the actual settings for NXT jousting will be in the end, no doubt a requisite to be provided by a every attending robot will be the lance.
As it is still subject of discussion if we will provide a (set of?) standard lance(s) to be used by anybody or just its dimensions, here's nevertheless my first draft for one (adding a buddy next to Jim's contribution to our armoury).

Matthias Paul

May 22, 2006

Philo's solution to NXT batteries

Take a visit over to Philo's website to see a set of instructions for building a power-supply insert for the NXT brick that uses an AC power adapter to provide power to your bots. Not for the everyone (especially those of us with not-so-great electronics skills), but a great start for the hacks and homebrew fans.

May 20, 2006

Entertaining NXT video - 7 minutes

The LEGO Education NXT blog has posted a fun video here.

You get a look at the containers they'll eventually be selling. There's also some really quick glimpses of the printed material, but it's hard to see details. I did notice some components in the Education version that I don't have in my retail version... not a big deal as I'm sure there are parts in my kit that won't be found in the Education version.

This brings up the question - do I buy the Education version or the Retail version? I think we can manage a good discussion here on this. A few weeks ago when I had a chance to meet with some fellow MDPers and Soren and Paal of LEGO, this issue did come up.

One thing we need to keep in mind is that the Retail version is designed for a single user (or small group of friends) that will experiment on their own. My opinion is that the RoboCenter is designed to give this user a good understanding of the basics of construction and programming. The RoboCenter is part of the Retail version and, when the 18 challenges are completed, the user can be confident in programming all the sensors and the motors, PLUS have some good techniques in their 'bag of tricks' that are demonstrated during the Challenge Build Instructions.

As for the Education version, the RoboCenter now becomes the Robo Educator. The Challenges are replaced with training that goes along with the Curriculum being developed for integrating the NXT with a classroom setting. I don't have all the details on the Robo Educator, but in my discussions with LEGO I came to understand that the Education NXT version is most definitely designed for a classroom and a planned curriculum.

The sensors count and parts count are also different between kits. The Education version comes with fewer building components, but does come with a few extra sensors that are included to complete the projects in the Robo Educator. The converter cables are included so an existing investment in RCX/RIS parts, motors, and sensors can be maximized. (The converter cables can be purchased separately for those with the Retail kit who would like to integrate the legacy sensors/motors with the newer kit.)

When talking with Soren, I came to understand that there are reasons for the differences between the Retail and Education versions - simply choosing to purchase the Education version because it comes with converter cables and a recharge battery is ignoring the major reason for having two different versions: one is for integration with a classroom and the other is for individual experimentation and the included software instruction is what defines the two.

Let the discussions/debates begin...


RaSPy papparazzo

NXT aficionados,

In response to some according requests I've created some additional glossy images of RaSPy, derived from the LDraw file.

Feel free to have a look.

Matthias Paul

May 19, 2006

Double-Secret Project... revealed

Brian, Matthias, and I are currently discussing constraints and standards for the creation of a NXT-based JOUST competition. It's so early in the project that we really don't have much to share... the earlier image I posted was my thought on the lance...

In order to make a game of JOUST fun for two or more competitors, the game needs to be fair in many regards - length/size of lance, limitations on size of bot, location of target areas, rail follower or point-and-shoot, rider with mount, or just mount, etc... all these things we're trying to figure out.

Stay tuned...

May 18, 2006

NXT Battlebots

No, it didn't start out that way, but give a bunch of overgrown kids some toys and, well... Steve Hassenplug and I both had remote controled vehicles at the recent House of Bricks event, and we mounted a camera on mine. Here's a short video clip (38 sec, 980K) of Steve's robot knocking mine over (with a camera on top and a narrow wheelbase, this happened a lot). The first part is from the standpoint of the spectators, while the second is the view from the robot as it falls over and the other robot "gloats" over its kill.

PS- yes, I'll do the sound better nxt time.

Brian Davis

Gastropoda robotica (The Slug)

Dear readers,

During some nights over the last weeks I've built a mobile robot that may be not completely white-bread, as its principle way of moving is neither leg nor wheel: The Slug.

Please have a look at it.

Comments are highly appreciated.

Matthias Paul

Demo video of software

I was asked a while back if I could use some screen-capture software to demonstrate the software... I have uploaded a (relatively) small file (2.4MB) that shows me dropping various blocks (MOVE, WAIT, LOOP, SWITCH, etc.) and how things resize.

There's no sound, but I think this gives you a good idea of how the LOOP resizes and how the blocks are dragged and dropped.

You can see the file here. Save it to your hard drive (NXTSW.exe) and give it a view.


May 17, 2006

My First Impressions posted on

William over at has asked me to make a regular contribution to his blog... which I'm happy to do. The first thing he asked me to write about was my first impressions of the NXT. You can read it here.

Happy Birthday, Martyn!

Today is MDPer Martyn Boogaarts' birthday... he's also a guest contributor on this blog. Please wish him a Happy Birthday in the comments area.

Happy Birthday, Martyn!

Johnny 5 is ALIVE!

Fellow MDPer Daniele Benedettelli has been working quietly on a well-known figure from the 80's... below are some questions I presented to Daniele with responses (in red):

1. Why did you choose to build a NXT version of Johnny 5?

Since I was 11 years old, after looking Short Circuit film, I started trying to build my own J5 Lego replica. It was very simple: at that time there were no special parts as today! Just think the treads were made out of slopes! Then, the project rested in peace for years, during the so-called "dark age of Lego", in which a guy discovers real life! When I put my hands on my first RIS (2003), I started working with real robotics and some ideas began to spring out again. With a second RIS I continued developing other projects (mainly bipeds) and I used a whole RIS to build the first version of J5 [please, refer to my site for images of older versions (see first image). Of course I had to add lots of parts from other sets (barcode truck) and others spares(hundreds of tread links in the latest version). On my RCX version of J5 I included a 3-to-6 motor MUX to use a single RCX to control 5 lego motors and a servo; I developed an IR proximity sensor to detect obstacles [visit Daniele's J5 site here].

Since I first published my RCX J5 model on my webpage, I have received literally dozens of e-mails from people asking me for instructions; a few even have asked me to build (kits) replicas to sell! If you take a look at the J5, with rare parts and custom-made electronics, you can realize the cost would be quite high! So, encouraged by such a positive feedback, I proposed to the MDP administrator to develop a NXT version of Johnny, showing off the great power of new Mindstorms line, with servos, Ultrasonic sensors and sound playback!

2. Where did you start? With the base? The head?

I started studying the J5 real dimensions and proportions on photos found on the Internet, and with the help of the team. I made a CAD design of J5 to plan out the JohnNXT (this could be the name) dimensions in Lego units. Since AlphaRex photos were released, many people have noticed a likeness between the J5 head and the new Ultrasonic Sensor. I got the solution to use the US sensor as the head, adding parts to make it bigger: now, the actual challenge is to make eyelids! I started with the base, using 40z gears and turntables as sprockets (note that the treads in the photos are not yet complete). Two NXT bricks fit perfectly on the base and on the lower abdomen (still missing in the photos).

3. What do you think its overall functionality will be when you are done?

Two motors will drive the treads and JNXT will go! A motor in the lower column will raise up the torso completely (a parallel kinematics structure keeps the head vertical). In the upper body, a motor will turn the head, another will move the laser, and another will move the arms and hands as in my older version. When I get another NXT brick I'll program JohnNXT to do hand following (US sensor), line following (base built-in light sensor), and then to dance, grab objects and use stereo sound ears to follow noises.

4. Will it have recordings of Johnny 5 that it will play through its speakers?

If NXT memory will be enough, one of main features of this NXT Johnny 5 will be speech!!!!!

Many thanks to Daniele for providing the feedback... please continue to check the website for updates, videos, new images, etc. The images and level of detail that Daniele has provided is amazing and I'm looking forward to seeing more of the JNXT!

Double-Secret Project (... double-secret??)

Brian, Matthias,

Here's my suggestion for the piece we've been discussing. It uses 4 of the 15L beams and 4 of the longer black connectors (showing one as an example). Very sturdy. Doesn't bend. Good reach.


May 16, 2006

What do you do with 10 NXTs?

Have a very good time, of course! This weekend (Friday 12 May - Sunday 14 May) several of us got together near Chicago, IL, for the House of Bricks event (this is a small LEGO show within a SciFi/Fantasy convention - a very interesting combination, to be sure). There were several members of the MDP there, including (from left to right) John Brost, Steve Hassenplug, Bryan Bonahoom, Kevin Clague, and myself (seated in front). Between the five of us, there were 10 NXTs present. Yep, 10 of 'em.

So what do you do with this much technology? Play, of course! Both Steve and I have used two NXT kits to make remote-controled vehicles, with one NXT (the remote) sending commands to the NXT vehicle. With two of them (by the end of the weekend we had three), battlebots ensued, as well as other forms of destruction. We mounted a camera on mine so we could video a robots-eye view (video coming when I can edit it - I have something like 3 Gb to sift through). We also used other LEGO sets to make "sphere throwers" that could spit out a series of balls, either under manual control or by looking for the nearest target autonomously and firing a single shot. Some of the other LEGO folks with very nice dioramas even let us drive through them, uprooting trees, running down minifigs, and crashing through the gates of Jurassic Park!

I've posted my NXT-specific pictures in a folder of my Brickshelf account here but the more general pictures of the LEGO portions of the event are in a seperate folder here (these include the robots over-running Jurassic Park, for instance; you'll have to filter through some general LEGO pictures in there).

So why am I telling you this? To let you know about another form of collaboration going on within the MDP and larger LEGO community. We were up every night until about 1-2 AM just talking and building robots, and it's amazing how fast things move when you get that many talented folks in one place. For instance, one night John Brost built a "sphere artillery" that could angle up or down, and fire a sphere. I was watching him build it, and thought I'd give a crack at the programming, so by the time he had completed the build, I already had the program ready to go. Another (non-MDP member) was giving him some ideas on how to make the control mechanism. All of us learned a lot more about the programming language, as well as the curiosities that each of us have learned along the way, from coding tidbits (like how wires feed into and out of Switch structures) to novel uses for pieces (there are small 2L rubber beams in the NXT kits - great for securing odd-shaped non-LEGO devices like cameras), to starting to define standards (Steve and I had similar control models for our remotes - but now they are almost interchangable, which is how we got a third one up and running so fast). Most of the MDP stuff is taking place on-line: after all, we are scattered across at least five continents. But on occassion, when we can get together in person, things tend to rocket forward.

Just think what's going to happen when the rest of the world starts getting NXT set... :-)

Other things we have learned:
  • How to make a robot fire a stream of Zamor spheres at roughly 4 spheres per second.
  • A NXT robot driven off a table does not bounce (but does contine working. The cameras was taking video from on the robot at the time).
  • A LEGO raptor is no match for a NXT with a differential drive (a raptor actually became stuck in the gearing of one robot).
  • Remote controls are wonderful, especially when you can drive up behind someone and make the robot suddenly make a series of R2D2 beeps (not just sounding like them, but an actual recording of R2D2).
  • The a robot that can roll out of a lair, pan to select the closest object, and tag it with a sphere is endless fun.
  • A NXT-based GBC (sort of a Rube Goldberg device for moving LEGO soccer balls) has a lot of potential.
  • There is an amazing amount of variety in NXT vehicles. Studless design may be new to some, but it is just as limitless as the old studded constructions. And a lot less likely to come apart when you dump it off a table.
  • LEGO folks are a heck of a lot of fun (OK, we knew that before).
  • How to make a weight-shifting NXT biped walking robot (it looked very much like the two legged walkers in Star Wars, but somewhat more wobbly).
  • Programming at 2 AM in a language you don't fully understand leads to some interesting results.
Brian Davis

Special BOT issue of MAKE magazine - LEGO coverage

Volume 6 of MAKE magazine is out... much of the content focuses on robotics, with a really nice article from Michael Rosenblatt that includes tips/tricks for advanced LEGO designs.

May 15, 2006

Feedback for Matthias' Building Instructions

USA-based readers: Please offer up your comments and feedback on Matthias' Building Instructions for RaSPy. On Friday (May 19) I'll let Matthias pick the 3 submissions he feels were most useful to him (or if he doesn't want to choose, I'll do it) and I'll send (via US Postal Service) the 3 selected readers an OFFICIAL NXT button - the button says "I know what's NXT", each about 2 inches in diameter.

We'll set 3pm Friday EST as the deadline.

Jim (apologies to non-USA-based readers)

RaSPy: LDraw file and building instructions


I'm pleased to conclude the weekend with finally adding RaSPy's LDraw file (6.6 k) and the building instructions (1.1 mb) to The NXT STEP.

Some notes:
  1. The LDraw file relies on new NXT related LDraw files that do not come with the standard LDraw distribution. They have been created by some MDP members and made available in the MDP only so far. There has been the understandable desire by readers of this blog to publish them - however, as LDraw's publishing policy is pretty taut, this is subject to discussion still and I'm presently not in the position to provide them outside of the MDP (sorry for the inconvenience - it is to be hoped that this will change soon).
  2. The images in the building instructions have been created with the according MLCAD utility. The web pages contained are the result of a small generator I've written this evening to this end (I presume there alreadyexist according tools in the web, yet I didn't fancy searching...).
Feedback is welcome.

Matthias Paul

May 14, 2006

RaSPy goes LDraw


having spent the afternoon with creating the LDraw file for RaSPy, I'm pleased to present the first image derived from it (rendered with POV-Ray).

You will deduce from it that RaSPY in general is "LDrawn" now.
Yet, I'd like to do some polishing before releasing the LDraw file.

After that, the next steps on my list are
  • building instructions
  • more high-quality images.
Watch out!
Matthias Paul

Matthias has posted a design study

Check out Matthias' website for a new upload - he has provided a drawing to demonstrate a 90 degree change of rotation...

May 13, 2006

First Lego League applications now being accepted

The LEGO Education blog has posted an announcement regarding FLL and a reminder about the Mindstorms Education Pilot Program here. A link is also provided to place orders for FLL kits.

This next challenge focuses on nano-technology... should be interesting.


May 12, 2006

RSS Feed

Well, it appears you have to pay Blogger (to upgrade to Blogger Pro) to gain RSS... so Blogger recommended a feature called Feedburner which is supposed to provide the blog via RSS feed...

Here's the RSS feed URL:

If anyone uses this, please let me know if it works or not... thanks.


Smaller video files from Philo

I'd like to thank Philo for taking our RaSPy videos and compressing them... here are the links:
(compressed using Divx5 for video at 300 kbits/s, MP3 for sound. 1.4MB)
(compressed using Divx5 for video at 500 kbits/s. 2.2MB)
(Also at 500 kbits/s but cropped to the useful part. )

Thank you, Philo.


Next for RaSPy...

Now that we have a working bot, I'm going to take it apart and photograph it being disassembled. I'll provide these photos to Matthias who has volunteered to create the LDRAW file(s) for it. Stay tuned...


Oops (or, "why can't Brian count?")

Jim tried out my program and promptly discovered I had been lazy and not actually tested it... at all (that's right folks, always remember to make your mistakes big and in the blogosphere...). The problem was that the loop counter was counting "0 - 1 - 2" just like computer do, but Brian was thinking of it as "1 - 2 - 3". As a result, the sound didn't synchronize and the numbers displayed weren't quite right. The solution Jim found was simple: use a Math block to add one to the loop counter before wiring it into the Number-To-Text block and the Switch. Problem solved!

Brian Davis

Brian Davis

New videos and image

Two videos of the new and improved RaSPy can be found below.

WARNING: raspy3 is 11MB and raspy2 is 4MB - it's either large files and less grainy or those really grainy files... sorry.

I think I may have discovered a problem... everytime I run the program, the first 3-4 times it sometimes seems to pick the same item (not always paper like in this video). After about 3-4 games, it seems to settle down into random behavior. I'll be playing with it some more to determine if this is always the case. It may very well be that, given only 3 choices, that paper really did come up 5 times in a row. Since each item has an equal chance of being picked, it's not completely unheard of... but testing will occur. This doesn't happen every time, but it does happen enough to make me curious.

And the 2nd video is a bit grainy... my apologies. What you are looking at is a small text bubble that Brian programmed to display on the screen... when you hear the audio count, text appears in the bubble 1...2...3... and resets when I press the touch sensor again.

And here's a new image. This is a perfect example of building a "nice looking" bot without actually testing all the functionality. Look at the earlier images and you'll notice I put the touch sensor DIRECTLY IN FRONT of the USB interface... easy fix... just move it back, but it goes to show that once you begin to actually test it, you'll find all sorts of things that look good but don't function well.

Giving RaSPy some personality

Tag, I'm it? OK, here's a quick version that I whipped up this morning. Keep in mind that Jim and I have never seen each other or even spoken on the phone, and there's nothing up my sleeves ;-). The new program has a number of requested features: it will wait until you press and release the touch sensor, and then count out loud "one, two, three" while moving the three arms forward 45° and then back (it also displays the number in a cartoon-like "speech bubble" on the LCD screen, just for fun). Then it picks a number and moves just that motor forward 70° to show which one (rock, scissors, or paper) that it picked. This time I did away with the multi-case Switch block at the end, instead just wiring the random number into a Motor block to directly select which motor to run. It waits for a second press and release (a "bump"), resets the motor that it previsouly moved, and starts all over again.

Notice that it's now up to Jim to test this program on his hardware, and perhaps make some modifications. For instance, I might have the motors running in the wrong direction, in which case he has to go in and switch the direction on all of the Motor blocks. Or he might want the arms to move faster or slower than I've set them. All of this is accessible to him, so he can play with it and custom fit it as much as he wants.

Brian Davis

New NXT 3rd party add-on - LASER GUN!

Although it has nothing to do with Mindstorms NXT, if you haven't seen the commercial of the young boy building a robot in his garage, check it out here (about halfway down- QuickTime video).

The final few seconds are classic... parents, you've been warned.


Latest version of RaSPy

Okay, Brian... tag, your it. Here are some images of the latest version of RaSPy. I've shrunk the size of the rock, scissors and paper and made them stronger. I linked the 3 motors together to provide stability (the original was throwing the motors all over the place as they rotated - high torque).

I added in the touch sensor as the button to trigger the start and reset of the game (took this idea from the Las Vegas slot machine bot).

And finally, I linked the brick to the motors using a solid base that provides more stability and strength to the whole thing.

Now let's watch as Brian does his magic on the program...

Next, once the hardware and program are tested and work, I'll provide detailed pictures to Matthias for him to work on the LDRAW file(s).

May 11, 2006

Blog Team Collaboration

Brian, Matthias, and I are having some fun. Taking the RaSPy, we are going to "attempt" the following:

1. Take the prototype bot and improve on its design (Jim)
2. Take the original code and improve it (Brian - already done a couple - see earlier post).
3. Develop an LDRAW file of the final design (Matthias)

The fun part is collaborating on a project where the 3 of us aren't in the same geographical location. Using email and this blog, we hope to demonstrate some good teamwork by distributing the duties. Hopefully, once the NXT is released and more people have access to the parts and software, we'll start seeing more collaborations...


Images of LEGO Education brochure

Todd Thuma has posted some scans of a brochure put out by LEGO Education. Check them out below:

RaSPy - the story continues

Thanks go to my fellow MDPer and blogger Brian Davis for taking my program and improving it using a multi-state SWITCH block (wish I had thought of it first). And he implemented the LOOP block for the initial 1...2...3...

Brian, nice clean program... great work. - Jim

Another dare... another story...

Okay, I love a good dare. Here's the story:

I was demonstrating the NXT today to some kids I know. There were 4 of them and they all wanted to play with it, but I was giving a demonstration of the program and building with the kit using a projector and my laptop.

I was going to have one of them build the TriBot from the Quick Start guide, but they didn't like that idea and told me to build something else... one of them (who reads my blog) DARED me to build something new and program it with them. I asked for a volunteer... and they all raised their hands so they played a game of rock-scissors-paper to pick the winner... (Carson)... and the idea was born.

So... I present to you, the BETA and EXTREMELY UGLY Rock-Scissors-Paper Bot or, RaSPy (the nickname given to it).

Here's how it works (and it DOES work): Just like playing Rock-Scissors-Paper, the bot does the count: 1... 2... 3... and then displays its selection (Rock, Scissors, or Paper). For the counts, the motors (all 3 of them) go forward 15 degrees and back 15 degrees - 3 times. Then, a RANDOM block generates a number (1, 2, or 3). 1 = Scissors, 2=Paper, and 3 = Rock. Using some COMPARE blocks and some SWITCH blocks, the random # is discovered and the correct motor is signaled to go forward 90 degrees (so there's no confusing the selection - it almost slams down on the table - gotta tweak that). After the bot's selection is made, you must manually reload the game by pulling the Scissors, Paper, and Rock motors back to their starting positions (about -20 degrees from vertical).

Again, it's UGLY... it's NOISY... and did I mention it's UGLY?

We played it dozens of times and it does appear to have a random (pseudo-random, of course) selection... we didn't detect any patterns.

The kids were impressed... and I was able to breathe properly because I was worried it wasn't going to work.

Pictures and screenshot of the program follow, plus a small video.

Click on the image at left to see a larger view of the entire program... with comments. I might choose to clean it up with some loops for those early MOVE blocks, but not today.

From left to right: Rocks (made of 2 tires squished together)... Paper made of 5 15-hole beams... and scissors.

I had to build a sort-of base for it to support the twisting of the motors (LOTS of torque!) because these things were flying everywhere.

This was the initial starting position, with all the pieces vertical... I found out it worked a little better to take them back about 15-20 degrees (towards the brick).

The Paper was heavy (because it's so high, I had to take beams out to lighten it or it would twist down). - The video is grainy, dark, and of very poor quality. I'm a writer, not a videographer, so apologies in advance. 45 seconds - rock does win... eventually.

May 10, 2006

Let me introduce myself

Hallo folks,

My name is Matthias Paul Scholz and I feel extremely honored to have been invited by Jim to contribute to this blog.

Some words about me: I'm German, living in the Black Forest and for some time have been (and still am) an active developer for the Open Source leJOS project (, a Java based platform for the RCX (which is most presumably the reason why I was chosen to be part of the MDP - I can only guess...).

Well, I'm looking forward to a thrilling time in this blog, hoping to transfer some of the fun we all had in the MDP so far (which is most likely similar to the fun you will have when the NXT kits are available out there finally - fumbling my NXT robot here before me - har har!).

Matthias Paul

ps And, yes, feel free to check out my NXT related page at - feedback is welcome!

Leaving Blogger?

I'm becoming very aggravated with Blogger and am considering moving The NXT STEP. I have registered and the hosting service does offer a blogging application. I am going to investigate this option and share with the rest of the blogging team... I'll keep you informed as to any decisions that are made. Right now, I'm just looking for options.

My complaints with Blogger include: slow upload of images, NO upload of images, frequently no access to create new posts, slow service, complete denial of service for short periods of time, and then, of course, there was the earlier incident where they accused me of spam blogging and shut down my ability to post for over a week. (And the fact that I've been trying to post THIS writeup for the past 15 minutes... with no success.)

All in all, Blogger is a great way to get a blog up and going, but I'm beginning to think that The NXT STEP and its readers deserve better...

Thoughts/Comments from our readers will be appreciated.


May 9, 2006

We all knew it was just a matter of time...

Great work, Philo.



Martyn wanted to share this:

The SodaCanBot has 2 touch sensors on top to fetch either the left or the right can.
The robot waits for a command and then drives to the can. It closes its gripper and lowers the rear coaster wheel that causes the robot to tilt and lift the (full) can.

Ben (MDP) listens to John (DEV) who made the SodaCanBot and demonstrates it here.

The gripper is closed and the robot is on its way to return to the can.

Here you can see the lifter (that holds the rear coaster). Now the gripper is down, and the can was just released.

This robot also has a light sensor facing downwards to follow a line. It can also use the ultrasound sensor to detect the can.

Martyn Boogaarts

How RoboCenter works

When you open up the Mindstorms NXT software, this is the start screen. On the right is the RoboCenter. This is where the 18 challenges are covered (broken into 4 categories - Vehicles, Machines, Animals, and Humanoids).

To start a project, you click on the + beside a category. For this walkthrough, I'm going to open the Animals category.

For each category, there is one major project (in this case, Spike). Each project is broken up into sub-projects that allow you to slowly build the device and program it. In some instances (like the Vehicles category - TriBot) each sub-project has you doing something a little different with the device. For the TriBot, for example, most of the projects have you using a different sensor and learning to integrate it and program it with the basic TriBot base. Here, I'll click the "Go" button for Spike to see the sub-projects.

The Spike project opens... and I see that there are 4 sub-projects: Crawling Base, Tail, Sound Sensor, and Reactions. I will click on "Crawling Base" and show you how each sub-project is broken down into further steps.

Here, you'll see the first step is to complete the "Building Guide". Each sub-project is broken down into 4 steps:

Building Guide, Programming Guide, Test Guide, and Next Step.
If you click on the title "Building Guide, it will minimize, showing you all the steps (see next image)

For each of the 4 steps, you will be given visual instructions. In the case of the Building Guide, you will see images showing you how to build Spike using the NXT components. In the Programming Guide, you are given visual steps for programming using the software...

Here, I've skipped ahead a little bit (step 14 of 37)... if you click the "Zoom +" button...

... you'll get a full-screen view of the assembly instructions. Click the "Zoom -" button to return to the smaller view.

Here is a view of the Programming Guide, step 3 of 6. Each step either shows you the block to drop in OR the block's configuration panel (with little arrows showing you where settings should be changed from defaults to something specific to Spike).

And, finally, a view of the Test Guide. Here you're given the tasks to perform with the particular sub-project you are working on. In this example, for each of the 4 steps you were to test a particular function. The final step (4 of 4) gives you a checklist to verify before you click on "Next Step" - (which simply takes you to the next sub-project - in this case, the "Tail" project) - and suggestions for fixing any problems you might encounter.

More Mindstorms NXT sensors on the way (video)

I received an email today from Dr. Nitin Patil - Dr. Patil and are developing some new sensors for the Mindstorms NXT. With the email was a link to a small video showing's new compass sensor... in the video, you'll see the bot facing a specified direction while sitting on the NXT test poster-sheet... as the sheet is turned, the bot will turn to stay oriented to face in the original direction. The sheet is turned in both directions, sometimes with a small turn and sometimes with a large turn... the compass sensor lets the bot return to its starting position.

If you like what you see and want more information, check out the website. Click on the "Coming Soon for NXT" and you can read about their magnetic compass sensor and the temperature sensor.

May 8, 2006

A MyBlock primer (with a side of math)

MyBlocks are the graphical version of subroutines. If you have a section of code you need to use in several places, or even in different programs, it's sometimes easier to "package" this code into a single block that you can just drag and drop into a program as needed. But this can be more than just a simple sequence of blocks: it is essentially a mini-program all its own, with the added ability to pass variables in and out of MyBlocks. In fact, once you've made a MyBlock and saved it, you can use it just like any of the other blocks: it's like you get to extend the language as you go! It saves reinventing code each time you program, and makes the programs much easier to understand and more readable. You can even "nest" MyBlocks, allowing you to build up very complicated blocks from simple building blocks (hmm... a lot like LEGO).

As an example, here's one way to make a MyBlock that does the Modulo math function (if you've never heard of that, don't worry - it's very similar to finding the remainder of a long division problem). First I make a program to do this, but I make it in a special way. I start out and end with "dummy" variables for the inputs and outputs to the math operation I want to build. I named these variables something that made sense to me, but it wasn't neccessary, just a handy memory aid.

Now I'd like to take the important math operations and package them up in a MyBlock, along with the all-important wiring. All I need to do is select all the blocks I want to end up in my new MyBlock, and then click on the "=" button in the toolbar at the top of the screen. That's it! The needed wiring will follow along. I usually think about this as "tearing" or "ripping" a MyBlock from a "wrapper" program.

Immediately a dialog box pops up where I'm shown a preview of what's being put in the MyBlock, and I can add a name and a text description. The name will appear along the bottom of the MyBlock for easy identification both in the Custom pallet (where it will eventually end up) and in the actual program.

A second dialog box in this series allows me to drag and drop small icons onto a "blank" block icon, so I can design the look of the new icon for my block. I just click and drag icons from the pallet on the bottom into the white square, and I can move them around up there as well, allowing me to position more than one for more variety.

When I finish these dialogs, the editor creates the new MyBlock for me, obligingly replacing the blocks I selected in my original program with a copy of my newly-minted MyBlock, all wired in place and ready to go. Any wires that "crossed the boundries" of the MyBlock I creating have been replaced by plugs, so I can now wire values into and out of the MyBlock.

But what if you need to change something now? After all, I never get everything right the first time through. No problem, just double-click on the MyBlock and it obligingly opens up in its own window, where you can view what's there as well as edit it further if you want:
You can add comments, or add entire blocks, rewire things or move them around. About the only thing you can't do is add new wires in or out of the MyBlock: these need to be present at the creation of it (at least I've not yet found a way around this, if it exists).
These MyBlocks are saved for you, and then appear in the "Custom" pallet that Jim previously listed. There are even ways to change where they appear in the Custom pallet, so you can organize them as you see fit. You can also re-edit the icon or description of the MyBlocks later on.

Just to illustrate a slightly more complex MyBlock, here's the view inside a MyBlock that does a simple calculation for any calculator, but one noticably lacking on many small robots: sin(x), where x is an angle in degrees. This MyBlock returns the sin(x) times 1000 (why? Because the NXT uses only integer variables). It uses a version of the block we just created to streamline the calculation right near the beginning, as well as file operations (it reads from a table of values the help with the calculation).
Brian Davis
Related Posts Plugin for WordPress, Blogger...