Going through the years, technological advancements increasingly attempt to emulate human behavior and match the benefits of intelligent thinking that have enabled us to make the best use of the resources available to us. Robotics as a field is developing with exponential strides, and this gives developers the opportunity to pause, and think whether we are making the best use of our skills.
Over 1 billion people across the world suffer from a physical disability and over 110 million have severely impeded functioning. There is a lot that technology can do to improve their lives, yet a lot that is not yet done.
What's more is that a WHO Report  shows that over 400 million people lack access to basic healthcare facilities.
This project attempts to develop a humanoid robot capable of providing basic healthcare by means of detecting wounds and offering first aid to users.
Step 1: Using Recycled Materials
The joy of developing is enhanced when you do it in a manner that is environment-friendly and improvisational. Keeping with the spirit of the 80's inspirational protagonist MacGyver, this project uses basic eclectic materials.
- The Body
The skeletal framework of the robot is made using wooden beams.
We use motors from discarded printers to serves as the rotatory actuators.
Step 2: How Does a Robot Work?
A robot has mechanical as well as electronic components. The mechanical components include the arms and motors that can move and get things done. The electronic ones comprise of the processor that controls when and how the arms and motors move, so as to get the right things done the right way.
Our robot needs to carry out two processes to meet the goals:
- Detect a wound that the user has suffered
- Provide first aid by medicating the wound
So we have separate mechanisms for both.
Step 3: Theoretical Considerations
We first need to identify the appropriate lengths of our arms so that they can reach the correct places. In technical terms, we need to use kinematic equations for the robot, based on the values of certain variables, to define the position of our "end effector".
We use a process called Forward Kinematics, and the variables are called the Denavit-Hartenberg Parameters.
Our robot has 5 degrees of freedom, as depicted in the figure. The table notes the parameter values in the Denavit-Hartenberg Notation.
[For more on the notation, refer to this paper that details how these parameters are calculated.]
Step 4: Things Used in the Project : Structure
- Wooden Beams for framework:
- 4 long beams for body
- 5 beams for the arms
- 2 flat platforms
- Several small beams for strength
- Duct Tape and/or Double-Sided Tape
- Hot Glue Gun
- Screw Driver and Screws
- Drill Machine
Step 5: Making the Body
One of the flat platforms acts as the base of the robot on which it will stand. Now take a long beam, and secure it perpendicular to the base using two small strips. Align it towards a side of the platform leaving space for another beam. Fix these using hot glue gun and let it dry for ~2 minutes. Note that rough wood will take longer to set in place, so be patient with the fixtures.
Repeat this with another long beam towards the end of the platform. Now you have two beams that act as the body and legs of the humanoid.
Take the remaining two long beams and arrange them in a cross. Now fix this to the structure we built earlier, so as to give additional stability to the two beams. Use the glue gun to firmly secure the positions of the beams.
Depending on the quality of wood, the glue may not be enough. In such cases, use screws to hold the beams in place before proceeding onto the next step.
Step 6: Platform to Hold the Electronics
Now take the other flat platform. This has to be secured at the place of intersection of the two long beams arranged in an 'X'. Use the glue gun to secure the position of this platform. This is where the electronic components will rest.
Step 7: Building the Left Arm
Now we build the arms of the robot, from the wooden beams and motors.
For the left arm, we have 2 junctions and 2 arm segments, corresponding to 2 motors and 2 beams. We have to fix one motor at the top of the left leg of the robot. For this, drill a hole through the leg and pass the axle of the motor through it. On the other end of the axle, pour Fevicol (or Elmer's glue), and put some sawdust on it. This is a traditional method to ensure the joint doesn't come off. We have completed one junction and the motor should move seamlessly around the "shoulder joint" we just built.
Now take a small beam and fix it to the outer surface of the motor using the glue gun. Secure this joint with duct tape as needed. This forms the upper arm.
For the elbow joint, we fix another motor to the upper arm. Note that this motor is fixed to the front face of the upper arm and not the outer surface, i.e. it is aligned in a plane perpendicular to the plane of the shoulder motor. So it rotates perpendicular to the shoulder motor. Similar to the previous joint, fix this motor to the end of the upper arm using glue and saw dust.
Now fix another beam to the surface of the motor with the glue gun. Use duct tape if needed. This forms the forearm.
Step 8: Building the Right Arm
For the right arm, we have 3 junctions and 3 arm segments, corresponding to 3 motors and 3 beams. We have to fix one motor at the top of the right leg of the robot. As before, drill a hole through the leg, pass the axle of the motor through it, and secure the joint with glue and sawdust. This completes the right shoulder.
Now take a beam and fix it to the outer surface of the motor using the glue gun and/or duct tape to form the upper arm.
For the elbow joint, we fix another motor to the upper arm. Unlike with the left arm, this motor is fixed to the outer surface of the beam, i.e. parallel to the right shoulder motor. This forms the elbow joint.
Next, fix a smaller-sized beam to the surface of the motor to form the forearm.
We now have to build a wrist joint. Another motor is attached to the outer surface of the end of the forearm, aligned in the same plane as the shoulder and elbow joints.
Now secure a small beam on the face of the motor. This completes the right arm.
Step 9: Understanding the Movement of the Arms
Note that the right and left arms move differently for the robot, as required by the task they need to solve. The left arm can move forward and then fold inwards. The right arm can move forward with the shoulder joint, further with the elbow joint, and even more with the wrist. This allows it to reach points at different angles and different distances, thereby providing greater precision.
Step 10: Things Used in the Project : Hands
- 3 small flat wooden platforms
- 1 Limiting Switch
- 1 Servo Motor
- Small Metallic Rod to extend the Axle
- Small Aluminium Sheet
- Medicine to be sprayed in a Pressurized Spray Can
- Hot Glue Gun
- Duct Tape
- Screw Driver
Step 11: Sculpting the Hands : Left Hand
The left arm does not have a particularly essential motive. It has to provide the user with a platform to position his/her hand, so that the right arm can scan it. The left hand therefore is a small platform glued to the inner surface of the left forearm.
Now place and glue a limit switch on top of the platform. Now fix another platform of the same size on the contact of the limit switch. This completes the left hand.
Functionality: When the user places his arm on the topmost platform, the contact is pressed and the limit switch detects it. This can be used to initiate further movements through code.
Step 12: Right Hand and the Medicine Spraying Mechanism
The right hand consists of the mechanism to scan the user's arm, detect the wound, and spray medicine on it.
At the bottom of the beam connected to the wrist motor, fix a flat wooden platform. This becomes the right hand.
In order to make the Medicine Spraying Mechanism, we need to be ingenious (read: MacGyver-ian). We take a small metallic rod and fix it to the axle of a servo motor. Take an aluminium sheet and make it firm by refolding. Now bend it in the shape of a 'C'. Secure this to the end of the metallic rod using screws and/or duct tape. The idea is that when the servo motor rotates, the aluminium sheet rotates with it in a way that pushes the top of the pressurized spray can containing medicine.
Fix the entire arrangement on the bottom surface of the platform, and secure the medicine spray can at a convenient position below the aluminium sheet. This completes the right hand.
Now that the structure looks complete, we move on to the electronics of the robot.
Step 13: Things Used in the Project : Electronics
- Arduino Uno
- 5 Limiting Switches
- Color Sensor
- 22pF Capacitors (x2)
- 10 uF Capacitor
- 100 uF Capacitor
- 470 uF Capacitor
- Bipolar Transistor
- 7805T IC for Voltage Regulation
- L293d Motor Drivers (x3)
- Circuit Board
- Push Switches
Generic Tools and Components
- Jumper Wires
- Duct Tape and/or Double-Sided Tape
- Hot Glue Gun
- Soldering Iron
[Circuit Diagram designed on Eagle]
Step 14: Setting Up
The Arduino Uno acts as the brain of the robot. It takes input from the color sensor and limiting switches and directs the movement of the motors. Now we will fasten the primary components in place.
Secure the Arduino onto a circuit board. Fix the color sensor using tape on the outer surface of the servo motor attached to the right hand of the robot. Now we have to position the limit switches.
The limit switches are used to control the movement of the arms and limit them to a certain degree. Therefore there is a limit switch for each arm segment -- 5 in total. On the left arm, secure a switch on the left leg of the robot such that it falls in the path of the upper arm. Similarly fix one at the bottom of the upper arm so as to interpose the path of the left forearm.
For the right arm, position 3 switches -- on the right leg of the robot, at the bottom of the upper arm, and under the forearm -- to limit the movements of the segments.
Step 15: Supply Circuit : Powering the Arduino
Note that voltage irregularities can trouble the Arduino in the long run. So, as an alternative to directly suplying power to the board, we use this Supply Circuit.
We use the 7805T IC for voltage regulation. This is connected to 100uF and 470uF capacitors as shown. The LED is used to indicate that the supply circuit works fine.
The junction is where the power adapter is connected, i.e. power from the grid is passed on to the supply circuit and then to the microprocessor.
Connect the capacitors and transistor as shown. This completes the power receiving circuit for the Arduino.
Step 16: Completing the Circuitry
Now use jumper wires to connect the Arduino with the motors, limiting switches and color sensor.
We have a total of 6 motors -- the servo motor on the right hand and 5 motors for arm junctions. Three L293d motor drivers are used to connect these to the controller. The color sensor is connected to the Rx port to receive the sensed RGB values. The limiting switches are connected to the digital pins.
Step 17: Code : Introduction
We declare constants for the pins where the motors are connected. The left arm is represented by segments arm1 and arm2. The right arm is represented by segments arm3, arm4, and arm5. The pins to which the limiting switches are connected are similarly declared as constants.
The startkey is the limiting switch connected to the left hand. Once powered, the robot starts moving only when the switch on the left hand is pressed.
Step 18: Code : Armup() and Armdown() Functions
Functions are created to move each arm segment up and down. These are named as arm1up(), arm1down() and so on.
armup() : The printer motors rotate for the time delay that is passed into the armup() function as a parameter. This takes the segment up by a certain limit.
armdown() : Then, for as long as the corresponding limit switch is not pressed, the motor moves in the opposite direction. As soon as the limit is reached, we return out of the function.
Step 19: Code : Robot Movements
All the movements are encapsulated in the action() function. The left arm goes up and then folds. It then waits for the user to place his/her arm on the left hand. This will press the limit switch and initiate the movement of the right arm.
The right upper arm moves to a certain angle and then so does the right forearm to take a set starting position. The right arm then ascends the user's arm using coordinated movements of the 3 arm segments through a loop-and-a-half construct. Before every next turn, the color sensor is used to detect a wound. If the wound is found, medicine is sprayed at the location of the wound on the user's arm.
Once the entire length of the arm is scanned, the right arm of the robot descends to the original positions, and then so does the left arm -- both guided by the limit switches.
To restart the scanning process, the switch on the left hand must be pressed.
Step 20: Code : Spectral Analysis to Identify Wounds
The color sensor is connected to the Rx port and it returns the RGB values encoded in an array. As long as Serial.available(), i.e. the sensor sends values to the Arduino, we calculate separately the R, G, and B values. This represents the colors contained in the portion of the user's arm that is being scanned. If a person has suffered a wound, the red value increases in that region. Thus, when the scanned values satisfy a certain threshold (set at R>80, G<50, B<50 by analyzing samples), the function returns a value 1.
Step 21: Code : Spraying Medicine
Whenever the color_sense() function returns 1, the spray() method rotates the servo motor on the right hand. This actuates the medicine spraying mechanism, and medicine is sprayed on the users hand at the location of the wound.
Step 22: Code : Resetting the Positions
In case power is withdrawn before the arms return to their original positions, then, as soon as the robot is powered the next time, they first rotate to the initial states. If the limit switch on the left hand is then pressed, the process restarts.
Step 23: Completing the Setup
Once you have wired all the connections and soldered the Arduino on the circuit board, secure the circuit board on the back surface of the platform fixed to the crossed-beams, at the back of the robot, with duct tape and/or glue. Upload the Arduino code onto your board (given here as a .pdf). This completes the setup of the robot.
Plug the power cord into the circuit board and watch the robot provide healthcare!
Step 24: Adorning the Robot
The robot looks bare because we have attempted to build a prototype of a technologically-sound device based on MacGyver-ian principles and with a profound social impact. However, if you want to make it look more clean, you can use a mannequin head to give it a personality.
Another simple hack is making the robot wear a loose wind-cheater jacket. This covers the wiring and electronics, but does not interfere with the functioning.
Step 25: Conclusion
Thus we have built a humanoid robot capable of providing simple first-aid to users. The robot is made from recycled materials including scrap wooden beams and motors from discarded printers. Small hacks like the spraying mechanism and supply circuit provide the robot a special charm -- not unlike the principle of ingenuity and improvisation that make "developing" so much fun.
A lot of functionality can be added to the robot, including User Interaction. It is currently immobile, and moving ability can be added. We can 3D Print the structural parts instead of using wooden beams and strips, to improve the design. I will continue to add such features to the project in the coming months.
Step 26: Past Awards
This project (as part of a larger endeavour) has been presented at several science fairs and has received recognition at the national and international levels.
- Presented as part of Team India at the Intel International Science and Engineering Fair, Los Angeles, US 2017
- Grand Award, IRIS National Science Fair, India 2016
- Gold Medal, Vasudha National Science Fair, India 2017
If you like this project, please vote for it in a contest using the button at the top right of your screen. Thank you! :)