Mini Drawing Bot - Live Android App - Trignomentry

About: Want to do some thing best with my less resource.

Thank GOD and all of you for make my project Baby-MIT-Cheetah-Robot won the first prize in the Contest Make it Move. I am very happy because lot of friends ask lot of question in conversation and in messages. One of the important question was how the robot move smoothly (with out body up and down) and asked about the array in the program initialization, how it is calculated. For the answer of that questions i plan to make a drawing bot with the legs i designed for the Baby-MIT-Cheetah-Robot. This is the test leg first i designed before print all the four legs. Also for this i try to draw in android and transfer the data to arduino to draw.

I like maths very much, i believe all in the world run with maths. There is nothing with out maths. Here i detailed the maths used to calculate the degrees of servo in detailed.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materails Required

Materials Required

1)Arduino Uno R3 - 1No

2) HC-05 Blue tooth module. - 1No

3) Micro Servo - 3 Nos

4) LM2596 DC to DC Voltage Regulator. - 1 No

5) 3.7V 18650 Battery - 2 Nos

6) 18650 Battery Holder

7) 3D printed Arm (obj file given the arm page)

8) Small aluminum pipe (got from old FM antenna).

9) Some scrap items.

10) Plastic sheet to make cover.

Step 2: Trigonometry and Pythagoras Theorem

The Image is self explanatory if you want to read continue....

What we have is noted first


Drawing arms dimension both lower arm 3Cm and both upper arm 6 Cm. The distance between the two servo arm arm axis is 4.5cm. So consider you put it all in a graph and mark the first servo center as (0,0) so second servo center is at (4.5,0).


Now mark a point in the graph where the pen want to move, now i make it at (2.25,5).

Image3 - Distance Formula and Pythagorean Theorem

Now we want to find the length of two lines (0,0) to (2.25,5) and (4.5,0) to (2.25,5). Use the Distance Formula and Pythagorean Theorem. From the formula Length = sqrt((X2-X1)square +(Y2-Y1)Square) (please see the image to see the formula in correct format). The point is in the center of the y axis with the servo, So the boths sides have same dimension of triangle. So the result is 5.48 in both sides.

Image 4

Now you can able to divide the triangles. We got 3 triangles with all the 3 sides known.

Image 5 Trigonometry - the law of cosines

Use the Trigonometry - the law of cosines to calculate the angles we want. Please see the image for formula.

Image 6 Radiant to Degree

The result from the Trigonometry is in radiant so use the formula Degree = Radiant * (180/pi()), to convert radiant to degree.

Image 6

Sum up the degrees in the same side to find the rotation of the arms.

Step 3: Check the Math Again

Now a test, move the point in the graph to different point and calculate the degrees of the arm. I create a excel and find the angle. See the above excel for calculation.

Step 4: Circuit

Its a very simple diagram with Three servos control using the digital pin 5,6 and 9, where 5 and 6 pins used to drive the arm and 6 used to up down the arm. The HC05 Tx connected to Arduino pin 0 (RX) and RX connected to Arduino pin 1 (TX). From 2 Nos 18650 battery 7.4V given to Arduino vin pin and input side of LM2596 DC to DC Voltage Regulator through switch. Output from LM2596 DC to DC Voltage Regulator is given to the servo supply pins. Thats all the circuit over.

Step 5: Develop Circuit

As like every project for this project also i make a shield with female header pins for HC-05 bluetooth and Male header for servos.

Step 6: Create Servo Stand

I use MG90S 2 Nos for arms and SG90 for pen up and down. Cut a small novapan sheet to fix the servos as shown in the figure. As like the picture hot glue the both MG90S servos in straight vertical and the SG90 in the base.

Step 7: Arm in Tinkercad

The same leg designed for MIT Cheetah Robot and Printed by the 3D print service provider A3DXYZ. Only one set is required for the drawing bot. If you only design for drawing then change the drawing to make the pen holder at the end of one arm

Step 8: Fix the Drawing Arm

The 3D Printed arm is received as 6 pieces, 4 arm pieces and 3 screw like pieces to joint the arms. Join the arms and use the feviquick to paste the screw piece. Paste the horn in the arm and quick fix it using fevi quick. Now make a simple program and put the servo 1 to 150 degree and servo2 to 30 degree and fix the horn in the arm and screw it. For up down mechanism simply use a servo horn.

Step 9: Hinge for Up Down Mechanism

For Making Hinge i use a old micro tip pencil from scrap and a round metal rod from the scrap. Cut both sides of the Micro tip pencil and take the tube hot glue it with the novapan sheet, already servo is pasted. Now insert the rod in to the tube and place a tiny piece of novapan sheet on both sides of the rod between the base and rod and hot glue it. now the Hinge is ready.

Step 10: Fix All in One Board

Use hot glue gun to fix it all in the single novapan sheet. I change the 18650 battery holder with the new one with switch built with it (old one fitted in the fully 3D printed Baby MIT Cheetah currently in development).

Step 11: Pen Holder

I search for lot of items and finally found a aluminium tube in the scarp from FM antenna. Cut a 43 cm length (15 + 13 + 15) of the pipe abd try the sketch fitted in it correctly. Cut slot in the 15 cm from both sides and open the both sides and make it flat. bend it to 90 degree and make the rectangle to circle. Use file to polish the edges and put it straight to the arm and Quick fix it with the holder with the arm using feviquick.

Step 12: Make a Cover

Make a cover using plastic sheet and paste all the joints of the plastic sheet so it look like a box. Make a slot in the side for switch ON and OFF. Now every thing is completed. Mechanical and Electronics works are finished. Now its time for Computer program in Android and Arduino.

Step 13: Paper Holder

Cut 3 pieces of plastic sheets and paste in the edges with the board as shown in the figure. Cut paper 11cm X 16 cm to use in this holder.

Step 14: Arduino Code

In this program i minimize the coding in android and insert all the maths calculation in the Arduino. So the android only send the X,Y,Pen up down from the mobile through bluetooth and once the arduino receive the point as detailed in the step 2 of this project arduino program calculated the actual degree for two servos. Servo only rotate up to 180 degree at 60 degree the servo arms are very close so i set 60 as 0. So from 60 to 240 degrees only taken in account and rotate. If the degree go less than 60 or greater than 240 or not able to calculate then the pen up. Once the servo move to that position it send back "N" to the android once the android received "N" it send the next point.

Step 15: Android Program

As like other Projects I use MIT App inventor to develop the android app. On the screen start use bluetooth picker to pick up the HC-05. If the bluetooth is connected, the next screen shown. In that screen a Canvas area is used to draw the line drawing once you start draw the Mini drawing bot also start to draw with you. in the bottom of the screen two buttons and one label box present. Redraw button is used to draw again in the line drawing and clear button is used to clear the image in the canvas. In the label it show the text send to arduino.

Only draw in bottom half only drawn by the bot because of the length of the arm.

Download the app from the link and install in your android mobile. aia file for the program is also attached for the developers.

Step 16: First Test

This is the first test draw in the novapan sheet. The name Siva is tested first. Sorry i forgot to reord this video.

Step 17: For Cheetah Leg

Lot of leg moving pattern available on the net. Or use ur own pattern. Draw it in the mobile and record it in arduino used that pattern for leg movement. Main thing keep it in mind is if the chettah walk at the height of 6 cm two cross legs in 6cm and move forward and othe two cross legs in the air of 5.5 cm ad all come to 6cm then only the cycle repeats.

Step 18: Final Workings Video and Some Output

I enjoy a lot on making in this project. same words again, I lean some new things from this project, I feel you also learn some small thing on reading this project. Thank you all for reading it.

Lot more to enjoy...............Don't forgot to comment and encourage me friends.

Made with Math Contest

Second Prize in the
Made with Math Contest

1 Person Made This Project!


  • Instrument Contest

    Instrument Contest
  • Make it Glow Contest

    Make it Glow Contest
  • STEM Contest

    STEM Contest

12 Discussions


8 days ago

why do I have draws something reflecting in the mirror?

1 reply

10 days ago

which servo is the first and which is the second
I have draws in mirror reflection

1 reply

13 days ago

Thanks, a very nice build description.

I'm particularly interested in the math and would like to check the recommended Arduino code. However, I get an error when I try to access the downloaded .rar file - see attached. Could you perhaps have an alternate file such as .zip, .ino, .txt available?

RAR file error.JPG
1 reply

Thank you very much sir. The ino file or zip file cant able to add so i add as txt file in the same page Kindly see it.


14 days ago

What would a result look like when you are feeding a "nice" high accuracy vector drawing or shape? (It must not be complex - a circle, a little house, or whatever...) just to see the true caps and maybe shortcomings of your design.

in the texts it looks like lifting and lowering the pen give a bit of extra strokes.

1 reply

I try it sir to read the vector and paint..... I think it also work because it calculate the X and Y of the point and move there.