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.

Moises Status Report for 02/08

This past week, I have been exploring various Raspberry Pi models that feature HDMI output capabilities and support multiple input options. I have identified two potential candidates: the Raspberry Pi 5 (4GB/8GB) and the Raspberry Pi 4 Model B. These models stand out due to their dual micro-HDMI output, sufficient processing power for handling multiple inputs, and strong community support, which makes development and troubleshooting easier. Additionally, both support OpenCV and other computer vision libraries, making them ideal for tasks involving image processing and real-time video analysis. I have also been learning how to set up these boards and have written some pseudocode for initializing pins and configuring the HDMI port for output.

Team F3: 9×9 – Introduction and Project Summary

9×9 is an interactive device that assists users in solving Sudoku puzzles by providing real-time hints and feedback, guiding them through the process to enhance learning and improve. The system features an overhead camera that scans a physical Sudoku board with computer vision, and then a Sudoku-solving algorithm will then determine possible solutions. From then on, users can request hints for specific cells or check their completed board for correctness. All information is displayed through both a projector, which overlays hints onto the physical board, and an LCD screen displaying the puzzle. Our system utilizes a Raspberry Pi to manage the algorithm and user interactions, and FPGA to handle hardware acceleration and preprocessing. Users interact with the system with buttons in order to navigate the game and request assistance along the way. Overall, 9×9 merges physical gameplay with digitally assisted aid, making Sudoku more interactive and accessible.