Jake Hafele - Project Portfolio
My Goals
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!
The Process
At the start of this project, my main focus was to design how the different joints would connect to the servos. I ended up doing this by cutting out space for the servo horns to fit the joints, so the servos could screw in to them from one end. The other end had holes that would slot in to cylinders to keep the joint in place on the sides that didn't have the servos attached. This made for a very consistent way to connect the joints of the legs for the spider. I started with using three servos and joints for the spider, but later reduced it to two due to the servos not being able to support the whole spider when it was put together. I went through multiple iterations of condensing the legs, since the micro servos had neither enough power from the batteries or enough torque to support the movement I desired. I also made the base much smaller than my first design due to similar reasons. After the spider was designed, I worked on a CAD model for the wireless controller. This was a fairly simple design, but the cover took a little bit more time since I added some text and an inline symbol of a spider on it. After the physical design was done, I was ready to begin designing my software.

  This project involved many different programs to interface with the transceiver and servo modules. Many pieces of my code were test programs that I used to demo and try out the new electronics that I bought to work with my Arduino microcontroller. I first made a test send and receive function to verify the wireless transceivers could communicate. This acted as a call and response, and was set so one side sends the data, while the other takes the data in as the receiver. This brought some challenge in verifying whether my problems stemmed from hardware wiring or instantiating the code correctly, which taught me lots of useful debugging methods. I worked to isolate wires or pieces of code until the state of my receiver would change. Like my other projects around this time, I used a servo driver library with Arduino to control the movement of the legs. I then started working on the code for the wireless controller. This would send a number based on which button was being pressed once to the receiving side, so I could use a switch case statement to change the movements of the spider. Finally, I was able to start putting everything together.

  To begin, I attached the legs to the servos when they were positioned at 90 degrees, so I could move them both left and right 90 degrees in a full arc. I then soldered the Arduino nano, wireless receiver, and wires to the servo driver to the prototype board I used to be placed on the spider. After this was done, I mounted the prototype board to the base of the spider, after placing the battery packs on the base. As you can see in the videos, the prototype board sits right on top of the batteries compactly. The main reason for this was to reduce the overall area of the core center of the spider, to reduce weight. Once everything was put together, I started coding the movement for the spider. I wrote many helper functions to make this easier for me. One of the most interesting things in this project was how I achieved this, but watching YouTube videos of real spiders walking in slow motion! While this took a bit of time, it made me visualize the movement of the spider much easier. This was the last part of my project and by this point I was very happy with how the spider turned out. This design for the legs could be applied to spiders with more legs or other sensors, which could be useful for the future. I thought it was super fun being able to place the pocket spider on a table and have him move around freely of wires, unlike my previous robot arm project.

My Reflection
To conclude, I am really happy with how this project turned out. There was a lot of time spent on redesigning the spider and trying to minimize the size of it, but it was worth it in the end. I felt much more confident using servos after this project, and whenever I use them again, I believe it will be a lot easier. This was the last project to cap off my first year before I went back to school, and it was a great experience. These projects helped to keep me engaged and motivated in STEM while I was sent back home during the first rise of the COVID-19 pandemic. After finishing the Summer of projects, I went on to join the Solar Car team and learn how to design a PCB from some very smart peers. I sought out designing PCB’s because of how many errors I had in working with perf boards or breadboards throughout this Summer, and I can tell that it had paid off, looking back at my experience the last two years in Solar Car. Thank you for reading!