LEGO Mindstorms


I've always loved robots. Ever since I was a kid, I thought they were just the coolest thing. It should be quite telling when my favorite characters in fiction are robots (or androids, even, but that's splitting hairs at this point).

My earliest "robot" toys, aside from action figures, were a motorized Tyrannosaurus Rex and a hornet. The hornet in particular has been something of a companion of mine in the years since; I even named it "James". :lol: Although in the last several years, it's fallen into disrepair; pieces of it are missing, some legs came off, and the electronics no longer function. It was a pretty cheap toy anyway, though; all it ever did was make a "buzzing" noise, slightly move its wings (which came off regularly at the time; I no longer have them) and move forward very slowly while lighting up with red eyes. Today it sits in a glass cabinet at the end of a hallway in my house.

Around... I want to say 2006, but it might have been a couple of years later, I eventually received a LEGO Mindstorms NXT robotics kit. I forget if it was a birthday gift or a Christmas one. Either way, I was overjoyed. Finally, a means to construct my own robots! I even began brainstorming a damn Mars mission based around the things! Of course, I didn't know then what I know now; that would never work in practice. There are reasons NASA doesn't use any LEGO Mindstorms platform in their work. :lol: Still, to this day, I fantasize about it, though with EV3 robots instead of NXT ones.

I wasn't particularly great at building my own robots, though, or even programming them, for that matter. I lacked the understanding required to truly make a LEGO robot that was worth showing off in any capacity. The sample robots at the time weren't particularly helpful in demonstrating most of the core concepts of Mindstorms construction. Mindstorms NXT also happened to be my very first LEGO Technic set. Sure, it's not a Technic set in an official capacity, but the elements they use are mostly identical, to the point that the skills required to build your own constructs from one of these LEGO toylines is extremely useful in the other. As the closest thing to a Technic set I've built at the time were BIONICLE action figures, I really wasn't equipped for this. The programming side of the matter only made matters worse; I had no idea what the hell I was doing, so I could only really come up with the most basic of programs, even with a programming language as relatively simple as that of NXT-G.

Fast forward to... I think it was my birthday in 2016. I received a LEGO Mindstorms EV3 kit, the one I use today. Of course, I was once again quite happy. I didn't know what I was doing with this one either, but I like to think I learned from my NXT years a bit. Besides, the sample robots did a significantly better job of demonstrating the concepts of Technic construction – especially since there were more of them this time around, 4 of which were actually provided by the software internally, and the rest were made by prominent members of the Mindstorms community. Early on, I didn't get much use out of this one; unfortunately, I was just too busy to concentrate on any sort of brainstorming, let alone actually building a robot of my own instead of using someone else's building instructions and associated programs. Speaking of programs, I bought a book that aims to teach how the LEGO Mindstorms EV3 programming environment actually works, which is quite a step up from where I was when working with NXT-G over a decade ago. So I think I'm better equipped to work with Mindstorms now than I was when I was younger. :lol: We shall see.

I'm currently attempting to design an automated aluminum can compactor. I've looked to see if it's been done before on Google, and it has... but they don't seem to work so well. Either they aren't strong enough to crush the can, or the frame of the robot can't hold itself together while trying to crush the can. Even one I saw that used obviously non-LEGO pneumatics couldn't reliably crush the cans to my satisfaction. I think I can do better.

I have a wall-mounted can compactor that I can operate by hand. I want to build this automated one based on similar principles to that one. The reason being that the wall-mounted one is mounted in a place where I could easily wake people up at night if I decide to have a soda or something and I'm still wide awake, which actually happens often. So I'm building this one to crush cans I want to dispose of without waking people up. :lol: That other compactor is fucking loud.

The biggest challenges I'll be facing are the structural integrity of the robot – either due to the strength of the plastic of the LEGO pieces themselves or by the strength of my build on its own merits. I'm feeling pretty confident about the pieces' integrity, though, but just in case, I'm gonna make use of some of my older NXT building elements; I find them to be significantly more expendable than my newer EV3 elements – and how much force my motors can exert given optimal conditions. I intend to use my old NXT motors alongside my other EV3 electronics instead of the EV3 large motors. According to this comparison between various LEGO motors, including the NXT motors and both EV3 motor sizes, the NXT motors have better torque than EV3 large motors (and all other LEGO motors available, for that matter), and since torque is what I'll need, I'll have to defer to my old motors instead of my newer ones. To maximize the torque, I will construct some worm gear assemblies, which I'm hoping will get me at least the 250lbs of force needed to crush the can, even if it will be done very, very slowly.

Of course, there are several design challenges ahead of me; first and foremost, I need to work out exactly how I'm going to build that worm gear assembly I need. I need to gear it up like crazy, so I'll need to figure out how to mesh a worm gear and a 40-tooth gear. Most worm gear assemblies I've seen use smaller 24-tooth gears, but I don't think a 1:24 gear ratio will provide the torque I require. Once I work that out, I'm going to move on to the actual structure of the compactor itself. The machine will also have to know when to stop crushing and reverse; to that end, I will mount touch sensors at the top and bottom of the rails the thing doing the actual compacting will be moving along.

Once I overcome all the design challenges and actually construct the machine, programming it will be extremely straightforward. It's a relatively simple device, all I would need to do is make the motors keep spinning until the bottom touch sensor is pressed, then make them spin the other way and stop when the top touch sensor is pressed. All at the push of a button. So easy, the Akamia of 11 years ago could do it!

Designing the machine will truly be the most difficult part of this process. I'm planning my build in LEGO Digital Designer as I write this; I don't know how to operate LeoCAD, LDraw, or other such applications, but I suspect LDD will be sufficient for my needs. If anyone has any recommendations for build techniques, I'd love to read them!

Also, if anyone else here has worked with the LEGO Mindstorms toyline, either in school or at home, I'd love to read your stories!


After getting stumped with my worm gear assembly, I found one that might serve me well here. I don't know if they were the first to come up with it or not, but Koren of the ResetEra forum had a 1:40 assembly.

So now that my worm gear woes are over, I can start making progress. :)