This project is the most recent one I have completed. It was done as a final project in my first semester of university and was completed as part of a group with three other people from my program. Over the span of about a month, our group followed all the steps of the engineering process. We began by identifying a problem based on a given criteria, researched and brainstormed potential solutions, and established the criteria and constraints to guide us. We explored alternative solutions, developed a design proposal, and created a prototype. Afterward, we tested the prototype, redesigned it to address any issues, evaluated the effectiveness of our solution, and ultimately presented our project.
There were several key criteria for this robot. The primary requirement was that it needed to solve a problem. While the problem might have already been solved, we had to reinvent the solution or create a new version of an existing one. Additionally, the solution had to be constructed primarily from Lego EV3 components, with minimal use of external resources. When deciding on the robot's focus, my team explored various ideas and drew inspiration from dealers and casinos. We recognized that while dealers play an essential role in casinos and card games worldwide, they have notable drawbacks, such as the potential for cheating, human error, and unpredictability. To address these issues, we designed a robot capable of shuffling and dealing cards, aiming to replace human dealers in casinos and reduce human error in the process.
Our goal was for the robot to support a variety of card games, all of which could be customized by the user. The robot was designed to shuffle the cards independently and deal them according to the selected settings. To improve reliability, it was built to handle cards of various qualities and colors, incorporating anti-jamming features to minimize disruptions. Initially, the robot allowed users to remove cards from the centre after shuffling for re-shuffling. However, after further redesign, we decided to simplify the design by removing this feature. Instead, we randomized the order in which the robot dealt the cards to maintain a similar level of randomness.
In order to complete the required tasks, the robot employed sensors to detect card placement and jams; these motors were used for shuffling, dealing, and rotating the robot, with motor encoders aiding the shuffling and dealing processes. Additionally, a gyro sensor was utilized to manage the robot's rotation. The robot’s software followed a structured sequence. It began with a “startup” phase, then waited for cards to be placed inside. Once the cards were in position, the robot initiated shuffling and dealing procedures, using specific anti-jamming methods to detect and resolve any potential issues.
Throughout the design process, all team members, myself included, were equally involved. We each contributed ideas, thoughts, and identified potential obstacles. When it came to designing the robot’s components, we had different ideas on how each part should operate and work together. For instance, we debated whether to use two motors to slide cards into the chute one by one for shuffling or one motor to push cards from separate piles with different timings. At the end of the project, all group members collaborated on different sections of the final project report. As for my individual contributions, I focused primarily on the software side. I wrote and troubleshooted much of the code, developing several functions to handle the robot's operations. Towards the end of the project, I dedicated most of my time to troubleshooting and improving different segments of the code to enhance reliability, speed, and effectiveness.
To ensure the robot met the intended criteria, we conducted a series of tests, evaluating each criterion based on the robot's performance and the success achieved. Overall, this project was a significant learning experience for me as it was my first major project in university, and the process was far more complex than anything I had worked on before. Each step required extensive research, idea generation, and thorough presentations. Additionally, our final report was far more detailed and comprehensive than any previous work I had done. I enjoyed working on this project, and I’m excited about taking on similar projects in the future.
Here is the PDF for our final report:
Here are some photos of the robot (completed, but partially disassembled):