TicTacToe Playing LEGO Mindstorms Robot Using Computer Vision

You can play TicTacToe with this LEGO Mindstorms EV3 robot. It uses three motors to drop the balls into the right field. It uses a NXTCam to view the board and then calculates the best move using a MiniMax Algorithm. All future moves are explored an rated according to their winning chances. The work is based on the TicTacToe code of Thomas Kaffka. An IR sensor detects your hand when you drop your ball. The robot is using red balls and the human player uses blue balls. The Java code is available over at Github. The building instructions are available for LEGO Digital Designer. I used the MinuteBot baseplate, which is useful for building static Technic/Mindstorms models.

 

LDD does not have all the required pars in its database. You will have to replace 22961 with 27940. You will also need to add a worm wheel 27938. In addition you should use a lamp to provide consistent lighting. I used a USB powered LED circular lamp the can be powered through the USB port of the EV3. I only had to take out the lens in the middle so that the camera fits through the hole. A rubber band holds the light in place. To calibrate the robot I added a little arm at the end of the base plate against which the robot arm rotates. The position of the camera can be centered on the board using the wrench and through sliding along the axles.

You can also find information about the robot over at Rebrickable. The inventory there is correct and complete. Except for the base plate of course.

 

Using your LEGO Mindstorms RCX on a modern computer

Bringing back your old LEGO Mindstorms RCX to life is easier than you might expect. The bottleneck is being able to communicate with the RCX using the Infrared Communication Tower. Version 1 used a tower that was attached to the computer using the old serial port (RS232) while version 2 used a USB tower. The later is much easier to use these days since most computers still have plugs that are compatible with USB1.1. For this tutorial you will need:

We will setup a virtual machine on your host computer (Mac or PC) and install Windows XP on it. We will then install the original Robotic Invention System (RIS) so that the USB driver is correctly installed. You can then use RIS to program you RCX or you can setup many other programming environments/languages. Another problem you might encounter is that the cables used to connect the sensor and actuators to the RCX have become brittle and the isolation comes off easily. You can still buy some new cables from Bricklink.

Continue reading “Using your LEGO Mindstorms RCX on a modern computer”

Tutorial on how to install and run Java on Lego Mindstorms EV3 using Eclipse on Mac OS X

This is tutorial on how to install and run Java on your LEGO Mindstorms EV3 using Eclipse and LeJOS.

We will be installing Java and the Eclipse Integrated Development Environment (IDE). This will allow us to develop your LEGO Minstorms EV3 software in Java and running it on the EV3 using LeJoS. Please let me know in the comments if you encounter any problems. I will try to keep this tutorial up to date.

You will need:

This tutorial will only get you started and you might want to dive much deeper into Java development for the EV3. These books might be useful for you:

My personal favourite for building amazing mechanism is Sariel’s book:

Continue reading “Tutorial on how to install and run Java on Lego Mindstorms EV3 using Eclipse on Mac OS X”

LEGO Compatible Medium Sized Thrust Ball Bearing

LEGO’s turn table has considerable friction and rotating a model at an exhibition for a whole day would ruin it. A thrust ball bearing is necessary to decrease the friction. I previously 3D printed a large bearing for my Unikitty. For this year’s exhibition I needed a smaller thrust ball bearing so I designed a new medium sized ball bearing. It includes liftarms to hold a worm wheel which results in a rotation ratio of 1:78. You can download the model from A360 and GrabCAD.

Continue reading “LEGO Compatible Medium Sized Thrust Ball Bearing”

Working in a “smart” building

For more than a year I have the pleasure to work in an office in the John Britten building at the University of Canterbury. The office is light, friendly and spacious. I should be more than happy but this building comes with a twist. It is smart. The room has a motion sensor and a temperature sensor. The lights are suppose to go on when activity is detected and the window is suppose to open when it becomes too hot in the room. Notice that this smart building does not have the ability to regulate the heaters. If I switch the heater fully on and thereby create a little sauna then the building will open the window instead of regulating down the heater. I am not sure if this is smart.

The biggest problem is that the window’s behaviour could best be described as neurotic. It opens and closes nervously without considering the noise it makes or the noise that the construction site outside is creating. The only way to tame this autonomous monster is to log into a website and set the window to manual. There is no switch or lever that I could use.

LEGO EV3 Robot Measures the Environment

So I ended up creating a little LEGO robot that would log the environment of the office and the opening of the window in the hope to detect a pattern. Something to convince me that there is method in this madness. Other than that the windows close at 5pm sharp I could not. But along the way I learned a bit more about information visualization on the web and how to to create a useful little logging robot. Have a look at the graph that I produced.