- Incremental building is key. Don't skip the first steps, they are the most important! Get your pseudocode and schematics down and make a state machine, you will learn a lot from it and it will help your team all be on the same page. Write a service and test it independently from the others. Once you integrate it, test and test again!
- Print statements and keyboard input are helpful for debugging. However, beware that too many print statements can also slow down your code and cause unexpected behavior.
- Print out a TIVA pin diagram, assign pins, and tape it on your workbecnh. Your team will all be aware of what each one is doing and which pins they cannot use. When you integrate all your code, it will make everything much easier.
- As Alfred Borden said in the film The Prestige, the best magic tricks are oftentimes very simple. It is easy with projects like these to go off-the-wall with propositions for complicated ideas and functions. Having a simple but elegant solution will not only save time with work, but will also produce a better project.
- The room where you will give your final presentation is loud. Audio in a machine will not be heard unless you include earphones.
- Proper communication between teammates can be surprisingly hard. Make sure your team is communicating effectively. Apps like GroupMe and WhatsApp can be good, but it could be that more needs to be done on top of that.
- Keep good notes of all the schematics you do. Oftentimes you will need to debug work, or perhaps even dismantle a circuit or code and rebuild it from scratch. When this happens, knowing what state the work was in before changes were made helps for making useful footings as the project goes on. Without proper record keeping, it becomes very easy to lose track of what is happening under the hood. This can seriously derail your group as the project progresses forward, since errors can occur with poor knowledge of how they originated.
- Professor Carryer’s model for conceptualizing and writing programs is very useful. Section 6.4 (pages 78 to 84 in the textbook) gives a good model to follow for writing your code. Following it saved a lot of trouble for our team down the road.
- You shouldn’t take too much of a break from the project during Thanksgiving. Find ways to delegate tasks so that work is minimized when you all come back after the break. If one or more of your teammates stays at Stanford during the holiday, they can make much needed headway on the project.
- Mechanical calibration took longer than our team expected. If you can, try to make time after you assemble your machine to calibrate the components and make sure they function how you want them to.
- Have fun with this project. It is challenging and will require a large amount of work. But the work is rewarding. Seeing your final machine move, and seeing all components work together in the harmony you want, is very satisfying.