Analyzing the project we can divide it into at least 5 parts or sub-projects
Benefits:
Initial thought was to use facial recogntion, but that might take time to develop and in any case I don't have sufficient photos of the subjects.
Another idea is to use ArUco Markers. ArUco markers are similar to QR codes in being a grid of black and white squares, but they have the benefit of having less complex patterns (a smaller grid), so can be more easily and consistently be detected.
Here's an ArUco generator!
Idea! We could 3D-print participant IDs using a Bambu printer with multiple colours so that the ArUco marker shows!
Prototype:
The card is beautiful, but ArUco markers can best be used with OpenCV which needs an OS apparently.
According to the critera of final project, we should use a microcontroller. That means we should use something like the Grove Vision AI Module V2 instead of a Raspberry Pi. This type of module can be called an "edge" device.
vThe "edge" label means the Grove Vision AI Module V2 is a smart, self-contained unit that processes data where its captured—right at the edge of the system. This makes it faster, more efficient, and versatile for real-time, low-power, or offline AI applications, perfectly aligning with its design for vision-based tasks using an external camera. (source: Grok.ai)
There are at least 3 methods/platforms/ways to use this module:
A very important aspect of the attendance-tracker is to distribute candy. Initial idea was a conveyer belt, but as it has a limited capacity, another design is needed. The ideal dispenser will have a larger capacity and also detect when the candy is finished. Thanks S.I.B.I.N. for his thoughts on this.
There is a particular type of chocolate in Kazakhstan that has a small profile and could be ideal to dispense in bulk:
Here is an initial design for the dispenser. It will contain chocolates as well have the ability to dispense a small item such as a key. Anything that can fit in a small space. Perhaps some money. This is added because it sometimes is needed to pass some important object, such as a key, and this way it may be done asynchronously without necessitating meeting.