19 - Project Development¶
Who am I?
Tools & Assignment
Updated for 2019 evaluation standards! Tasks
- Complete your final project tracking your progress.
- Implement project plan
- Apply time management techniques
- Summarise and communicate the essence of your project development
- What tasks have been completed, and what tasks remain?
- What has worked? what hasn’t?
- What questions need to be resolved?
- What will happen when?
- What have you learned?
It’s perhaps a little late to start writing this page on Thursday 20th of June, one day after my final project presentation.
This is to exemplify my poor time management skills, which after 3 years have seen little improvement.
In my defence, I do work full-time, so finding time and energy is not always easy.
Also, being in Manchester, away from Henk & De Waag, I had to solve most of my practical problems alone. I think that was pretty tough.
It’s not to the say the vital support I was given from Henk who, even at
886 km away, found time to help me as best he could, and chased after me to get work done.
Answering The Questions¶
I’ll answer the questions asked as the project currently is, rather then try to think about how it was in in
What Tasks Have Been Completed?¶
All major tasks for the final project are complete, short of documenting.
That is to say:
- I’m able to drive the display with my own board
- I’ve written a GUI program that played the game as expected, and as the AVR plays more games it gets better, this works independent of input device, as long as the right signal exists.
- I’ve created a board which can read the values of 9 capacitive sensors and communicate them through serial and i2c.
- I’ve implemented a communication interface between the two boards, which works both with I2C and Serial.
- 3D designed and printed and enclosure
- 3D designed and printed capSense compatible pawns
- 2D designed and milled capSense pads for sensing
And What Tasks Remain?¶
- The learning algorithm currently is inefficient, it uses a computational tree which is about 2x the size it should be, the reason being it’s not able to recognize identical, but mirrored moves. Right before the presentation I was rewriting the code to implement this feature....
- … this broke everything else, particularly the communication between the boards, this will require fixing.
- There are some design flaws (aesthetic) that I wish to fix, but I think that’s a story for another time
What Has Worked? What Hasn’t?¶
I think that I captured the essence of these two questions in my last answer. IF, however, we meant to ask what things didn’t work in general on the path to finishing this project, there is one big issue that I was never able to solve, that would be the making use of the TFT’s touch capabilties.
Originally I wanted a nice home page GUI, with 3 options:
(Instead of throwing the player into the pawn-board)
Needless to say this was never completed, nor is planned to be.
The TFT touch screen is a serious pain to get working. It needs calibration but no code exists to do so on the cheap ones I bought, so I tried hacking together some code using code for a different display which improved things but never really gave good results.
Not really sure if my LCD was defective, or I just didn’t know how to get it to work.
No time to actually write the GUI.
While trying to find a solution to the touch screen dilemma, I came up with the idea of using the capSense board as arrow controls for the GUI. I actually think that’s a more elegant solution. As of now, before the game starts, I can use the center pad to start the game, but with time more features could be implemented.
What questions need to be resolved?¶
I’ve got no outstanding questions, maybe investigating the possibilities of:
- Making the tft touch functions work
- Integrating the capSense and LCD boards into one.
- Adding a DMA for the LCD board
- Adding a level shifter for 3V logic on the LCD
- Using a 20MHz crystal rather then a 16Mhz, since the AtMega328p is rated for it.
What will happen when?¶
Code fixes, ASAP
Everything else, through time, maybe this summer.
What Have You Learned?¶
What have I learned?
Too many things to list
In 2019 alone :
- Building a 3D printer
- Building a CNC machine
- Making circuits
- Soldering 0805 components
- Designing circuits in KiCad
- Debugging workflow for home made circuits
- Self control - Not stomping on malfunctioning boards
- Self control - Not throwing my cheap CNC machine outside the window when it didn’t mill like I wanted
- Learned to auto-level the CNC.
- Gained 112% boost in fear resistance from having mill bits explode in my face when I forgot to attach the probe to the milling bit for auto-levelling
- Had to learn to use, upgrade and maintain a 3D printer.
- That I need to work on my time management for a couple more years
But I think the most important lesson I’ve learned, and this I was taught in 2016:
- “You didn’t fail FabAcademy because you didn’t finish now. You could only fail, if you never finished it” ~ Emma Pareschi
I think now I understand the meaning of these words better then I have ever before.