Introduction: MK-rlos

This project consists of the design of an ocular mechatronic mechanism, programmed with Arduino Uno.

We have made a mechatronic characterization with the human eyes that we wanted to give him since Halloween evoking the cliché of the false painting through which he is being observed.

We will now explain all the steps in order to take control of our project.

Step 1: Components

In order to carry out this project, we have enclosed all the stuff we have needed.

Electronic devices:

  • Arduino uno
  • Protoboard
  • Cables
  • LED x2
  • Resistance220 Ohm x2
  • Servo motor x6
  • Joysctick
  • Buttom
  • 3V lithium battery
  • 9V alkaline battery
  • Battery adapter for Arduino


  • 40units of M2x6mm Stainless Steel Hex Nut Bolt Sets Screws
  • 6 units of M2x10mm Stainless Steel Hex Nut Bolt Sets Screws
  • Two-component transparent epoxy casting resin
  • Methacrylate frame
  • Wood and a frame

Tools and estructural components:

  • 3D pinter
  • Low grain sandpaper
  • Hexagonal screwdriver for M2 Superglue (for reinforcement)
  • Superglue
  • Acrylic paint and brushes

Step 2: Flow Diagram & Code

To understand in a more visual and clear way the functions that our program must perform, we have made this flow diagram, where we outline the reading path that the Arduino performs. This is the code that we have used to program our robot, that is commented part by part as it advances.

Step 3: Wiring + Arduino; Tinkercad

Before physically mounting the program, we simulate our system using Tinkercad; a tool that allows to simulate with the circuits, to make a "virtual programming" of Arduino boards and to verify the operation of this one.

In the attached link we leave our Tinkercad file, where you can see the simulation that will be physically mounted, and the program code used:

Step 4: Print the 3D Archieves

To get started, you will need to print out all the files necessary to set up our base structure. Entering the following link, you will be able to download all the files;

We also uploaded our own files, as we have adapted the design. To do this, we have modeled with (Cad, PTC CREO or Solidworks) and exporting the file in STL (f "STereoLithography") converts the volume into triangles. Then, we use CURA: It is a slicer (divides the object into different layers) converting the parameters of the path that the printer will make.

Step 5: Perfect All the Pieces.

Once we have all the pieces printed, it is time to polish and perfect them.

All the parts have been printed with a 3D printer, so the holes for the screws aren't very precious, as many of the surfaces of the parts. Therefore, it is necessary to retouch the different defects that may have. Use a sandpaper to polish the surface finish of the parts and a metric 2 screw that can penetrate the inlets.

Step 6: Assemble the Pieces

Once we have all the pieces ready, it's time to put them together and assemble them!

To assemble them, it's needed to use metric 2 screws, nuts, and the corresponding screwdriver. All the parts must be connected with the corresponding servomotors, in order to achieve the desired movements explained below. In the following images, details of the assembly of the different parts are shown, indicating the different parts and corresponding places.

Step 7: Realistic Eyes

For these eyes to be scary, they must look real, so we must make the eyeball much more realistic.

After sanding the eyeball to a soft finished, we will use acrylics to draw a bright pupil and a black iris. We will draw the lower part more reddish and add some small veins that take on a more creepy life. We will let it rest.

Once the paint is dry, we will use epoxy and catalyst to give it the real and crystalline finish that will attract so much attention. It is necessary to let the epoxy dry for 24h. In the following photos, we attach a small storyboard of the creative process.

Finally, we attach the eyes to the general assembly, which will magically come to life! or... Death!

Step 8: Movements With Servomotors

Once all the printed parts are assembled and ready to be programmed, we insert the 6 servos into our eye system. Each servo will have one function, which will be as follows:

Servos 1 and 2: They are responsible for the movement on the "x" axis of the eyeballs, rotating back and forth. (making the eye look left or right). ts neutral position is 75 º, and to make a movement from one side to another turn 25 º to each side. (from 50 to 100º).

Servos 2 and 3: They are the responsible for the linear movement on the axis "and" of the eyeballs, with the same system as the previous servo. (making the eye look up or down) Their neutral position is 85º, and they move 50º to each end, from 35 to 125º, to move the eye from bottom to top. These first two servos are repeated twice, once for each eye. When both pairs of servos work at the same time, we get the eyeballs to rotate diagonally.

Servo 5: It is connected to the two upper eyelids, taking care of opening or closing them. They have two positions, one for each state. When they are open, the servo is at 85º, and at 125º when they are closed.

Servo 6: It is connected to the lower eyelids, taking charge of its opening or closing, as in the previous case. In the open position they are at 80º, and at 95º when they are closed.

Step 9: Servomotors & Leds

What do we want to do with them?

We want to get the eyes and eyelids connected to the servomotors to move in the desired way, by controlling the position and movement of the potentiometer. The servomotors we have connected have a mobility of 0 to 180º, so we must define the range of movement of their arms centered at 90º, in order to move them from up to down, and from left to right. Once checked the 90º, (or the correct angle considerate as the neutral position), we set all the servomotors with the piece that will push the movement, with a screw through the center of the piece and wire connected to them, as shown in the image below.

How do we connect them to the Arduino?

To connect it with the Arduino plate, you need to know that each servo has 3 wires; VCC, GND and Signal. Each one is of one color, and they are connected in the following way: The VCC, (red), is connected to the 5V pin of the Arduino's board. The GND, (brown or black), must be connected to a ground connector on the Arduino board. The signal wire, (yellow, orange, or white), must be connected to the digital pin on the Arduino board.

Step 10: Joystick

What do we want to do with them?

With the joystick, combined with the servo functions, we will manage to control of the movement of the eyes and eyelids with only one multifunctional element. With the movement in the "x" and "y" axis, we will be able to control the movement of the eyes; up and down with the "y" axis; right and left with the "x" axis.

Finally, to control the opening of the eyelids, we will use the pressure on the button. With the digital signal of high (open) and low to close them intentionally.

How are they connected with the Arduino?

It consists of two potentiometers and a button, with springs to return to the initial position. One of its pins is connected to the GND, and another to the 5V, one of these pins gives us the analog signal from potentiometer "x" and another from potentiometer "y". The switch, or button, gives a digital signal (high or low). Depending on whether the function is one option or the other, you will know whether it is pressed or not. (boolean function).

Step 11: Arduino Connection

To put in operation our robot, we should connect it with the functional part of the Arduino (the servomotors, the leds, the joystick and the board) that will be the managers of assigning and carrying out the corresponding functions through the code that we have carried out.

For it, it is necessary to connect in a common way all the elements explained above, so that the robot can start working!

Step 12: Esthetic Structure

So that our eye system does not remain naked and with all the electronic and mechanical elements exposed, we have decided to put it inside a box and behind a frame, so that the only part that can be seen is the eyes.

To make sure everything is secure, we fix all the elements like the mechanism, the plate and the Arduino with superglue. The only parts that must be visible are the two eyes (placed at the right height and scale) and the joystick to control it.In order not to hide the electronic part, we cover it with a methacrylate frame.

Step 13: Video

Step 14: Conclusion

Through this work, we have been able to put into practice and relate different theoretical concepts learned previously; circuits, programming and mechanisms. This project does not have a great function, but in its development we have learned many concepts that we will be able to put into practice in future more potential projects.

It has been a fantastic walk through the Arduino libraries!