Sudoku Game
Play sudoku using a Raspberry Pi Pico 2W and a keyboard module
Author: Laura Florentina Sandu
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-laurasandu13
Description
My project makes it possible to play Sudoku by inputting the numbers and moving from one cell to another by using a keyboard module. The game is visible on a webpage on an older phone. Games are previously added and players can choose what difficulty to play. Players will be able to start a new game, input numbers, use the undo and redo operations and check if their answers are correct.
Sudoku is a logic-based, combinatorial number placement puzzle. The objective is to fill the 9x9 grid with numbers so that each column, each row, and each 3x3 subgrid contain the numbers from 1 to 9 without repetition.
The game helps with cognitive stimulation by improving memory, concentration and logic, and also provides a calming effect and a sense of accomplishment.
Motivation
I have been playing Sudoku on and off since I was a little child, and over time, it became one of my favorite comfort games to play. The game is pretty easy and straightforward, and I thought it would be perfect to make it the subject of my project.
Architecture
Log
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
- Raspberry Pi Pico 2W - main microcontroller used for game logic
- Raspberry Pi Pico - debugger
- Keyboard module - number keyboard used for input and other controls
Schematics
Bill of Materials
Device | Usage | Price |
---|---|---|
Raspberry Pi Pico 2W | The microcontroller | 39.66 RON |
Raspberry Pi Pico | The debugger | 30 RON |
Keyboard module | Input and other functionalities | 18.44 RON |
Total comes up to 88.1 RON.
Software
Library | Description | Usage |
---|---|---|
embassy-time | used for timekeeping, delays and timeouts in embedded systems | syncronization |
embassy-usb | async USB device stack for embedded devices in Rust | connectivity between pico and laptop |
embassy-net | no-std no-alloc async network stack, designed for embedded systems | networking |
cyw43 | Rust driver for the CYW43439 wifi+bluetooth chip | display of sudoku game on website |