Project Level: Advanced
In this class, you will implement a fully working game of Simon using an Arduino UNO, RGB LEDs and buttons. You will implement all the code yourself using nothing more than the basic Arduino libraries. With minimal abstractions, participants will be exposed to how software interacts with electronics. While implementing the game we will learn how to create data structures and how to use state models. These are key concepts to implement larger and more complicated applications.
Technologies to be Learned:
- Brief introduction to electronics involved in the project (voltage, resistance, current, LEDs, micro-controller and an explanation of GPIO)
- Controlling digital outputs from a micro-controller.
- Using pulse width modulation to mix colors on an RGB led.
- Multiplexing multiple LED outputs.
- Reading and debouncing digital inputs
- Designing and using a state model to implement game logic.
- Creating data structures to store game state.
- Comfortable writing simple Java or C/C++ on your own
- Good understanding of basic programming control structures (if/then, for, while)
- Good grasp of functions and objects
- A laptop with at least one USB port available and working