I spent the whole week with the team trying to get the dispenser to work. The problem was that we needed the distance between the rubber-covered cylinders and the card to be very precise. Too close, the motor got stuck and did not spin. Too far, and the card did not get dispensed (or took too long to get dispensed, as the cylinder only touched the card occasionally).
After rebuilding the dispenser with wood and trying out different things with the motor and the cylinders, we decided to simply remove one of the cylinders and print a new dispenser with new cylinder that can be directly attached to the gear. This way, we could minimize the possible sources of errors.
And today, we were finally able to get the dispenser to dispense cards quite reliably. It still failed sometimes (which we suspect happens because the cylinder is not a perfect cylinder), but we found that we could simply retry dispensing, and it worked.
Now we can finally move onto trying the full game play with the implemented game state manager. Before that, we will need to connect all the inputs and outputs between the programs in RPI and Arduino, but that will not take too long, as we already tested linking the two through USB port and sending/receiving serial data.