Final Project¶
Week 01 - Principles and Practises¶
The Sketch¶
The Diagram¶
The Idea¶
One of the main hobbies in my friend groups is the collectible trading card game “Magic: The Gathering”. During the course of playing the game you end up with a massive collection of cards. Easily numbering in the tens of thousands. There are apps and programs made to “scan” these cards to catalog them and keep track of what you own but they all have the limitation of having to manually scan or input the cards and their identifiers. I had the realization that if I wanted to scan my entire collection it would take me over a hundred hours at the pace I was going so I had the idea of making a machine that can scan the cards for me. The main idea being I can place a stack of cards on one end, They’d run through the machine and pop out the other. The main challenges here are going to be making sure the cards don’t get scratched or damaged and finding an adequate software solution. Indivudual cards can have multiple printings that can vary greatly in value depending on aesthetics and age. There are plenty of options but the Open Source options I find either don’t scan the individual printings or haven’t been maintained for years. There are proprietary options like Dragonshield’s MTG scanner and Delver Lens but most are limited to running on Android/iOS.
Plan/Schedule¶
Here’s the schedule I’ve worked out. Roughly.
Deadline: June 8th Start: April 22nd
This gives me 47 days assuming constant work. Should be manageable
Week 1: April 22-28 - Software Research:¶
- Check if any of the current Windows/Linux compatible Webcam scanners can give an output when a card has been successfully scanned.
- Play around with and check which one scans most effectively.
- Are there any good Open Source programs?
- Research which motors/sensors/microcontrollers I want to use.
- Document as I go!
Week 2: April 29-May 5 - Electronics & Communication Testing:¶
- Can I get the scanning software to communicate with a dev board?(Serial/USB?)
- If yes. Motor control testing.
- Compare card detection methods.(ToF? Camera? IR?)
- Finalize parts selection, What motors? What Camera?
- Document as I go!
Week 3: May 6-12 - Start Hardware and Mechanical Design:¶
- Test feeder/ejector mechanism. (Belts? Suction?)
- Get single-card dispensing reliably.
- How do I move the cards? (Friction/Suction?, Top/Bottom fed?)
- Figure out a semi-final mechanical layout
- Document as I go!
Week 4: May 13-19 - Integration:¶
- Get the electronics talking.
- Firmware fun, Motor control + Sensors.
- Feed a card, Scan a card, Eject a Card
- Refine mechanism. Can I avoid damaging cards?
- Document as I go! Or else!
Week 5: May 20-26 - Hopeful first complete prototype:¶
- Multi-card feeding. Does it work?
- Test full cycle of Feed -> Scan -> Eject
- Motor timing, Motor Speed, Sensor input, Syncing everything nicely.
- Card Detection, Potential Error handling?
- Stock up on Caffeine and snacks.
- Document as I go!
Week 6: May 27-June 2 - Refinement + Testing:¶
- Can it handle dozens of cards? Over a hundred?
- If feasible, Implement fail detection.
- Finalize hardware layout. Cable Management, Power delivery.
- Drink enough caffeine to kill a horse.
- Finalize code/Firmware
- Document as I go!
Week 7: June 3-8th - Final Boss Rush¶
- Final testing with large batches.
- Bugfixing/ QA Testing
- Drink enough caffeine to kill an elephant.
- Document the final assembly.
- Make the final project video!
- Document as I go!
Week 7.5/8: June 9-13th: Presentation!¶
- Present the project!
- Recover from skewed sleep schedule and workload. Possibly retreat into mountains to become a hermit?
Week 02 - Computer Aided Design¶
The Chute?¶
For this week I designed a potential part of the Final Project. I’m having an issue getting the faces to line up nicely but I’m sure I can figure out the parameters and formulas. It’s the chute the cards fall into before getting scanned in the sketch. Angled in a way where the cards hopefully line up with the camera. I’ll have to add a mechanism to feed the cards into and out of the chute.
Week 04 - Embedded Programming¶
I played around with controlling stepper motors in Wokwi, Something similar to the program I wrote on the RP2040 might be useful for the motors moving the cards around. I’ll definitely want to use Steppers rather than Servos and the program I’ve written will at least be useful as a base for that part of the project.
Week 13 - System Diagram¶
I made the System Diagram and added the schedule.