Inspiration

Our group wanted to create a hardware hack that was both educational, retro, and fun to build. Based on the hardware available to us in the provided Arduino Kit, we decided to pursue a word unscrambler game.

What it does

This is a word unscrambler game built into an Arduino. The game presents a scrambled word from a word bank and asks the user to unscramble it. The user enters the unscrambled word using telephone-style numeric keypad. Visual and audio feedback is provided when the user inputs the word correctly/incorrectly. The game has a built in scoring system that allows you to beat the game once you have unscrambled a certain number of words correctly.

How we built it

We first assembled the hardware setup consisting of an LCD display, a telephone-style numeric keypad, and a passive buzzer (speaker) connected to an Arduino UNO. We then coded the software logic for the unscrambler game using C++ and repl.it so that we could play the game on our laptop. We then ported the software logic over to the Arduino IDE and implemented the hardware-specific libraries so that we could play the game on our hardware setup. This involved using the "keypad", "LiquidCrystal", and "pitches" libraries for the keypad, LCD display, and passive buzzer respectively.

Challenges we ran into

We had quite a difficult time wiring together the circuit, as we had little to no experience working with the Arduino hardware. We had a very difficult time porting the software logic over to the Arduino. We did not consider the low memory capacity of the Arduino, and that we could not load many of the libraries we wanted to use for the logic of the game, such as the algorithm library for randomly shuffling the word in the word bank. We ended up creating a separate word bank of scrambled words using an outside tool with indices that matched up with the unscrambled word bank.

Accomplishments that we're proud of

Our team had little to no experience with Arduino hardware and Arduino programming, and we managed to create a fully functional hardware product and a fun educational game to play on it. Our team is especially proud of our logic to convert numeric input on a keypad to alphabetic characters to an entire string.

What we learned

Our team learned how to wire components to an Arduino, and how to program an Arduino so that it can run a fully functional educational game with limited IO options.

What's next for ScramDuino

We will create a multiplayer mode that allows 2 players to face off against each other and see who can unscramble the most words first. We will create a way for the user to specify how many words they want to unscramble successfully to win the game. We will find a way to code in a shuffling algorithm to the Arduino's limited memory so that the same words will be shuffled differently each time. We will 3D print an enclosure to hold all of our hardware and possibly add in a battery so that the game can become portable.

Built With

Share this project:

Updates

posted an update

After reviewing our video, I realized that we forgot to mention a few things. You can play to any score besides 2, we just picked that for demonstration purposes.

Some other functionality not shown in the demo: If you guess incorrectly, a different melody is played as well as an incorrect screen, and your score is unchanged. After the congratulations screen, you are given the option to replay the game all over again, which resets your score as well. If the user tries to enter a numeric code that is not bound to a letter (example code being '554' instead of '555' which equals 'L'), you will be given the option to enter a valid letter in the same cursor position, no bugs occur. One bug we were able to find was when you enter values on the keypad that are not accounted for ('1', 'A', 'B', 'C', and 'D'), a junk character pops on the screen. Luckily, there are no valid numeric codes that use those inputs on the keypad so you can't force a junk character to be in your word, letters only!

Our team would have had much more time to create a professional looking video if I didn't lose the entirety of the project info page after typing it up in full. If requested, I can create another demo video to showcase all of the functionality of our hack.

Thanks IEEE for putting on a great hackathon! It was my first, but definitely not my last!

Log in or sign up for Devpost to join the conversation.