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.

 

Building Instructions for a cable that connects LEGO Power Functions (PF) with Mindstorms NXT/EV3

Harry Davis and me built a cable to connect a LEGO Power Functions (PF) motor to a Mindstorms EV3. The goal is to enable the EV3 to control PF motors. In particular I wanted to control a RC train motor through an EV3.

LEGO produced a cable (8528) to connect old motors (RCX) to the NXT, but it is no longer in production. You can still get them through Bricklink, but it will cost you dearly. You still need a PF extension cable to convert the old motor plug (RCX) to the current PF plug.

convert cable

Firgelli produced a cable that allowed you to connect an modern PF to NXT directly, but it is also no longer in production.

firgelli nxt pf cable

There are two more solutions but both are more complex and costly. First, you can use the PF Mate from Mindsensors (currenlty $35). It sends IR signals to the IR PF receiver and thereby allows you to control motors even at a distance. The second option is the GlideWheel PF (currently $38) that directly connects a PF motor to the EV3. It also features a rotation sensor so that you can control the PF just like you would control a Mindstorms encoded motor. Both of these solutions offer a great functionality but they are also expensive, in particular since the components necessary for a custom made cable only costs a few cents.

At Amazon you can get a book Make: Lego and Arduino Projects: Projects for extending MINDSTORMS NXT with open-source electronics that will show you how to do such projects, but for now it is time to pull up our sleeves and do it ourselves. TechnicRobot already showed that it can be done but detailed instructions were not yet available. We also built a casing for our cable so that it can be easily integrated into your model. Here is the final result:

EV3 PF Cable - 17

And here is a video that shows our solution at work:

Continue reading “Building Instructions for a cable that connects LEGO Power Functions (PF) with Mindstorms NXT/EV3”

The Robot Engine Used For A LEGO Arduino Robot

We build a new LEGO robot based on the popular LEGO flash lights. We use custom made 3D printed parts to put small servo motors into its head, chest, arms and legs. The robot has six degrees of freedom. In addition we embedded a camera, microphone and speakers into the robot. The robot is controlled through an Arduino micro-controller. We used The Robot Engine to create animations for the robot and to design interactions with users. The paper will be presented at the Ro-Man2015 conference in Kobe.

Here are some useful resources for you if you intend to build a similar robot:

The credit for this robot go to:

  • Shogo Nishiguchi
  • Guillaume Vandenbor
  • Marius Soucy
  • Kevin Fleuret
  • Eduardo B. Sandoval