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.

Winstone’s Status Report for 02/15

This week, I had been testing some code with OpenCV on a random Sudoku board image I pulled from the internet. I made the image grayscale and applied adaptive thresholding to make the text black and background white. I was struggling with isolating the Sudoku board and detecting each cell before our team dropped the image processing idea.

After discussion with our advisors, our team decided that the camera idea did not make sense for our use case. Rather, we would implement a capacitive touch sensor grid that would make the Sudoku board more interactive and intuitive. This would give our project more hardware complexity and on the software side, allow us to focus more on the unique part of our project: the hint algorithm and projection.

My focus shifted towards the projection implementation after dropping the CV aspect. I am now looking into using Pygame, which is a Python library that already has tools for handling graphics, animations, and user inputs. It works with Raspberry Pi and GPIO inputs such as our numpad and buttons and updates the projection in real-time when the user makes an input.

The social factor that our project meets is for physical and cognitive accessibility. Individuals who may have difficulty with fine motor skills such as handwriting will have an easier time interacting with our board, and those with visual impairments can see easier on our large board display. Our Sudoku algorithm is aimed to help people of all skill levels and teach users how to work through a Sudoku puzzle and improve their problem solving skills.

Team Status Report for 02/08

Over this past week, our team has made progress in researching what we need for our Sudoku solver, finalizing our hardware and software choices. We also changed our developmental approach after receiving feedback from our proposal presentation. Initially, we planned to put everything together at the end for our final product, but if this fails, then we don’t have anything. Now, our goal is to develop a minimum viable product as soon as possible and iterate from there. Once we order our parts and they come in, we will work together to get the hardware setup and then start testing the image processing.

On the hardware side, we researched potential display and processing options. The Vankyo Burger 101 is a compact and flexible projector for displaying the Sudoku board. For the Raspberry Pi, the Raspberry Pi 5 or Raspberry Pi 4 Model B are our likely choices for their HDMI output, processing power, and compatibility with OpenCV and Tesseract. We have begun initial setup and configuration for these boards, including writing pseudocode for pin initialization and display setup.

For software, we have started implementing the Sudoku solver using a backtracking algorithm with JSON input. The system tracks user moves with a history stack, allowing for undo functionality and input validation. A CLI interface is currently in place, with plans to integrate GPIO buttons for user interaction. Additionally, we researched image processing and digit recognition using OpenCV and Tesseract.

Moving forward, we plan to integrate the hardware components and test image recognition with real-world inputs.

Michael’s Status Report for 02/08

I have been researching projectors on Amazon and identified the Vankyo Burger 101 as a compact and flexible display option.

Also, I was working on the actual Software – my idea of the Sudoku solver is one which takes JSON input, solves puzzles via backtracking, and enables user interaction through GPIO buttons or a CLI. The core algorithm employs backtracking to recursively fill in missing values while ensuring valid placements according to Sudoku rules. The software maintains a move history stack to track user inputs, allowing for easy undo functionality. A keyboard or potentially for sake of testing, CLI interface enables direct input. In theory, the software also logs each move to prevent invalid inputs and help users navigate back to previous moves. I believe that the basic skeleton of the program should work in this way, and I will potentially be adding features as needed going forward.

Winstone’s Status Report for 02/08

This week was proposal presentation week, so we did some more research on what hardware and software we would use and finalized our idea. We prepared our presentation and decided I would present, so I spent a lot of time practicing. During class, we listened to other groups’ presentations and provided feedback. We also received some feedback and decided to shift our priorities and scheduling a bit to have a minimum viable product as soon as possible and continue developing iteratively.

Since I am in charge of the image processing and digit recognition, I looked some more into how OpenCV and Tesseract works. I do not have any computer vision experience, so these tools were new to me. Fortunately, Sudoku boards are fairly simple, so the processing seems straightforward. I would like to be able to test some code once we have our hardware.