Champaign-Urbana Community Fab Lab
Champaign-Urbana Community Fab Lab

INFO 490 Project 7 – Arduino Locomotion

For this project, we were tasked with creating a moving robot out of popsicle sticks and pompoms, powered by an Arduino and some servo motors. I’ve been working with Arduino since middle school, but have never actually tried to make anything moving, so this was going to be a fun experience. Going into this project I did a bunch of thinking about how movement actually occurs, and a rough design of how I can create a moving robot. After moving around the Fab Lab for a bit at a very slow movement speed, and carefully observing exactly what my body was doing during movement, I figured out the bare minimum I would need to get something resembling “movement” happening.

I got to work on programming the Arduino with two servo motors – one for a “front leg” and one for a “back leg”. I simply just took the Sweep example, and modified it slightly so that I could have two servo motors attached. This was fairly easy since, as I mentioned, I’ve been working with Arduino since middle school, and 3 years of college level programming definitely helps as well.

Got two servos working!

I then moved on to making the frame of the robot itself. I decided I wanted a “middle body” for both of the motors to attach to, and to have to identical “arms” for each of the motors.

Gluing the servo horns to some popsicle sticks.

Putting the rest of the body together!

One of the biggest things I noticed about movement is that it’s necessary to have something very heavy with a lot of friction that can be used to propel an object forward – for us humans, our legs do just that. I knew I wanted one leg that was heavier and “stickier” than the other one, and one that was lighter and “slipperier” than the first (kind of weird terminology, but bear with me). I doused one leg in a huge glob of hot glue to give it weight and more friction, and I just glued some pom poms to the other leg to give it less friction.

Pom poms and hella hot glue!

From this point on, all that was left to do was tweak with the code to make sure the servos had the proper ranges and rates of motion. I found that, due to the design of the main body, I could only get ~60 degrees of motion in either of the legs, and I wanted the heavy anchor leg to have a bit of a snappy/jerky movement so that it could “step” forward.

Believe me, it’s moving! (It’s almost like trying to get a picture of a cat)

 

Something I thought was interesting was that the robot was moving in the opposite direction that I was hoping it would move, but other than that it actually worked!

Video!

I’d say this was a pretty fun project, again not very difficult but kind of rewarding. It’s been a while since I’ve had to think about anything mechanically in this much depth, so it was nice to get to experience that again. To harp on it again, the software wasn’t terribly difficult since I’m a very experienced user, but it was definitely a welcome break from the humdrum of school. I’d say in terms of knowledge this was probably the second easiest project (second only to the paper circuits), and in terms of technical difficulty it was also fairly low on the scale (maybe third, not sure). This project definitely took the most planning and thought, since it was necessary to measure out the physical dimensions of everything and plan how to build it so that it would move it a certain way. All in all, a nice, simple project that would be fun for almost everyone (I’m saying “almost” just as an insurance policy in case anyone doesn’t like it – I see no reason why anyone wouldn’t like it!).