Machine Design

Group Assignment

  • Actuate and automate your machine.
  • Document the group project and your individual contribution.
  • Group Assignment Part2: Machine Design

    In the previous week we completed the mechanical part of group assignment. This week , we have to control and program the robotic arm and set the initial positions of servo motors, then include the pick and drop functionality . Firstly, the robotic arm will be controlled via HM-10 BLE 4.0 Bluetooth and then it will be made to work automatically.

    Wiring of the hardware components:

    For testing purpose, we connected the wiring to each hardware component. All the VCCs and GNDs were made common.

    Wiring of robot

    Controlling the Servo Motors:

    There are seven Steppers used in making the robotic Arm. The necessary details about each servo is given below:

    The microcontroller used is Arduino Leonardo with (ATMEGA32U4 : 8-bit Microcontroller with 16/32K Bytes of ISP Flash and USB Controller).Arduino Leonardo is a customized version of Arduino, having 44 pins as shown below:

    Atmega32U4 microcontroller pin configuration

    The Leonardo gives almost the same functionality as Arduino UNO but Leonardo has an extra serial communication pins. Since we are not allowed to use commercialized boards , so one of our colleagues Mr.Nadir Ali had made his leonardo board in week 9. To read more about this board, the link of his version of leonardo is given HERE.

    Atmega32U4 board (Arduino Leonardo microcontroller)

    The whole functionality of the robotic arm is electrically manipulated using the Arduino Leonardo board. Following pins of Arduino Leonardo are used to connect and control the Servo motors and the Bluetooth module.

    Name of Motor/BT Pin Wire Color Arduino Leonardo Pin
    a Brown 3
    b White 5
    c Orange 13
    d Yellow 9
    e Green 6
    f Dark Yellow 10
    RX Yellow 0
    TX Orange 1
    Table1 : Pin configuration for wiring and Programming


    The programming has been done in C language using the Arduino IDE. The bluetooth module(HM-10 BLE V 4.0) has been interfaced and Bluetooth Serial Terminal application has been used for giving the commands from the android phone. The arduino codes have been attached at the end of the documentation.

    Working of Robotic Arm

    Initially we were controling the robotic arm using the HM-10 BLE 4.0 Bluetooth module, for obtaining the values of servos to set the initial positions. Once we achieved the initial positions then we moved to programming it in a way so that it performs the task of pick and drop the object automatically. The video showing the working of robotic arm is attached at the top of page:

    Group Picture with our Instructor Sir Sohail Ahmed Soomro after successful demonstration of project

    My Individual contribution

    As, this week's task is done by mutual collaboration of group. We all worked together in almost every part. Here, Wired the robot by soldering wires to and from servo motors. Electronics production part was mine, as I already designed an atmega32U4 board in week 9 embedded programming. We used this board instead of commercialized arduino board. Designing of the controller also was my part. This was the perfect example of group work.

    Further Improvements:

    Although the robotic arm works ery well but still it needs to be improved in following terms:


    This was our first group Project of Fab Academy, so it was a nice experience of collaborating together to make something. Moreover, we learnt about the working and controling a robotic arm; the basic factors like its kinematics, degrees of freedom, selection of hardware components like servos, and its limitations.