Let's Make Robots!

Doc, Tic-Tac-Toe robot

doc_lmr.zip3.12 KB

      Hello folks

 Here is my entry to OddBot's contest, "Naughts and crosses".

 His name is Doc, not stunningly original, I must admit, but... here it is.

 The ideea behind it's design was to make a board like game of Tic-Tac-Toe which use a reusable table and pieces instead of drawn shapes. For this, I needed a robot capable to scan the game board in order to determine where the game pieces are placed and put it's own pieces on the board.

 The main parts are as follows:

  - In place of his brain, is an Arduino Uno plus an homemade shield for connection with sensors and servos.

  - Right arm have 3 LDR sensors used for detecting the placement of pieces on the game board.

  - Left arm have an gripper used for picking up the balls used for play.

  - Movement along the board is provided by an continuos rotation servo and a pair of car chassis wich run on hobby train tracks.

  - On the front of robot is a ultrasonic sensor used to detect when player makes a move.

  - On top of it's head are a green and red LEDs used to indicate when the robot is busy (red LED) or when the player can make his move.

  - Power is provided by a 2 cells LiPo pack put inside plus a 2A UBEC. I had the ideea to supply the power through tracks, but I decided this will be a future upgrade.

Theory of operation is as follows:

 - After power up, the top green light is turned on and Doc wait for it's ultrasonic sensor to pick a player movement on the board.

If a movement is sensed, red light is turned on and scaning of the game board begins. For rows detection I used white markers placed between the tracks read by two sensors placed on each side of the body. Those markers are also used by the placing routine.

After the scan is complete, agorithm decides if the player have a winning combination of pieces. If not, a "O" ball is picked and is put on a free place on the table. If player wins, Doc raise it's right arm and flashes the red light.

I did not want to make the playing algorithm too smart (yet) because my 5 y.o. daughter wants to play with the robot and she got frustrated if she lose every time :)

After the "O" ball is placed, board is evaluated again to see if Doc has a winning combination. If not, it turn on the green light and the cycle continues. If Doc wins, it flashes the green light and rise it's left arm.

After the player or robot wins, the green and red lights flash alternatively for 20 seconds, in this time board can be manually cleared and a new game can be started.


















































































































Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

That's an awesome looking robot!

I couldn't agree more, the robot looks stunning. Not only that but it sounds like a good implementation with the sensors and railway tracks. I'm looking forward to seeing a video of this robot in action.

Very cool...I like the railroad idea.  Very clever.

Omigosh! I like the gold paint and the mustache and the railroad tracks and the style of the whole thing! 1:Does it turn its head or raise eyebrows, cause that'd be cool. 2: can we see a video of this piece of art?


Wow! Want to see a video! :D

Great design. Your robot really looks awesome, especially in that light :-) Well done!!!

Hello all

Thank you very much for your feedback.

I attached the code, which is not a coding masterpiece but proves that robot is not remote controlled.

Sorry about the video, somehow I ate a character at the end...

Thanks again

This is my favorite for the content so far. Nice work. Good luck.


I would like to echo a lot of other people and say that I think your robot is awesome.  It moves very smoothly, and I love the use of th model train track.