Introduction

In this blog, I will describe the process of my "Walking Robot"-project.
The aim of this project is to make a simple walking robot, with the Genuino 101. The robot will be able to walk, dodge obstacles and do some dance moves. The concept is based on an existing robot, called the ZOWI-robot (see image).


We will make use of following components:
* A Genuino 101, as the brains of the robot;
* An Adafruit board, to extend the Genuino for using multiple servo-motors;
* 4mm MDF lasercutted pieces, as the skeleton of the robot;
* 4 servomotors, as the joints for the legs and the feet of the robot;
* An infrared sensor, as the eyes of the robot.

These are the basic components to make a functional robot. We will later add some other pieces, to give our robot a more profound personality - a lasercutted head and hear, where we will put the eyes in, and a beating heart made of a red led and matte plexi glass.

I will describe the process as good as possible.

1. Assembling the skeleton

After we learned how the adafruit board works, and we got to know the components a bit better, we started with the mechanics of our robot.

We got a list of pre-fabricized lasercutted pieces, which together formed the skeleton of our robot.









We used the servomotors as joints for the body parts : 2 for the legs, 2 for the feet. We connected them with the adafruit board.





An important thing we had to take care of, was the angle of the servometer. We had to make sure that when we assemblied the leg on the hip, the servo was placed in 90 degrees ("the neutral/central point of the servo"). We did this, so that when we turn the joints, we wouldn't be pushing the limits of the servo, but stay right in the middle.




When we were more or less finished with the assembly of the body, we encountered the infrared sensor. Since this were the eyes of our robot, we decided to make a head, so we would turn him more human.





2. Creating a face

We spent some time in designing the right head. It should look human, but not too human - more like a gimmick of a person. Thereby there were also some more technical specifications: it shouldn't be too heavy (for the balance), and we had to think how the head connects to the body.



After we created our first paper prototype, we made a lasercutted MDF head. We optimized it a bit until it looked the way we wanted it to look.





We decided to go for eyebrows instead of a mouth, to give him a more innocent look. I also created a little mowhawk, in contrast with those  eyebrows.






















We were pretty satisfied with the result, so we decided to optimize the wiring.

3. Optimizing the wiring




















To optimize the fit of the wire to the board, we soldered little connection pieces to the wires. In this way, we were able to learn how to solder, as well as add some safety to the board (since we got rid of the exposed wire, by using shrinking material).

4. Making a beating heart

When we felt our robot come more and more alive, creating empathy towards him.

We first tried to make clothes for him, so the wires weren't exposed, and he could reflect his personality into his chloting. The problem was that the charm of the "robotishness" of the robot was hided, which a bit of a weird effect. The wires and the wood were the things which made him look so cute, so we decided to do something else: we got the idea of creating a beating heart.

We designed a heart-formed case, out of matte plexi-glass. In this case we will place a red led-light









We glued the pieces together, so it would form one heart.



The result looked really fine!




5. Finishing the robot

We connected the heart to a PWM-port, so that we could control the brightness of the LED-light. We wrote following piece of code which enabled us to let the heart beat:




































We change the brightness of the LED, between a value of 0 (OFF) and 255 (ON). First we fade from 0 to 255 - we increment with 10 (fadeAmount) every 10 ms. Then we fade it back, but not to 0, but to 50 - we decrease every 5 ms (so it goes faster). Right after that, we increment it back to 255 (the second pulse). Lastly, we slowly fade back to 0, decreasing it with 10 every 40ms.

Because we couldn't multithread with our arduino, enabling to set the function of the heartbeat, and the walking loop at the same time, we decided, to add another arduino (we used an UNO).

Since we didn't had a lot of time left, we taped our UNO at the back of the robot.



.

We placed the heart at te left-front of the robot, using double sided tape.





















We tweeked the infrared sensor, by placing it in a light angle, so he would see lower placed obstacles.









End product

After a lot of breaking things, and remaking things, we finally finished our robot. We were really happy with the result, since he looked really cute.



Here's a video of LJ, the walking robot.