Jake Hafele - Project Portfolio
Tetris (Click here for more info)
This project describes my process in recreating one of the most iconic video games ever made, Tetris! I specifically wanted to use class inheritance to reinforce what I learned in my java coding classes in school. To do this, I planned on making a general class for the blocks and a specific class for each individual block. I wanted the controls to be done through keyboard inputs by the player, and a start, pause, and game over screen to make the game more accessible. To be more faithful towards Tetris, a score, level, and lines cleared tab will be needed on the sides of the main grid. The game will also display a next block and held block feature. These will be used to give the player some help with the game. Finally, I wish to make the resolution a moderate to small size so that the game could be more accessible. This project will be done in Processing, which is a Java tool that helps to make drawing shapes and objects much easier.

LED Cube
The first hardware project I ever created was a 4 x 4 x 4 LED cube. For this project, my main goal was to get more familiar with soldering electronic part, to be interfaced with an Arduino Uno microcontroller. I had never soldered before this, so I assumed that this would be the most challenging part of the build for me. I would have to solder together every LED and resistor, then wire them all back to the Arduino board to send different signals for the patterns. To do this, I would need to create a template to create one layer of the cube. After all the layers would be built, I would have to solder them together and wire it up to a perf board to make a more permanent and final structure. At each point, I would need to check to make sure each LED could light up after soldering the layers together with 5 volt and ground pins. After that, wires and resistors would be added to the board and the Arduino uno would be placed on the permanent. After that, I could use some test code I found online to test my cube and then create my own fun patterns.

Sound Reactive LED's
For this project, I created an LED array based on multiple rows of LED strips, that would react to a sound detection module attached to an Arduino Uno. The goal of this project was to get more comfortable using LED strips and an input sensor to process data. I ended up using a sound sensor for my input, since I could have the LED strips respond and light up to the music. I also used my Ender 3 Pro 3D printer to design the structure to support all of the electronics. Most of the circuitry will be done on a breadboard, with the tabs of the LED strips being soldered to wires, then going to the breadboard circuit. I also planned to make the design of the box practical enough to make the project easier to integrate.

Motion Controlled Robot Arm
For this project I designed a robot arm that mirrored the movements of my hand while wearing a glove. I wanted to gain a better understanding of using multiple analog inputs to control servos, and I thought an application of a robot arm would be interesting, combined with my 3D printing skills. These sensors would include a flex (resistive band) and motion sensor (MPU6050). The robot arm would be controlled by servos at four different joints, to mimic the movements of a real arm. A glove with both the flex and motion sensor were made to control the robot, with wires attached to them with enough length to allow full range of motion.

Spider Robot
In this project, I used an Arduino Nano microcontroller, servos, and wireless transceivers to create a small robot spider. This would be done by designing multiple parts of legs to connect to servos, that would act as joints. I also needed to design a base that connected the four individual legs and hold the Arduino and other electronics. I used a servo driver to control the individual legs with Arduino code and a servo driver library. I also designed a controller on a breadboard that would be used with wireless transceivers between the controller and spider. Two separate power supplies were needed on the spider, to power the Arduino and servos separately. I created the spider be able to move forwards, move backwards, turn left, and turn right. The controller had a total of 8 buttons, allowing me to program some other fun actions, like waving or doing a pushup!