A robot able to play poker

Hi, I want to create a small robot able to play poker with some friends. I never used Arduino so i need some advice about the equipement that i need to buy to realize : -an arm able to take cards and poker chips -a sensor able to recognize the different cards (or colors) -a voice detecor


An Arduino is not suited to image and voice recognition. You might be better to consider using a PC for those functions and interfacing it to a robotic arm to handle the chips and cards.

This is an advanced project, and based on "I never used Arduino" I suggest you should plan to start simple and work up to the final project in small steps. Just the mechanics of dealing with cards and chips would be a challenging project, never mind the complexity of the software needed to manage it.

An Arduino can be used to control motors, servos and stepper motors to move mechanical devices. An Arduino plus a voice shield can be used to perform actions based on voice commands. Anything related to recognising which card or which chip is present is probably not suitable to do on an Arduino but might be possible on a PC using image recognition software on a PC. However, it's an advanced project in its own right.

An Arduino plus a voice shield can be used to perform actions based on voice commands.

That is interesting, I was not aware of that. Will try and remember for future reference, it sounds like fun.

Hi, I never made a robot and I need some advice to recognize cards and the value of poker chips. How can i do that ?

Not with un-modified cards and chips with an arduino.

I think i will forget the functions using voice and remplace them by boutons. So with modified cards and chips how can i do that ?

Look up RFID.

Or put magnetic ink spots on the chips cards.

Or use a credit card like Mag strip.

I think you need to define the mechanical process in which the robot will recognize a card?

Is it expected to pick up a card (which might be complex in itself) and “look at it” in some way that vaguely mimics what a human would do. For example will it be able to pass the card across a magnetic strip reader? Which, in turn, raises the question of how it holds the card.

In my opinion this is an incredibly complex project. The mechanics of handling cards will be complex. The business of recognizing cards will be complex. And I suspect you would need a very powerful computer to play a good game of poker - though it may not be as complex as chess. (Presumably you won’t have to write a program to make it keep a poker face :))


The robot will just move the chips. The cards will be put on his captors (in front of the robot) by a human who distributes the cards. The way that the robot will handle the chips will depend to how it will recognize them. I know that the project can be difficult that's why i'm here to ask the easiest solutions for my functions.

RFID will probably be your best bet for recognition of card values. Possibly, if you used a simple light sensor that recognizes color, you could use that to indicate which chip is which. Another simple method would be to use something like a coin hopper to 'make change' with chips, and rely on someone to insert those chips properly.

As for cards, you'll need to determine a way to recognize each card individually. Robotic Vision (Aka a webcam and some processing power) is the most obvious solution, but it isn't something the Arduino can handle. However it could handle locating cards to pick up, identifying chips, and reading what cards it drew. Cards are luckily quite regular in where they locate the value, which is handy.

We are not trying to dissuade you from doing this, but I think most of use are pretty serious in that this is not really in the scope of something to do with an Arduino. However, the complexity of this project is on the scale of something I'd expect from a graduate student.

Could this projet be done with lego mindstorms ?

Enquire on the Lego forum ?


Not easily. Mindstorms has a very simple pictographic language and pre-defined sensors. You might be able to program in another language and use arbitrary sensors, but I suspect the processor is just as limited as the Arduino.

Someone is using a crippled C with mindstorm:

But they use the stock sensors