Vicky’s Status Report for April 12

  1. What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).
    Audio narration fix: (Min Ji was working on the audio narration prior to this week and because she became stuck on the task, I took over the audio narration.) Confirmed espeak-ng on Raspberry Pi is installed and configured. Created Backend API Endpoint in server.js, added route /narrate to receive narration text from the frontend. Also I created NarrationControl.tsx that calls speakWithEspeakNg() and controls narrate time and content. Inserted narration state variable inside TriviaCard.tsx to ensure the screen does not respond to user touch until the narration is complete. video
    Ordered new coil, paint, and more compatible-shaped candy.
    Rpi Download:
    work together with Min Ji on rpi-download testing.
  2. Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?
    My progress is on schedule, I plan to implement my tasks according to schedule posted in team report.
  3. What deliverables do you hope to complete in the next week?
    Sound effects: when correct answer, wrong answer, game over, candy selection page, and candy dispense complete.
    Shopping mechanism: implement reduction logic eg. player has 40 points in total, can have multiple opportunities to select affordable candies such as 10+30 or 10+10+20

In particular, how will you analyze the anticipated measured results to verify your contribution to the project meets the engineering design requirements or the use case requirements?

Dispense: meets accuracy and time requirement in use case.

Webpage ux design: meets intuitive ux flow for user to input questions.

Audio: meets design requirements and achieves desired features in timing, voice type, clearness.

Vicky’s Status Report for March 29

This week:

  1. Machine fabrication: discussed and decided with team on the specific sizing of each wood panel (12 in total, include external front,back,top,bottom,right,left panels, internal vertical divider board, 2 horizontal level boards, 2 small vertical interval boards, internal back panel). Laser cut and assembled box (seen in team status report). Made 4 wire spirals to hold items to dispense.
  2. Dispense works: Rpi to Arduino I2C communication: wrote arduino code and wrote modifications to the React App in frontend “CandyDispensingScreen.tsx” and added I2C backend “server.js” in standard mode code directory for serial communication of the candy 4-types selection signal (rpi -> arduino) and dispense status signal (arduino -> rpi). Setup I2C dependencies on rpi.
  3. Screen attachment: 2 revisions of 3D print file for the screen holder. Modified holder’s middle gap(10mm->6.4mm) and print infill density (60%->80%) to allow secure attachment to machine. Reduced holder’s middle thickness (10mm -> 5mm) to fit screen into the cut-out opening on front panel.
  4. External speaker: Tested 3.5mm audio jacks on both rpi board and touchscreen, audio jack works on rpi but does not work on touchscreen, might be a touchscreen audio configuration issue (to be examined after interim demo).  Achieved successful and stable sound output by using bluetooth speaker paired with rpi. The gameplay’s audio output is not outputing like other general sound test examples and will be debugged further by Min Ji.
  5. Kiosk display: Used chromium zoom for successful full display of game screen.

Next week:

  1. Interim demo: prepare demo talk and record backup demo video before Monday.
  2. Webpage: fix database upload and rpi local download, (supabase -> google sheet upload) figure out how user can delete/clear chosen local rpi storage.
  3. Box upgrade: add lighting
  4. User engagement upgrade: add sound output and dynamic graphics (“congratulations! …”) at the end of game. Add dispense status message screen.

Vicky’s Status Report for March 22

This week:

  1. Gameplay: I fixed the local npm run issue on my end by modifying the vite.config file and my local npm vite setting. I continued working together with Min Ji on the standard mode testing on touch screen. I also updated the code base on rpi, and tested the challenged mode gameplay together with Fei.
  2. Web page: I updated the homescreen of the question custimization website, modified the input question and answer format, make sure it can be real-time transformed into a csv file ready for cloud upload / local download. I created a supabase project and linked the url and passkey it to the webpage react code. There is an row-level security issue that is blocking the page from writing to the database. I plan to resolve this by making an .env file with passkey authentication, connect the react app to a google sheet for read, and make authenticated user writes to it.
      
  3. Kiosk display: I set up the rpi system kiosk mode for general chromium websites view by making a runkiosk.sh script that makes rpi open chromium and go to a specific website, and editing rpi’s Wayfire initialisation file to make sure the script is opened once the rpi boots up. However this is not ideal to our current project position due to the website not deployed yet. I will swtich to single command-line browser kiosk mode for future gameplay views till we have a deployed site.
  4. Servo control: I finished writing the arduino program for the control of 4 motors and a test program where the motor to be turned (1-4) is entered in command line and the motor turns 360 degrees for a single dispense cycle. The servo motors’ setting was 0-180 degrees on both sides so making a 360-degree turn need to be done sequentially twice. Video
  5. Mechanical box design: I have discussed with Min Ji on the CAD design of the physical machine body. We have decided to not use screws but to use box joints to interlock the MDF boards since we now are using a thicker wood. We also clarified the inside compartment arrangement and how they will be connected to the outer panels.

Our progress is still behind in terms of integration. We plan to work on assembling the machine next week along with software further cleanup and debugging. For next week I am going to:

  1. Make the laser cut CAD files for the six outside panels and two compartment panels inside.
  2. Make the arduino work together with the rpi item selection signal and dispense.
  3. Glue the servo motors to wire spirals, make secure wire connection long enought to allow item refills.
  4. Work together with team on machine assembly.

Vicky’s Status Report for March 15

This week:

  • I finished the arduino control code for the arduino mega,  it takes input signals from 4 GPIO pins from the rpi4 that each carries information on which candy to dispense, type 1,2,3, or 4, and the aduino controls 4 rotational servo motors, if the input signal says type 1, then that corresponding servo motor rotates for 360 degrees and stops. the arduino sends a one bit output from another GPIO pin that indicates the rotation is complete.

  • ssh’d into the rpi4, pulled from git and tested the standard mode program on the rpi touchscreen with Min Ji. Test video availble in team report.
  • Created the starter react code for the web page under the “webpage_code” directory in our git repo and modified the interface for the game’s visual theme, modified vite.config.ts for it to automatically pop up on touchscreen,  modified TransitionLayout.tsx for our ux flow.
  • Merged the wepage repo and the standard mode code repo and fixed the local npm run issue for both gameplay and webpage.

Our progress is behind in terms of integration. We plan to work on software integration next week together with the physical build. For next week I am going to

  • Fix the audio narration web-run stuck issue on rpi screen together with Min Ji, and go through testing for the addition of candy selection and other screens.
  • Work on laser cutting and connecting the wood boards for the machine body together with team.
  • Assemble hardware connection of voltage down converter, motors, arduino, rpi, and screen.
  • Integrate cloud database user csv upload with supabase on webpage.

Vicky’s Status Report for March 8

This week I continued working to configure the rpi 4, setup the rpi headless connection and put in the default trivia question database and the python control code for the standard mode game. During touchscreen’s late arrival delay, I will continute to work on the arduino control for the servo motors and the website build. Our progress is slightly behind due to order delays and mismatches. We will shift our task orders and work on more meetings outside of lab sessions. For the next meeting, I hope to show the rpi standard mode interface as well as the arduino control test program for a generated dispense signal.

Vicky’s Status Report for Feb 22

This week I drew the hardware the block diagram with components and connections. I thought about our user interface and wrote some answers on our target play experience and the next steps in our work flow. I started working on the arduino control code for the dispensing mechanism of our machine, since this task is mostly separate from the game logic side. Our progress is on schedule but the team would like to work more on break to be prepared for any delay during the machine body build. For next week’s meeting I plan to have the rpi touch screen configured to display the basic mock text game, after that it needs to be integrated with the audio narration and modified for multiply game round mechanism according to our ux flow diagram.

Vicky’s Status Report for Feb 15

This past week I contributed to designing the details of our gameplay logistics (how the system tracks&calculates user points) and  the  putting questions into the trivia question database, making the slides for our deisgn review presentation, optimizing the laptop-mock visualization of the game interface for our presentation. The progress on Rpi testing is behind due to shipment but this time is being used to build the software and control side of our system. For next week I hope to have finished testing on the rpi board and have the reset and dispense signal generated correctly.

Vicky’s Status Report for Feb 8

This week I contributed to our team’s drafting of the proposal presentation slides, the modified gantt chart schedule, bill of materials, and preliminary separation of working modules.  I prepared speaking for our team’s proposal, created the git repository, and wrote a test program for the standard mode text game in both python(on laptop) and micropython(to be tested on rpi next week).  On schedule. I will synchronize with my teammates and work together on building the question database next week. Next week I hope to deliver the complete question database together with teammates, and present my progress on programming the rpi control for the standard mode game.