Team Status Report 04/12

This week, our team made progress on multiple fronts despite facing some initial setbacks. We successfully developed a 9×9 capacitive touch grid with an extended border to improve wiring separation and structural rigidity. Though we tested 1/16-inch acrylic as a top layer, it required too much pressure for consistent readings, so we plan to revert to a thinner material. Unfortunately, one MPR121 IC was shorted during testing, and we’re waiting for replacements. On the software side, we implemented an enhanced hint system that highlights existing numbers in the selected cell’s row, column, and 3×3 grid, added footnote functionality for tracking potential candidates, and created real-time explanations of hint logic in the terminal. We also developed a side UI panel with placeholder sections that will improve the user experience and fits within projection width constraints. Moving forward, we plan to rebuild the touch grid, expand the UI with a zoomed-in cell view, add on-screen explanations for Sudoku constraints, create an introductory guide, and determine how to implement different functionalities in the side panel.

Winstone’s Status Report 04/12

This week I spent time working on a side UI that we could use for different purposes such as displaying a home screen, displaying options, or showing more details for hints on specific cells. I was sick most of the week, so I was unable to progress as much as I had hoped to, but I was able to create a side panel next to the Sudoku board with a few displays that are non-functional.

The side panel I created has a simple layout with placeholder sections that can be customized based on what we decide to show there. I added some basic styling to make sure it matches the overall look of our Sudoku game. I made sure the side screen doesn’t take up too much screen space and will fit into our projection width. I will have to discuss with the team about how we would want to implement the side UI for different purposes before I can progress further. Specifically, we need to decide if we want the panel to change dynamically based on game state or if we can use our numpad for different functions.

Winstone’s Status Report 04/05

This week we had our demo days to showcase what we have created so far. In terms of design, our current system is bare bones and not cohesive, but the core functionality of all the parts have been implemented. On the hardware side, the capacitive touch sensor is working, and the numpad and projector can communicate with our software. However, we do need to continue integrating additional features onto our software. Our hint system is not where we want it to be at the moment, as it only gives the user the answer to a specific cell.

Since last week, I spent more time on the hardware-software integration and finally got the capacitive touch sensor to communicate with the Raspberry Pi through Pygame. Now we no longer need the mouse and keyboard to interact with our Sudoku board. The capacitive touch sensor is used to select a cell and the numpad is used to enter numbers, delete numbers, and ask for a hint. I can now focus fully on just the software, and I’ve begun writing some code to have a multi-functional side screen next to the Sudoku board that we will use for displaying a home screen and options.

Team Status Report 03/29

Our team has made significant progress on our Sudoku project, focusing on integrating hardware and software components for a functional minimum viable product. The software development has advanced well, with successful integration of the Raspberry Pi and Sudoku board software, including numpad input functionality and code modularization for more efficient row and column readings.

On the hardware side, we built a 9×9 grid using wood, copper foil tape, and cardstock, and successfully connected both MPR121 sensors. However, we encountered a challenge with the cardstock, causing inconsistent sensitivity in the capacitive touch sensors. As a temporary solution, we’re keeping both grid components separate while designing a new enclosure with acrylic sheets and considering 3D printed clamps for better material stability.

Our testing of the system has successfully projected the Pygame display and adjusted visibility and alignment using a stand. While most software components are ready for demonstration, we’re still working on consistent operation of the capacitive touch sensors to replace mouse input with touch selection. We plan to meet another time before demo day to finalize the touch sensor integration and prepare for the demo.

Winstone’s Status Report 03/22

This week was dedicated toward getting our software and hardware components working together for a minimum viable product. After testing with the Raspberry Pi, I added to my code so that the Sudoku board would take inputs from the numpad. We were still having trouble getting the capacitive touch sensor to work consistently, so I could not test my code properly to get it to communicate with the Raspberry Pi and Pygame. We plan on meeting tomorrow before our demo day to work on this again and be able to select cells using the touch sensor instead of a mouse. Otherwise, we have put together the rest of our system and can begin final testing for our demo.

Team Status Report 03/22

This week, the team attended an ethics lecture and participated in red teaming with other groups. Through these discussions, we explored potential risks associated with our Sudoku helper system, particularly the possibility of users becoming overly reliant on automated solving, which could reduce problem-solving engagement within the Sudoku community.

In terms of hardware, we made progress on improving the accuracy and reliability of the capacitive touch grid. The initial interference issues were because of the use of packing tape as the dielectric material. After testing alternatives, cardstock was found to be the most reliable solution. Using the two MPR121 ICs, a 3×3 functional grid was achieved. The next step will be scaling up to a 9×9 grid and developing methods for processing input data from the MPR121 ICs to enable precise point selection.

On the software side, the team made progress in both Sudoku logic and interface functionality. Using Pygame, improvements were made to the grid system, input methods, and visual feedback, including cell highlighting and keyboard controls. In exploring Sudoku-solving libraries, we tested the py-sudoku package. This will allow dynamic puzzle generation and solving without relying on a static set of boards, reducing repetition for users. Integration of this solver with existing projection code is planned for next week.

Winstone’s Status Report 03/22

This week was focused on our ethics lecture and discussion and getting the solution solver portion of our system functioning.

After last week’s preliminary reading on ethics articles and answering questions, there was an ethics lecture this week to continue getting us to think about the potential impacts of our project. We had the opportunity to do some red teaming with another group, which gave us a wider perspective on how our Sudoku helper might have negative consequences. In particular, how people might become over-reliant on our system which could hurt the Sudoku solving community.

I also looked into potential Sudoku solving packages to use for our system. I began testing py-sudoku, which allows me to generate a random Sudoku puzzle of desired difficulty and create a solution to it. This would allow us to avoid having to store our own set of boards and create a mechanism to prevent repeating a board that the user may have already solved. I have not been able to successfully integrate the package into my existing projection code, but I will get that done next week.

Winstone’s Status Report 03/15

This week I worked on the ethics assignment, met with my team for initial testing and integration, and continued working on my projection code.

The ethics assignment was designed to get us to think about what kind of impacts our project might have in society or the environment. Even a seemingly harmless system like ours that is designed to solve a puzzle can have some kind of harmful effect. It was interesting to read about the hidden effects of a design in Winner’s article.

During our meeting with the professor and TA, we received feedback on our design report. For our final report, we should focus on our writing and expressing our idea better. During the week, we also met up to connect all our peripherals to the Raspberry Pi and run some of our preliminary code on it. I was able to test my projection code and it worked well. We did not yet have our capacitive touch sensor working, so the projection was designed to work only with keyboard and mouse. I was able to write some code that will include signals from the MPR121 (touch sensor), which I will have to test as soon as the touch sensor is operational.

Winstone’s Status Report 03/08

This week, I spent most of my time on working with my team to make final adjustments to our project design using feedback from the design presentation. We went more into detail on how each piece of the system will work as a whole. We focused on details such as the method of selecting a new puzzle with an intuitive user experience. Then, we wrote up our design report with our new design idea thought out. I created some diagrams to better explain our system processes.

Other than the design changes, I continued working with the Pygame library. Now, I can select cells on my board, which become highlighted, and enter a number from 1 to 9. Our projector finally came in this week, so next week my goal is to make it so that it can project the board instead of it just being on a window on my computer screen.

Winstone’s Status Report 02/22

This week was our design presentation week, which Michael volunteered to do. Our initial design changed quite a bit since our first presentation, so we focused on creating new diagrams that would make it clear how all the parts would work together. Class hours were dedicated to listening to other presentations and giving feedback on aspects of their design they can improve on, such as use-case and functionality. Everyone seemed to have taken in the feedback from the first presentation, as their designs were more functional and thought out.

My personal work went into focusing on the projection system. Last week, I had found the Pygame library to be the best option for me to work with, so I began testing some code after downloading the necessary packages. We still do not have the actual projector yet, but I wrote some code creating a new window with a blank Sudoku board on a computer. Based on what I found online, the projector we are looking at, the VANKYO Burger 101 Pico Projector, should work with the packages and Raspberry Pi.