Timeline
Below is a predicted timeline for the rest of our project. We will update it with what we get finished with
Dates | Ty | .1 | Grant | .2 | .3 | .4 | .5 | |
---|---|---|---|---|---|---|---|---|
Week 1 (3) | Install the Arduino CLI on Windows and Mac. | Install any needed C/C++ tooling | Bootstrap the GitHub repository. | Initial physical development prototype | Test ESP32's to ensure they work | Research audio output on ESP32 with the internal DAC | Experiment with a speaker for basic audio output tests | |
Week 2 (2) | Get AudioTools for Arduino to build. | Build Espeak for Arduino and try to test it. | Research how button matrices with microcontrollers need to be implemented on the circuit level | Start with breadboard experimentation of button matrices and confirm that it works | ||||
Week 3 (3) | Fine-tune Espeak settings for optimal output of math content. | Write a text_to_speech provider class that wraps Espeak in a very friendly way. | Start writing an outline for the math handler. | Begin creation of full prototype on breadboard | Finish, test, and modify breadboard prototype | Make breadboard prototype on protoboard soldered to make it able to be used for software development | ||
Week 4 (2) | Finish the math handler outline. | Write a basic button mapper that allows for mapping of buttons to C++ functions. | Test new prototype button input and speaker output | Create initial low level software for interfacing with the calculator program | ||||
Week 5 (2) | Try to deploy the code to the prototype. | Tune the code to make it properly work given the limited resources available. | Start with soldering and assembling prototype | Create a general sketch of the final product with button locations divided into groups | ||||
Week 6 (4, thanksgiving break) | Write a configuration system that allows for key remapping. | Add many more math functions. | Create circuit design for full size prototype | Learn about creating schematics for devices and the software required | Continue Learning about Schematics software | Start a creation of the schematic of the board | ||
Week 7 (2) | Automate usage of the Arduino CLI for accessible deployment. | Clean up the code. | Finish schematic including documentation | Build schematic on breadboard | Test all inputs and outputs to ensure they work | |||
Week 8 (2) | Deploy code to the prototype. | Test the code on the hardware again. | Modify schematic design | Create initial software for interpreting button presses | ||||
Week 9 (3) | Finish the basic mathematical functions (e.g. addition, multiplication, etc). | Begin researching more advanced mathematical functions (starting with trigonometry). | Start work on a basic sine wave generator for generating graphs. | Test interoperability with calculator software | Research PCB Creation | Convert Schematic to PCB and order PCB and Components | ||
Week 10 (3) | Write code for many more math functions. | Perfect the sign wave generator. | Create Case Design | Research basics of solidworks | Continue learning solidworks | Finish learning solidworks | ||
Week 11 (2) | Continue improving the config provider, making remapping keys easier and possibly allowing for text-to-speech configuration. | Continue tuning Espeak settings for optimal math reading. | Make a practice part to learn how to use solidworks | Sketch out 2d view of calculator | ||||
Week 12 (2) | Improve upon trigonometric functions. | More code cleanup. | Make a prototype case with pcb, battery, and other components to ensure it fits | Print out test to see if there are any mistakes to fix | ||||
Week 13 (2) | Test the code on the hardware again. | Work more on the mathematical functions. | Test assemble the part | Finish part assembly | ||||
Week 14 (2) | Explore audio effects such as EQ for enhancing speech quality. | Implement more math functions. | Create buttons | Research ways to use button design to communicate function with braille | Create and print test braille in solidworks | |||
Week 15 (3) | Implement necessary fixes for battery life. | Fix any bugs in the implementation of math functions. | Refine design of braille | Create buttons with different shapes and test how well they fit on buttons and in the case | Refine buttons design and fit | |||
Week 16 (2) | More bug fixing. | Use my sign wave generator to give the buttons even more feedback. | Solder and assemble the ordered PCB with required components | Finish assembly | ||||
Week 17 (3) | Fix anything necessary to make the code work on the protype. | Optimize the code by removing unnecessary dynamic memory allocations and inlining loops. | Create functional prototype | Modify software to run on new prototype | Identify issues with it and fix low level software if needed | Test calculator to ensure high build quality | ||
Week 18 (2) | Polish the code. | Test final code on the prototype. | Print out case and buttons and assemble | sand anything that doesn't go together | Start presentation | |||
Week 19 (3) | Make any necessary optimizations for battery life. | Begin work on presentation. | Test battery life and fix as needed | Continue presentation | ||||
Week 20 (2) | Make the table board. | Finish presentation | Polish website for public viewing. | Finish documentation for servicing | finish presentation and poster board | |||
Stretch Goals | Replace arrows with 3DS Circle Pad to navigate. Would require both hardware and software changes to be implemented. This would allow better control of the graphing utilities | Replace arrows with 3DS Circle Pad to navigate. Would require both hardware and software changes to be implemented. This would allow better control of the graphing utilities |