C-Zero the bipedal BottleBot
So, now that I've built a couple of bots, I thought I'd try making one of those Bottlebots that they have on TV, you know on that program where they fight? What's it called? Let me check Google... b-A-ttle bots? WTF? And, what? It's been cancelled for like a decade?
...Well, I made this anyway... so I guess I'll enter it into Chickenparmi's Scrap Bin Challenge...
So, this is what I cooked up for Chickenparmi's challenge. I kind of have a coke zero addiction and have a lot of coke bottles around... So I thought I'd try to make something with them.
Predictably... I made a waddle type biped. (Yeah, yeah. I'm going to make something different! Once Gutsy is done...)
C-Zero is made with the following non-electronic parts:
- 3 x 1.25l Coke Zero bottles
- 4 additional Coke bottle lids
- 1 mint tin
- 3 ice-cream sticks (the wide variety)
- Cardboard from some flat-packed furniture packaging
- A couple of coins for weight
- Some blu-tak for the coins
- Lot of hot glue!
Then, the electronics consist of:
- 3 x 9g servos
- 1 Arduino Nano clone
- 1 mini-breadboard
- 1 SR04 Ultrasonic Sensor
- 1 tiny piezo inducer for sound
- 2 x 2xAAA battery holders
I reckon all up, the bits would cost around $25 (maybe up to $30). These were bits I had around the house from a while ago, so I'm not sure of their cost now.
Also, this was the very first time I used a hot glue gun!!! I have no idea why I waited so long. I'm literally in love with it. It is so useful and amazing. I will be using it a LOT from now on... HOT GLUE, I LOVE YOU!
C-Zero only does 2 things at the moment. He will walk forward, and he will play sounds while he's walking.
The note that he plays is based on the reading from the ultrasonic sensor, so it varies depending on what he's seeing. It's kind of retro sounding and sounds like some sort of crazy robot music. I kind of like it. (In the video, I play him like a robot theremin. :P)
I did tests and he is capable of moving backwards and turning. However, I didn't have time to get him avoiding obstacles. My existing code from Q*Bot and Duckling didn't work so well since C-Zero twists the sensor a lot, so I will need to change the code so that he is smarter about when he checks the distances... With the code as is, he was seeing a wall in my corridor all the time and was turning to avoid non-stop... So, for now (at least until I'm finished with Gutsy), he will just be walking and making varying sounds.
While his twisting meant my old code didn't work, it also opens him up to a scanning style algorithm where he checks where he wants to go and then turns towards there. So I will come back to him at some point to see what I can get him to do with some more time.
His movement is not precise at all! So, he will either need to correct a lot, or keep to entertainment functions.
I'm happy with what he does for now. It's kind of fun to watch and I'm surprised this pile of junk (literally) can actually walk.
So, onto some build details!!
1. First things I made were the legs. They are the basis for a waddle-style walker as I tend to check balance, etc throughout the build/development.
I cut off the tops of coke bottles for legs, and cut an angle into them to make them slanted feet. I did the slant angle by eye and tried to make the two legs the same.
I then traced the foot shape from the bottle, and cut out stacks of 4 cardboard semi-circles to reinforce the leg. After adding these, the legs are pretty solid and stable (while being very light! Lighter than my 3D printed stuff. Too light, in fact, as I discovered later...)
As I mentioned earlier, this was the first time I used hot glue... Umm... Handy tip... Don't put Hot Glue straight onto coke bottles... it melts and shrivels up! :P I ended up putting the glue on the cardboard, letting it cool for a little bit, and then adding the coke bottles. That worked. Since I was working with trash... I had plenty of spare material to use after I killed one of the coke bottles I had cut.
2. Next, I hot-glued servos to the legs, and then glued the servos to a mint tin that I had.
I poked around the house for objects that were the right width apart for my coke bottle legs, and the mint tin seemed to do the job while being light and sturdy. (I need it sturdy as I don't want this part to bend. The waddle walk needs the body tile to lift up the other leg. I didn't want it to sag, etc.)
3. Next, I glued another servo on top for the torso.
For the torso, I'm using another cut up and reinforced coke bottle top - identical to the legs.
I actually had this spare one lying around. This was a reject one since it didn't match my first leg... so I made a 3rd leg, and was going to chuck this. But then, it seemed ideal for the torso, so I got to use it in the end. :D
4. As the intent is to use the turning torso to shift the bots body weight from leg to leg, I needed to "unbalance" it some how so that the turning motion will shift the weight.
I added some arms made out of ice-cream sticks. These arms are super light and don't have enough weight to tilt the body. I'll stick the batteries onto the arms later to add the necessary weight. (And tune their position, or add extra weight as needed...)
That's it for the body! It's time to add the electronics.
5. I hot glued the piezo inducer to the top of the head, hoping to use the head as a resonator. It does make it louder, but not by much... :( I probably should have used a larger inducer. Live and learn.
The ultrasonic sensor is held by fricting in the face plate. Clear head means my shoddy soldering is on display for the world to see. /(^_^;)
I made a hold at the back for all the wires to come out of the head.
Also, I stuck the battery holders onto the arms (with hot glue, what else?), and wrapped the wires around the arms, soldered the wires needed to put the 2 holders in series, and then extended the other wires so that they can get to the microcontroller while having around slack for the turning motion.
6. I put the Arduino Nano on a mini-breadboard, and stuck it on the mint-tin, on the robot's backside.
7. With my new best friend, hot glue, I glued down the servo connectors in a near arrangement to make it a break-out panel with sockets for connecting the servos to the microcontroller's breadboard.
Also, on the other side (right hip), I hot-glued down the cables from the head to anchor them so that the turning torso wouldn't loosen the wires in the breadboard.
8. After some testing, I found that I needed to add some extra weight to the heels, and it also helped to add some "toes" to the front to help him stay standing. The swinging torso/arms tended to pull him forward, so the toes helped.
The Finished Bot
Here are some photos of the finished C-Zero from various angles. Thanks to hot glue, I was able to keep him fairly neat and tidy even though he's made out of junk.
Building C-Zero was fun but challenging. I realise now that I am quite reliant on my 3D printer, as it makes life really easy... you want a part, you design it and print it... Piecing something together from scraps was challenging as it involved searching for bits and making compromises on things that were close enough. At the same time, because of those same reasons, the bot grows organically and what you end up is kind of a surprise! :D
I found I needed to spend a lot of time tuning him to get him to walk. Adjusting weights, tweaking the servo angles/movements. (My 3D printed bots mostly worked right away more or less.)
Also, I set myself a goal or trying to keep the costs as low as possible, and trying to see what a minimal biped was like.
Another big plus was that I got really familiar with hot glue. Working with junk, I was quite blasé about using it and just trying it (thinking that I'll just chuck it and redo it if I screw up). That's something I'll keep using from now on. :)
Definitely a fun challenge, and one that forced me to work in new ways and play with different materials! Thanks for issuing it Chickenparmi!!