Mastermind was one of my favorite games growing up and I wanted to recrate it with my own twist. I wanted to build something that not only Honored Mastermind but also included something that I love. This is when I got the idea of putting Mastermind and Arduino together.
What it does
ArduinoMind is my version of Mastermind. Mastermind was originally a two player game where one person makes a secrete color code and the other player tries to guess it by only being told what about his/her guess was correct, correct but in the wrong spot, or wrong. Although ArduinoMind uses the same overall idea there are a couple of changes. The first major change is you no longer need two players to play. The second and largest change is rather than a color code it is a random resistance applied to a LED varying its brightness. By using a resistance rather than a color code this project now also teaches how different resistances affect your circuit, this is useful as determining the amount of resistance can be one of the hardest tasks when making a circuit and because of this project the user now gains a better understanding of resistance.
How I built it
ArduinoMind is build completely on an Arduino and involves a LCD that in combination with the buttons acts as a GUI for the user, a 10k potentiometer that allows the user to change the contrast of the LCD screen depending on his/her preferences. Finally, I have also included a LED which allows the user to see the brightness that they are trying to guess.
Challenges I ran into
- Having access to a limited amount of hardware parts - Constantly checking if a button was pressed without overheating my Arduino - Working with interrupts for the first time
Accomplishments that I'm proud of
- Having a finished project - Learning how to use interrupts - Finding workarounds for not having access to hardware parts
What I learned
Over the course of this hackathon I was able to learn how to use a soldering iron and interrupts in order to enhance my overall project.
What's next for ArduinoMind
- Adding the expected life of an LED given the random resistance - Adding more games using the same principles such as High Low - Making it Multiplayer
- Transferring the hardware to a IOT bored so that anyone can play with people all around the world - Incorporating memory management using better pointers and better variable usage