Lucas M.

I’m Lucas and I am a rising senior at Regis High School. My main project was a three-joint robotic arm, based on a previous BlueStamp project.  I decided to work on a robotic arm because I am interested in working in prosthetics in the future.  My starter project was the Minty Boost USB charger, which can be found on the Adafruit website.  I decided to do this project because I wanted a portable phone charger since I always run out of battery.

Lucas M.
Area of Interest
Mechanical Engineering
Regis High School
Rising Senior

Final Project


Working on my robotic arm has taught me a lot about engineering.  I learned that while I enjoy coding and electrical work, I especially like mechanical work.  I was excited to finally apply all the concepts I learned in physics to a real world project.  I faced many challenges in reaching each milestone.  In order to get the servos to move, I had to teach myself how to code in Arduino.  To cut the mechanical parts of the arm, I had to teach myself about torque, a concept that was not covered in my physics class.  For my arm to be assembled correctly, I needed the metal to be cut precisely, and my initially attempts weren’t up to par.  I overcame this obstacle by becoming more comfortable with the power tools.  My initial plan to use the stepper motor at the base of the arm failed.  I was forced to trouble shoot the problem, attempting to use gear ratios and then finally falling back on mechanical power.  Though these problems proved frustrating as they arose, I am glad I faced them instead of giving up.  Overcoming these obstacles makes me feel even more proud in completing my project.

I have finished my three joint robotic arm with mechanically rotating base.  The arm is controlled by 5 servos, which I am able to manipulate through the serial monitor in the Arduino.  I set up the code so that I can turn a specific servo 30° by entering the corresponding letter.  I came into the programming having never used an Arduino before.  In order to overcome this obstacle, I had to learn C syntax as well as functions that were specific only to Arduino.  Once I got the code working, I had to build the arm.  Instead of just putting the parts together, I was excited to learn the physics behind the concept.  Although torque wasn’t covered in my physics class, I was excited to apply it to a real world project.  I used the torque of the servo to calculate the amount of metal it could support, and factored that value into my build plan.  With my plan in place, I learned how to properly use tools like the Dremel and drill, and cut according to my build plan.  At first, my cuts were a little bit off and took a lot of time because my hands couldn’t hold the tools steady.  However, as I worked more and more with the tools, my cuts became faster and more precise.  Lastly, I modified the base to allow the arm to rotate.  I originally planned to do this with a stepper motor, but it lacked enough torque to turn the arm.  I lacked sufficient time to order to a stronger motor, so I decided to just rotate the arm using mechanical energy from my hand.

     Assorted Files:

     Torque Calculations: torque-calculations

     Circuit Diagram: arm_circuit_diagram

     Mechanical Drawings: lucas_mechanical_drawings

     Final Code:


     CAD Links:

     Arm Base:

     First Joint:

     Second Joint:

     L Base:

     L Wood Base:

     Wood Base:

     Assembled Arm:

     Base Servo Heads:

     Joint Servo Heads:



Third Milestone

For my third milestone, I built the base and attached it to the arm.  This consisted of a lot of planning.  First, I noticed that the arm would need to be elevated so it would have space underneath to turn.  I designed these L brackets to hold the servos, and attached them to wood to elevate them off of the base.  Originally, I wanted I cut holes in the base to fit a stepper motor, which would rotate the arm.  I thought that since the arm was perfectly centered on top of the stepper, the weight would be evenly distributed and the stepper would have no trouble turning.  However, in reality, the arm was too heavy for the stepper to turn.  Next, I attached a 16 tooth gear to the base of the arm and an 8 tooth gear to the stepper, creating a gear ratio of 2:1.  This doubled the torque of the motor, but it was still not strong enough to turn the arm.  In the end, I ran out of time to order a stronger motor, so I was forced to go with mechanical power.  My arm is able to rotate by turning the gears with my hand. Since there was not enough surface area to mount the breadboard and Arduino on the rotating part of the arm I need to be careful not to rotate it over 360 degrees or else the wires will get tangled.

Second Milestone

For my second milestone, I assembled the mechanical parts of the arm.  Reaching this milestone was a lot more difficult than I thought.  Initially, I knew nothing about torque.  I spent about a day researching it online.  When I tried to apply what I learned to calculate the maximum distance my servos could support, I ran into some major computational errors.  It took me three days to realize that the torque given on the servo label was not actually in the proper SI unit for torque, resulting in all my calculations being off by a factor of little g.  Once I overcame this problem, I planned out the orientation of the servos and the metal component sizes in my notebook.  After finishing my sketch, I marked up the metal and went to get it cut.  Drilling holes proved particularly challenging because I had trouble keeping the drill steady, causing the holes I actually drilled to be off from where I marked.  I eventually overcame this problem by becoming more comfortable with using the drill.  With the metal having been cut, the last step was to screw all the components together to form the arm.  I found this final step to be surprisingly relaxing.

First Milestone

For my first milestone, I wrote the code that will control my servos.  The logic behind the code is as follows: first, the Arduino prompts the user to enter a value into the serial monitor.  If the keyboard character entered matches the ASCII value specified in the code, and the current position of the servo is greater than 0 but less than 180, it will perform an action on the servo.  It is currently set to either increase or decrease the position of the servo by 45°, depending on the key entered.  If the entered character does not match the specified values, or if no character is entered, the servos will do nothing.  The program continuously loops, and the user can continue entering values as long as the Arduino is connected to the computer.  This is an important milestone because the servos will control the joints of the arms.  It is crucial that I can properly control the joints before I begin to assemble them.  To reach this milestone, I taught myself about C programming and the pins on an Arduino board.

Starter Project

For my starter project, I made the MintyBoost USB charger. It works by amplifying the voltage before sending the current through the USB to my phone.  It accomplishes this change by using the chip to manipulate the relationship between voltage and current.  When current flows into the inductor, it creates a magnetic field with increasing field lines.  When the chip senses 5V, it stops the flow of current into the inductor.  Now, the field lines start to decrease and a current is induced.  This current is sent to the capacitor, where it flows from areas of high potential to areas of low potential.  After leaving the capacitor, the current makes its way through the USB to charge the phone.  The diode ensures that this current only flows from the battery to the phone, and not the other way around.  Now that the current has left the circuit, the chip senses a low voltage and restores the flow of current into the inductor, repeating the cycle.  This project taught me how to solder and use tin snips.  I initially struggled with understanding the component parts of the circuit.  I solved this problem by researching each part I used.

Leave a Comment

Start typing and press Enter to search