I decided to iterate my pombot from last week. I had made a skiing robot that pushed itself along on fork ski poles:
My plan for iteration had two parts. First, I wanted to add an ultrasonic sensor. The whole point of the robot is locomotion, which it can’t do if there is a wall in the way. So, I wanted to add a sensor and code to make it turn when it got close to a wall. My other objective was to make it look nicer, since part of the project was that the robot should look like the motion its emulating. For this I planned to give it a little skiing outfit with coat and hat:
I started by working to add the sensor. It was easy enough to write the code, harder to debug. Initially, I had some trouble getting anything except 0 from the ultrasonic. After adding print statements and rearranging, I figured out that it was a bad wire. Once I got it to read values, I had to get the bot to turn. My initial plan was to have only one arm rotate when the ultrasonic measured below a threshold. However, testing this on the original bot showed I needed to rethink a little:
It seemed like one arm wasn’t enough force to move the whole thing, so I changed the code to have the arms swing in opposite directions. This worked much better.
I worked off the same cup as the original, but made several changes. Most significantly, I changed out the forks because the original ones had random bits of wood on the bottom to make them taller. I also inverted the way the forks faced because it felt more stable that way.
I moved on to making the skiing outfit. I added a coat made of construction paper and a scarf made of fabric. Since the ultrasonic sensor already kind of looks like goggles, I put them in place of the eyes. Lastly, I made a little hat out of fabric. I didn’t attach the hat permanently because it got in the way when I needed to trace wires, so I didn’t want it to interfere until it worked. During this process, I also rearranged where the wires came out in the hope that they would pull back less. While thinking about the wires, I decided to make a sled, hoping that it could contain all the wiring that doesn’t fit in the cup.
Once everything was finalized, I did a bit more testing to see if my aesthetic changes affected how it worked. For better or for worse, the answer was no. My rewiring and sled didn’t fix the fact that the heavy electronic pull on the bot and stunt it’s progress quite a bit. This is why I’m holding the sled above the ground in the video. On the other hand, it still works even with new forks in a new direction, so at least it didn’t get worse. While testing, I was a bit frustrated trying to keep everything lined up correctly and sitting the right distance from the computer. Since I had a battery pack from a different arduino project, I disconnected from the computer and powered it with that. This had the disadvantage of making the electronics heavier but the advantage that it doesn’t need a computer to run.
At the end, I’m happy with my iteration. I think it moves just as well as the original but looks nicer and has more complexity. It was fun messing with the sensors and constructing the decorations, which were both things I thought about doing in the original project but didn’t have time to. I’m still a bit disappointed that the electronics present such a big barrier to it’s movement, but perhaps that can be worked on in the next iteration.