The Dles
by: Eli Smith
Inspiration
My friends and I love playing puzzle games together because for us, the mental challenge is fun. After playing some puzzle games we came across a new word game, called Wordle. This game had a daily word in which you had limited tries to guess, and because it reset daily, we were able to play it together everyday. This led us down a rabbit hole of what we now refer to as "The Dles." These are all various daily puzzle games which we sit down and play together most days. This is what led me to have an idea to make my own games in this style from scratch.
What it does
The device that was created allows someone to play both the Wordle guessing game and a song guessing game, referred to as Musedle, anywhere anytime. Currently the libraries of words and songs to guess are somewhat small, but adding more is simply a few more lines of code. By importing a dictionary library and music library, the possibilities for guessing are almost endless, and all you need to play the games is a couple AA batteries.
How I built it
This was built around the star of the show, the Raspberry Pi Pico, which is a microcontroller. By setting up USB communication with the Raspberry Pi Pico, communication between the computer and Pico was flawless, allowing for easy and nearly instant flashing of code to the device. All of the code written for this is in C, as it is my preferred language for microcontrollers. Putting the Pico onto a breadboard allowed for it GPIO ports to be utilized fully. The total breadboard setup used 4 buttons, 5 of each red, yellow, and green LEDs, an LCD display, and a passive speaker. By configuring the LEDs, LCD, and speaker as outputs, and the buttons as inputs, the full system is able to interact to produce a wanted result.
Challenges I ran into
One of the biggest problems with creating projects from scratch in C, is having to set up functions to initialize all the hardware. This was the biggest challenge that I faced, as it has been a while since I worked with so many different components in C. The majority of the time used for initializing was spent trying to initialize the LCD display as no matter what I did, it didn't seem to want to compile correctly. After a long time and a lot of trial and error, I realized I didn't have the correct header file to allow me to start even thinking about initializing the LCD. After I got that installed, some things had to change, but it was mostly smooth from there, excluding some random bugs which were later fixed.
Accomplishments that I'm proud of
The main part of this project I am proud of is getting a fully functional Wordle game. Up until around 11am Saturday morning, I still hadn't really decided on an idea and has considered cropping as it seemed kind of late to start, but then the idea of "The Dles" popped in my head and I decided to try it out. From there it was non-stop work up until about 8am Sunday morning, just 2 hours before the project was due. I had worked through all the bugs and got Wordle and Musedle to be fully functional. So really I'm most proud of the fact that I even tried in the first place, and stayed committed to getting it done.
What I learned
One big thing I learned throughout this project is that there are not a lot of C header files or libraries that are open source and easily available. If there were, I wouldn't have had to do so much from scratch, and rather build off of and use a pre-existing library.
What's next for The Dles
As shown in the image above, there are an insane amount of jumper wires routed along this breadboard, almost to the point of blocking access to certain components. I would like to fix this by making a PCB for the Pico to plug into which has LEDs, buttons, multiple speakers, a large LCD display, and somewhere to attach batteries, which would allow for full remoteness and even more of "The Dles" to be created, which allows for plenty of growth and experimentation on the project. By simply making a PCB and 3D printing an enclosure, a full system can be made which can be widely available to anyone to purchase. Furthermore, since the repo is public, anyone can access and flash new bug fixes or major updates anytime to their own Dle Board. With enough polishing I could see this becoming semi commercial for both recreational use and teaching purposes.
Built With
- c
- raspberry-pi-pico
Log in or sign up for Devpost to join the conversation.