Final Project Development
This documentation will not only cover the process of final project development (planning), but also will provide an evaluative summary of the final project at the end.
Part 1- Project Management
This is written in retrospect, but I hope that it can effecitvely capture my Final Project development process.
My final project process began around 4 weeks prior to the presentation. Until this point, I had:
- A clear idea of the final project's purpose and scope
- Initial concept design in Fusion 360 almost ready for printing
- No working Arduino that I designed, milled, and soldered
- Very little effort in programming
- Very little idea of how the electronics will be connected
I created a task plan of things left to do using the checklist above, but in retrospect, I wish I had a more detailed plan of tasks to complete, rather than just assigning a broad task over the course of a week. I could only partially dedicate my time to the final project during the start of this process, since my school was still on and I was taking assessments, which are really important for my high school diploma. So, the first 3 weeks of the final project process involved working around 30 hours over the weekend. Although, I feel like I didn't utilize this time in the most efficient manner; a large proportion was wasted waiting for long 3D prints.
Triage and SpiralDev
Triage and Spiral Development were one of the most essential project management techniques I utilized. I had massive plans for this project, but being realistic with the timeline and my skill level forced me to reduce the scope of this project.
The bare minimum functions I wanted this project to have was to be able to:
- Manually control the motors individually using a keyboard as the input device.
- Solve the rubik's cube independently, using the Kociemba algorithm
- Achieve a respectable solve time
- Eventually, if time allows, I would also like this robot to solve the cube using the CFOP method, as well as playing out the moves slowly as a tutorial mode for someone else to follow.
- What tasks have been completed, and what tasks remain?
Unfortunately, a lot of tasks remain. I need to figure out how to connect all 6 motors to work at the same time. Since I don't have this working yet, I also can't finalize the code. I also am yet to laser cut a housing box for the electronics, and the most concerning part is that I still don't have a working Fabbed-Arduino (ATMega328P) board, which is required for this project.
- What's working? What's not?
I can't make 2 stepper motors work together, let alone 6. I am getting increasingly concerned, since the breadboard keeps heating up and frying up the drivers. Right now, I don't have any alternative solution.
- What questions need to be resolved?
Let's be optimistic, in which case, the next questions to resolve are about making 6 stepper motors work together and debugging the issues of my Rupino (Fabbed-ATMega328P) board.
- What will happen when?
- What have you learnt?
No matter how many attempts something takes, don't lose your patience and keep trying for the next one until it works. Personally, I made 7 arduinos before the 8th worked, and each failed one halved my motivation each time.
Next, be realistic. This is already an ambitous project, so expect to finish 10% of what you initially dreamed. And make sure that even 10% would be sufficient to qualify all criteria.
Don't waste your time whilst you have started the 11-hour print. Do something, or document!
Try to always review your work with your instructor. This might annoy him a little, and create a sense of dependence, but he can save you from waiting for an incorrect print that would take 6 hours, only for you to realize at the end. (P.S.- Thank you Saverio)
Remain disciplined about time management. When you have run out of time on one task and are scheduled to do the next, stop what you are doing and move on. For me, this went against my instincts to finish what I started or get things perfect which could have nearly cost me not finishing my project at all. This doesn't mean that you cannot strive for perfection, even in the tiniest details. But, after the basic spiral is achieved.
And finally, as Neil says, EVERYONE RUNS OUT OF TIME. To combat this, I learnt to work in spirals, and if I manage to achieve even the most basic spiral, I can be satisified with the reassurance of a completed final project.