This week, I focused on three major subsystems: Raspberry Pi audio narration, synchronization between the website and Raspberry Pi, and user interface finalization for both Challenge and Standard Modes. Each component has been implemented and tested.
- Raspberry Pi Audio Narration: I made an attempt on implementing the speech functionality using pyttx3 on the Raspberry Pi after confirming that previous options such as espeak-ng and Google Cloud TTS were not viable. The audio narration still had some issue and Vicky took over.
- Website-to-Raspberry Pi Synchronization: I took over from Vicky and worked on the website-related tasks. I developed a complete data pipeline that allows the Raspberry Pi to download new CSV files from Google Drive, parse the contents, and append only new questions to the local questions_and_choices.json database. This process avoids duplication by checking previously synced filenames. I also categorized questions upon import and ensured filtering logic, particularly for the new “Customization” category, was respected during gameplay.
- Standard Mode Customization Integration: I created a new “Customization” category and implemented the filtering logic so that only relevant questions appear when this category is selected. I also built a new page to handle this mode in the same structure as the existing standard gameplay. I confirmed that questions in this category render correctly and are narrated on the Raspberry Pi.
- Challenge Mode UX Improvements: I finalized the post-game flow by adding a screen prompting users to either exit or continue. If “continue” is selected, the previous score is preserved and the game resumes; if “exit” is selected, the user is redirected to the candy selection screen. I also added logic to automatically return to the home screen if the score reaches zero. It works the same as the standard mode.
- Hardware – Aesthetic Polishing: I painted the outer wooden structure of the vending machine to give it a clean and arcade-like appearance for the demo and final presentation.
I am currently on schedule with my contributions and slightly ahead in some areas. There are no outstanding tasks from this week, and no additional catch-up work is needed at this time.
In the upcoming week, I plan to do the following:
- implement the logic for generating a QR code that links to the website and allows users to download question sets and assist with deploying the website to support this functionality
- begin preparing our final presentation slides and submit them for review and feedback by Tuesday and Wednesday.