CalcVox: Bridging The Gap in Mathematics

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