Skip to content

Commit cec5ee0

Browse files
authored
Project/edis.suliman (#989)
* edis.suliman M1-documentation * removed big image * actualy removed big image * added schematic * made schematic smaller * fixed error misspelled-file
1 parent 3b636b8 commit cec5ee0

2 files changed

Lines changed: 102 additions & 0 deletions

File tree

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Wordle
2+
A Rust-based embedded implementation of the popular word-guessing game.
3+
4+
5+
**Author**: Suliman Edis \
6+
**GitHub Project Link**:https://github.com/UPB-PMRust-Students/proiect-Edis9955
7+
:::
8+
9+
## Description
10+
11+
The project replicates the popular Wordle game developed by the New York Times, implemented using Rust on embedded hardware. Players must guess a secret 5-letter English word in 6 tries, receiving feedback on each guess through color-coded hints:
12+
13+
Green: Correct letter in the correct position
14+
15+
Yellow: Correct letter in the wrong position
16+
17+
Gray: Letter not in the word
18+
19+
## Motivation
20+
21+
This project is a nice first dip into the world of embedded systems. Wordle is a simple but engaging game, making it a great candidate to explore user interaction on low-power hardware while familirizing myself with Rust in an embedded environment.
22+
23+
## Architecture
24+
The core components of the project architecture include:
25+
26+
Game Engine (Rust): Handles word selection, guess evaluation, and game logic.
27+
28+
Input Handler: Receives user input from a connected keypad.
29+
30+
Display Driver: Outputs the game state on an LCD using color indicators.
31+
Architecture Overview:
32+
33+
[Keypad/Touch Input] ---> [Input Handler]
34+
|
35+
v
36+
[Game Logic Engine]
37+
|
38+
v
39+
[Display (ILI9341)]
40+
41+
42+
## Log
43+
44+
<!-- write your progress here every week -->
45+
46+
### Week 5 - 11 May
47+
48+
### Week 12 - 18 May
49+
50+
### Week 19 - 25 May
51+
52+
53+
## Hardware
54+
The project is built on a Raspberry Pi Pico platform with peripheral components for input, output, and storage. The display provides visual feedback while the keypad serves as the main input method.
55+
### Schematics
56+
<!-- ![KiCAD Schematic](kicad_img.svg) -->
57+
![KiCAD Schematic](proiect_wordle4.svg)
58+
59+
### Bill of Materials
60+
61+
<!-- Fill out this table with all the hardware components that you might need.
62+
63+
The format is
64+
```
65+
| [Device](link://to/device) | This is used ... | [price](link://to/store) |
66+
67+
```
68+
69+
-->Tastatura matriceala 4x4
70+
71+
| Device | Usage | Price |
72+
|--------|--------|-------|
73+
| [2 x Raspberry Pi Pico 2W](https://www.optimusdigital.ro/ro/placi-raspberry-pi/13327-raspberry-pi-pico-2-w.html?search_query=raspberry+pi+pico+2w&results=26) | The microcontroller | [79 RON](https://www.optimusdigital.ro/en/raspberry-pi-boards/12394-raspberry-pi-pico-w.html) |
74+
[Raspberry Pi Ecran LCD ILI9341](https://www.bitmi.ro/module-electronice/ecran-lcd-ili9341-cu-touch-si-slot-pentru-card-sd-2-4-10797-bitmi-ro.html) | Display | [67 RON](https://www.optimusdigital.ro/en/raspberry-pi-boards/12394-raspberry-pi-pico-w.html) |
75+
[Breadboard](https://www.bitmi.ro/module-electronice/ecran-lcd-ili9341-cu-touch-si-slot-pentru-card-sd-2-4-10797-bitmi-ro.html) | 2 x Breadboard | [7 RON](https://www.optimusdigital.ro/ro/prototipare-breadboard-uri/13249-breadboard-300-puncte.html?search_query=Breadboard+300+puncte&results=1) |
76+
[4x4 input keypad](https://www.bitmi.ro/module-electronice/ecran-lcd-ili9341-cu-touch-si-slot-pentru-card-sd-2-4-10797-bitmi-ro.html) | keypad | [7 RON](https://www.optimusdigital.ro/ro/senzori-senzori-de-atingere/470-tastatura-matriceala-4x4-cu-conector-pin-de-tip-mama.html?search_query=Tastatura+matriceala+4x4&results=2) |
77+
[wires ](https://www.optimusdigital.ro/ro/fire-fire-mufate/12-set-de-cabluri-pentru-breadboard.html?search_query=fire+breadboard&results=58) | wires for breadboard| [8 RON](https://www.optimusdigital.ro/ro/senzori-senzori-de-atingere/470-tastatura-matriceala-4x4-cu-conector-pin-de-tip-mama.html?search_query=Tastatura+matriceala+4x4&results=2) |
78+
[mother-father wires](https://www.optimusdigital.ro/ro/fire-fire-mufate/878-set-fire-mama-tata-40p-30-cm.html?search_query=fire&results=426) | wires for display | [ RON](https://www.optimusdigital.ro/ro/senzori-senzori-de-atingere/470-tastatura-matriceala-4x4-cu-conector-pin-de-tip-mama.html?search_query=Tastatura+matriceala+4x4&results=2) |
79+
[usb cable](https://www.bitmi.ro/module-electronice/ecran-lcd-ili9341-cu-touch-si-slot-pentru-card-sd-2-4-10797-bitmi-ro.html) | cable | [7 RON](https://www.optimusdigital.ro/ro/senzori-senzori-de-atingere/470-tastatura-matriceala-4x4-cu-conector-pin-de-tip-mama.html?search_query=Tastatura+matriceala+4x4&results=2) |
80+
81+
82+
83+
84+
85+
## Software
86+
87+
| Library | Description | Usage |
88+
|---------|-------------|-------|
89+
| [st7789](https://github.com/almindor/st7789) | Display driver for ST7789 | Used for the display for the Pico Explorer Base |
90+
| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display |
91+
| [rand](https://crates.io/crates/rand) | Random number generation | Random word selection |
92+
| [colored](https://crates.io/crates/colored) | Terminal color output | Color-coding of letters |
93+
| [display_interface_spi](https://crates.io/crates/display-interface-spi) | Inteface for display | using the display |
94+
95+
## Links
96+
97+
<!-- Add a few links that inspired you and that you think you will use for your project -->
98+
99+
1. [New York Times Wordle](https://www.nytimes.com/games/wordle/index.html)
100+
3. [ILI9341 Driver Resources](https://docs.cirkitdesigner.com/component/b6591399-68e1-49f4-b5f6-0d512e7af130/ili9341-tft-display)
101+
4. [Raspberry Pi Pico Documentation](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html)

website/versioned_docs/version-acs_cc/project/2026/edis.suliman/proiect_wordle4.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)