Competency Demonstration Report-MAH_200916_89073_1_185907

                                                     Competency Demonstration Report (CDR)

Continuing Professional Development

I aimed at achieving a professional career in Design and manufacturing Industry sector.  For achieving my goals, I have completed my Bachelor of Science in Electrical and Electronics Engineering from Eastern Mediterranean University. I am a recent BSEEE graduate having proficient experience in MTBE and methanol producing company. I have the technical and analytical skills required for innovative application and development of new innovative products.  In addition to that, I have the details understanding of the testing tools, circuit design, troubleshooting problems that I have showed through my project. I have the efficient knowledge and understanding of the practical needs of the project. In addition to that, I aim at working in a challenging environment that helps me to grow and enhance my engineering qualities. I have the capability to work efficiently for achieving both the individual and company’s goals. I display a strong communication and management capabilities. Apart from that, I have the ability to work as an integral team as well as individual to accomplish organizational goal. Therefore, I want to apply to Professional Engineer (Engineer Australia) in terms of increasing my practical skills and knowledge.

Academic Qualification

Duration Course Institution
2016 Bachelor of Science in Electrical and Electronics Engineering Eastern Mediterranean University

Work Experience

Duration Position Company
June 2015 to May 2015 Electrical & Electronics Engineer Intern Qatar Fuel Additives Company Limited, Doha, Qatar
 January 2015 to May 2015 Electrical & Electronics Engineer Intern AGD SOLAR, North Cyprus

Career Resume

Syed Hussain Haider

Mobile: +974-6675-1094  E-mail:

Address: P.O Box 22700, QAFAC, Doha, Qatar

Educational Qualification

Bachelor of Science in Electrical and Electronics Engineering

Eastern Mediterranean University, North Cyprus                                                                  [2016]

Project Handled

1 Refurbishing a wimshurst Generator (2016);

  1. Dual Axis Solar Tracker (2016);
  2. Semi-Autonomous Differential Drive Wheeled Robot (2016);

Work Experience

Duration Position Company
6/2015 to 8/2015 Electrical & Electronics Engineer Intern Qatar Fuel Additives Company Limited, Doha, Qatar
 1/2015 to 5/2015 Electrical & Electronics Engineer Intern AGD Solar, North Cyprus


Key Skills

  • C, C++, Assembly Language
  • MATLAB; Mathematica
  • PSpice
  • IT skills including networking, routing & switching
  • Multisim
  • MS Word and Excel
  • Adobe Photoshop
  • Web design and development



Professional Engineering: Summary Statement

Competency Element A brief summary of how you have applied the element Paragraph in the career episode(s) where the element is addressed
PE1.1 Comprehensive, theory based understanding of the underpinning natural and physical sciences and the engineering fundamentals applicable to the engineering discipline. I) Rotation crosses the brushes and neutralizer bar in the Wimshurst machine producing current.

II) I have the knowledge about developing the automatic solar tracker for increasing the efficiency and intensity of the solar energy captured.

III) Developing the Semi-Autonomous Differential Drive Wheeled Robot.

Career Episode 1: CE 1.2.3, CE 1.3.1 and CE 1.3.2



Career Episode 2: CE 2.3.1 and CE 2.3.3



Career Episode 3: CE 3.2.1, CE 3.3.1 and CE 3.3.2

PE1.2 Conceptual understanding of the mathematics, numerical analysis, statistics, and computer and information sciences which underpin the engineering discipline. I) I have used my knowledge for developing the Wimshurst generator.

II) For designing Dual Axis Solar Tracker, I have utilized light dependent resistors (LDRs), Arduino board, solar cell and motor system.

III) I have used Android (Java) module, BeagleBone Black microcontroller, Wifi technology and android application in this project.

 Career Episode 1: CE 1.3.1



Career Episode 2: CE 2.3.2, CE 2.3.3 and CE 2.3.4


Career Episode 3: CE 3.3.1

PE1.3 In-depth understanding of specialist bodies of knowledge within the engineering discipline. I) I have utilised the various mechanism of Wimshurst generator.

II) I have the knowledge of the different components like Arduino microcontroller board, light sensors, servo motor and DC motor that have used in this particular project.

III) I have developed the obstacle detection and avoidance algorithms form the robot in this undertaken project.

 Career Episode 1: CE 1.3.1



Career Episode 2: CE 2.3.1, CE 2.3.4, CE 2.2.5 and CE 2.4.2



Career Episode 3: CE 3.3.1,  CE 3.3.3


PE1.4 Discernment of knowledge development and research directions within the engineering discipline. I) I have the knowledge of the efficiency and functionality of the motor and different component of the solar tracking system in this project.

II) I have designed and developed the hardware components of Wimshurst machine.

III) I have developed the block diagram and flow chart of operation of the robot.

Career Episode 1: CE 1.2.5,  CE 1.3.1 and CE 1.4.2




Career Episode 2: CE 2.3.2,  CE 2.3.4 and CE 2.4.1



Career Episode 3: CE 3.3.2, CE 3.3.3 and CE 3.4.1

PE1.5 Knowledge of contextual factors impacting the engineering discipline. I) Conducted a detailed literature review on Wimshurst machine.

II) Analysis of the different parameter like efficiency and intensity of the solar tracker.

III) I have designed the H-bridge circuit for regulating the power throughout the robot.

Career Episode 1: CE 1.2.1, CE 1.2.2,



Career Episode 2: CE 2.2.1, CE 2.2.2


Career Episode 3:  CE 3.2.1, CE 3.2.2

PE1.6 Understanding of the scope, principles, norms, accountabilities and bounds of contemporary engineering practice in the specific discipline. I) The significant aim was to develop Wimshurst machine.


II) Controlling the efficiency of tracking the sun’s position.



III) Verification of the sensor effectiveness and obstacle identification.


Career Episode 1: CE 1.2.3, CE 1.3.1, CE 1.3.4 and CE 1.3.2


Career Episode 2: CE 2.2.3, CE 2.3.1 and CE 2.3.2



Career Episode 3: CE 3.2.3, CE 3.3.1 and CE 3.3.2


PE2.1 Application of established engineering methods to complex engineering problem solving. I) I have conducted a detailed literature review for understanding the concept and mechanism of Wimshurst machine.

II) Identifying the difficulties in my Working with Tinkercad software.

III) I have MATLAB and Python Programming language.

Career Episode 1: CE 1.2.4,  CE 1.3.1 and CE 1.4.2



Career Episode 2: CE 2.3.3,  CE 2.3.4 and CE 2.4.1, CE 2.4.2


Career Episode 3: CE 3.3.1, CE 3.3.2 and CE 3.4.2

PE2.2 Fluent application of engineering techniques, tools and resources. I) Knowledge about the several processes of electricity loss and conduction.

II) Used Tinkercad software for developing the 3D model of the solar tracker.

III) I have used FSM (Finite State Machine) for developing the control module of the robot.

Career Episode 1: CE 1.3.3, CE 1.3.2 and CE 1.3.1


Career Episode 2: CE 2.3.1, CE 2.3.2 and CE 2.3.3


Career Episode 3: CE 3.3.1, CE 3.3.2 and CE 3.3.3

PE2.3 Application of systematic engineering synthesis and design processes. I) Designing and developing Wimshurst machine’.

II) Placing each component in correct sequence for implementing the solar tracker.

III) Implementation of “semi-autonomous differential drive wheeled robot”.


Career Episode 1: CE 1.2.3, CE 1.3.1 and CE 1.3.2



Career Episode 2: CE 2.3.3 and CE 2.3.4



Career Episode 3: CE 3.2.2

PE2.4 Application of systematic approaches to the conduct and management of engineering projects. I) Development of the Wimshurst generator.

II) Developing and implementing a dual axis solar tracker.

III) Developing “semi-autonomous differential drive wheeled robot”.

Career Episode 1: CE 1.3.1 and CE 1.3.2

Career Episode 2: CE 2.2.3, CE 2.3.1, CE 2.3.2 and CE 2.3.3


Career Episode 3: CE 3.3.1 and CE 3.3.2

PE3.1 Ethical conduct and professional Accountability I) Conducted the project alone.

II) Conducted the project with a collaborative approach and co-operation with the team member.

III) Conducted the project in a collaborated manner.

Career Episode 1: CE 1.2.3, CE 1.3.3 and CE 1.4.1



Career Episode 2: CE 2.2.3, CE 2.3.5 and CE 2.4.2
Career Episode 3: CE 3.3.3, CE 3.4

PE3.2 Effective oral and written communication in professional and lay domains. I) Delegate specific task based on skills and knowledge.

II) Consult with my project supervisor about the development and implementation of the dual axis solar tracker.

III) Proficiently implement different suggestions within the project.

Career Episode 1: CE 1.2.3, CE 1.3.3 and CE 1.4.1



Career Episode 2: CE 2.2.3, CE 2.3.5 and CE 2.4.2
Career Episode 3: CE 3.3.3, CE 3.4

PE3.3 Creative, innovative and pro-active demeanor.  I) Designed and developed the Wimshurst machine.

II) Developed 3D model of the solar tracker using Tinkercadonline.

III) Designed “semi-autonomous differential drive wheeled robot” with obstacle identification and avoidance mechanism.

Career Episode 1: CE 1.3, CE 1.4 and CE 1.4.2



Career Episode 2: CE 2.3, CE 2.4, CE 2.2.5 and CE 2.4.2


Career Episode 3: CE 3.2, CE 3.3

PE3.4 Professional use and management of information. I) Handled the project alone.

II) I have efficiently used my knowledge of Electrical and Electronics Engineering for the development of automatic solar tracker.

III) Written the entire project report documentation.

Career Episode 1: CE 1.2.3, CE 1.2.5, CE 1.4.2


Career Episode 2: CE 2.2.3, CE 2.2.5, CE 2.4.2

Career Episode 3: CE 3.2.3, CE 3.2.5, CE 3.4.2

PE3.5 Orderly management of self and professional conduct. I) Identified the management issues and initiated collaborative work.

II) Managing the team members and developing the documentation.

III) Achieve organizational goals for the quality of the products and gain benefits of design “semi-autonomous differential drive wheeled robot”.


Career Episode 1: CE 1.4.2, CE 1.3.1 and CE 1.3.2


Career Episode 2: CE 2.4.2, CE 2.3.2, CE 2.3.3 and CE 2.3.4

Career Episode 3: CE 3.4.2, CE 3.3.1 and CE 3.3.2

PE3.6 Effective team membership and team leadership. I)  Handled the project efficiently with the project supervisor.

II) Had ability to perform as team. Ability to support the team goals.

III) Forming multidiscipline team.

Career Episode 1: CE 1.4.1, CE 1.4.2,


Career Episode 2: CE 2.4.1 and CE 2.4.2


Career Episode 3: CE 3.4.1 and CE 3.4.2


CE 1.1: Project Introduction

Name of the Project              : Refurbishing a Wimshurst Generator

Geographical Location         : [Please Fill]

Project Duration                   : [Please Fill]

Organization                          : Eastern Mediterranean University

Position in the Project           : Electrical Engineer

CE 1.2: Construction of Wimshurst Generator Project Background

CE 1.2.1: Characteristics of the Project

Electromechanical devices that have the capacity of generating high voltage is known as electrostatics. Static electricity can be produced by the electrostatic machines through the conversion to electrical charge from the mechanical actions done by the machines. The generator can be classified based on the electric current types of two major categories. Triboelectric effect is the significant cause of the electricity generated by friction in an electrostatic generator. In triboelectric effect, the electrical energy is generated by rubbing two materials together to produce friction. I have undertaken this particular project for evaluating the working principle of the electrostatic machine. For understanding the functionality and working principle, I have further designed and developed a Wimshurst generator in this particular project.

CE 1.2.2: Objectives developed for project

In this particular project, I have introduced the Wimshurst Machine characterized by the high voltage generation of electrostatic current. The Wimshurst Machine uses the existing current present I the generator for charging the induction using electrostatic friction. In terms of developing and designing a new Wimshurst Machine for the project, it was essential to analyze and understand the requirements and functionality of the operations. During this undertaken project, I have focused on understanding the mechanism of the Wimshurst generator. For efficiently completing the undertaken project I have developed the following objectives:

  • To conduct a detailed literature review on Wimshurst generator;
  • To study the history of Wimshurst generator
  • To understand and evaluate the mechanism of the Wimshurst generator
  • To identify the different components required for Wimshurst generator Wimshurst generator;
  • To evaluate the operations of Wimshurst generator;
  • To design and develop a Wimshurst generator for rotationary and stationary parts;

CE 1.2.3: My area of work

I have undertaken this particular project during the completion of the Bachelor degree in “Electrical and Electronics.” I was the only member working on this project. Therefore, I have the entire responsibility for developing ad designing the Wimshurst generator all by myself. While conducting the project and developing the machine, I have conducted a detailed literature review on Wimshurst generator that has assisted me in understanding and evaluating the working principle of the generator. Apart from that, through the I have identified the different components required for developing the design of Wimshurst generator. For collecting relevant information, I have gathered information from various books, journals available at the library and open sources like the internet. After completing the analysis of the working principle, I have efficiently developed the Wimshurst generator in this project.

 CE 1.2.4: Project Group

For designing and developing the Wimshurst generator, I have undertaken the task as an individual project. I was the only member in this project working under the project supervisor Assis. Prof. Suna BOLAT.



The metal sector and insulating disk in the Wimshurst machine are rotated in opposite directions. The rotation crosses the brushes and neutralizer bar in the Wimshurst machine. For the friction developed in the machine, an amplified an induced charge is generated near the disk’s surface. Pairs of metal combs are placed near the output terminals for collecting the voltage of the Wimshurst machine. Electrostatic induction is thus created by the physical contact of the nearby positive charge developed in the Wimshurst machine.



learned that acrylic materials are used for the construction of the capacitors. During the initial phase of the project, I have covered the outer and inner surface of the capacitor using aluminum foil for transforming them into a conductor. Apart from that, in order to create a closed design I have used a cap structure for closing the structure. The cap being of conductive has formed a small gap between the outer and inner layer of conductors. For mitigating the initial problem with the capacitor, I have decreased the total length of the conductor that has fixed the issue.

The second most vital problem that I have faced was in designing the metallic sector of the Wimshurst generator. The metallic sectors being too close to each other, a significant amount of discharge is observed in the Wimshurst generator. For removing the issue, I have cut the sector in to half, for decreasing the distance between them. Decreasing the distance between them has apparently solved the problem.


CE 1.3.5: Plan for producing creative and innovative work

I have knowledge of Electrical and Electronics from my academic degree course that I have utilized in designing the Wimshurst generator. For the development of the rotationary part of the machine, I have prepared the wooden base of 42*40 cm for providing a presentable generator. For supporting the insulating disk, I have used 29cm wooden bars for holding the weight of the disk. In addition to that, I have kept the wooden support small in size for minimizing the vibration caused by the rotation of the disks. Moreover, I have aligned the bars in 45° angle for providing design efficiency.

Figure 3.6: Rotationary part of the machine

CE 1.3.6: Collaborative work

I have conducted this project alone while completing my Bachelors Degree in Electrical and Electronics. I have worked under the supervisor of Assis. Prof. Suna BOLAT for complete the undertaken project. I have regularly communicated with the project manager about the progress of the project. In addition to that, I have collaborated with Assistant Professor Suna BOLAT for effectively designing the Wimshurst generator in this particular project.

CE 1.4: Project Review

CE 1.4.1: Project Overview

In this particular project, I have discussed the Wimshurst generator working principle and mechanism. The Wimshurst generator has been providing to be one of the bets machines producing static electricity. The conducted study has shown that the simplicity of design is required for providing various innovations that changed the technological invention.

CE 1.4.2: My contribution to work

I have faced various problems during the implementation of the Wimshurst generator I have shown my efficient knowledge and skill of the electrical engineering while understanding the flaws and solving the issues in this project. Apart from that, I have effectively worked for increasing the substantiality of the Wimshurst generator.

Career Episode 3

CE 3.1: Project Introduction

Name of the Project              : Semi-Autonomous Differential Drive Wheeled Robot

Geographical Location         : [Please Fill]

Project Duration                   : [Please Fill]

Organization                          : [Please Fill]

Position in the Project           : Electronics Engineer

CE 3.2. Project Background

CE 3.2.1: Characteristics of the Project

The use of the robots has increased in the daily life and even in the industries especially in the nuclear zone and hazardous area. With the increase in the robotics technology, the robotics application has been introduced in the home application. I have undertaken this particular project for focusing the closed loop motion, localization and kinetics of the mobilized robots. In this particular project, I have embedded the microcontroller for physically controlling the mechanism and functionality of the robot. In this particular project, I have comprehended the behavior based system and introduced the robotics system in this particular project. In this particular project, I have designed and implemented the hardware for a robot developed in Android (Java) module.

CE 3.2.2: Objectives developed for project

I have involved myself in the development of the wheel based semi-autonomous robot. I have developed the principle objective of the project is to develop and implement a semi-autonomous robot for providing disturbance rejection, robustness, goal tracking and stability to the developed wheeled- robot. In terms of developing the practical application, I gave leveraged the various mathematical models and theoretical principle for developing the solution required for “semi-autonomous differential drive wheeled robot.” Therefore, for the efficient development of the robot, I have formulated the following objectives:

  • To provide stability to the developed robot. I have set the main objective of the robot to develop the functionality so that it would be able to response to all different input types;
  • To provide complete control over the developed robot for achieving goal oriented functionality;
  • To implement the tracking mechanism in the robot for minimizing the chances of errors;
  • To implement both manual and automatic control for adjusting the movement and orientation of the project;
  • To provide robustness to the robot to recover from the flaws;

CE 3.2.3: My area of work

For the completion of this particular project, I have been assigned as Electronics Engineer. I have the responsibility in the identification of the different element required for the development of the robot. During the initial phase of the project, I have identified three major elements of the robots design namely actuators, controller, and sensors.




CE 3.3: Distinctive Activity

CE 3.3.1: Comprehending the Theory of the project

The technological advancement has provided discovery and development of cutting edge technological invention and sensors that help in enhancing the perspective of the robotics more accurately. The application of the sensors provided the robots with accurate identification and measurement of the environment they are operating.

CE 3.3.2: Engineering Knowledge and Skills applied in the project

I was given complete responsibility in developing the control system of the robot. In addition to that, I have involved myself in designing the software required for controlling the robot. I have developed the software in two significant modules dependent on each other. I have used my knowledge of MATLAB in implementing the odometry, kinetic and behavior of the robot. I have designed the other significant module of the robot leveraging Python language on the embedded BeagleBone Black microcontroller. The development of the software module has provided me in defining the data communication between the robot and developed Android application.

CE 3.3.3: Accomplishment and Task Performed

I was assigned as the Electrical Engineer in this project. I have efficiently completed the responsibility given to me in this project. Apart from that, I have integrated the project in small portions for achieving the project objectives. In addition to that, I have assisted the project supervisor in allocating the responsibility to the team members based on their particular area of expertise. Therefore, I have achieved considerable success in the project with the teamwork conducted.

CE 3.3.4: Identified Issues and Their Solutions

During the implementation and design of the “semi-autonomous differential drive wheeled robot,” I have faced major problems. The initial problem that I have faced was the insufficient power source for the robot. All the components of the developed robot were not provided with sufficient power supply. The second most significant problem that I have faced was the difficulties in implementing the Wifi technology. The various in the tolerance has resulted from I the limitation of providing effective robustness required for the achieving the project objective. This has resulted in inefficacy and limitation in the navigation control system.



CE 3.3.6: Collaborative work

During the whole time period of the project, I have involved myself in the collaborative work with the team members. I have regularly communicated with the team members and updated them with the progress of the project. In addition to that, I have remained in close contact with the project manager throughout the time period of the project.

CE 3.4: Project Review

CE 3.4.1: Project Overview

The design of the “semi-autonomous differential drive wheeled robot” was implemented based on the FSM. The simulation of the robot has provided a positive result in identifying the parameter for recognition of the goal and obstacle in the path of the robot. In addition to that, the application of the PID controller was proved to be a vital and effective tool for steering the movement of the robot. Therefore, the developed robot was able to identify the goal and efficiently avoid the obstacle in its path.

CE 3.4.2: My contribution to work

Throughout the project, I have portrayed my efficiency in communication and management skills. Through the application of the mathematical knowledge and engineering skills, I have achieved success in the undertaken project.

Career Episode 2

CE 2.1: Project Introduction

Name of the Project               : Dual Axis Solar Tracker

Geographical Location          : Northern Cyprus

Project Duration                     : [Please Fill]

Organization                           : Eastern Mediterranean University

Position in the Project            : Engineer Trainee

CE 2.2: Dual Axis Solar Tracker Project Background

CE 2.2.1: Characteristics of the Project

With the goal towards the sustainable lifestyle of energy consumption, solar panels have gained considerable popularity for converting the solar power to electrical power. Solar energy can be easily harnessed with various emerging technologies like a solar thermal tunnel, artificial photosynthesis, and photovoltaic cell. The Earth’s surface receives about 84 terawatts of solar power from which the human is consuming only 12 terawatts of the power. In this particular project, I have designed a solar tracking system that automatically locates the position of the Sun. For designing the particular system, I have utilized light dependent resistors (LDRs), Arduino board, solar cell and motor system. To be precise, I have undertaken the project to design an automated solar tracker for converting maximum solar power electrical energy throughout the day.

CE 2.2.2: Objectives Developed for Project

The sun shows continuous movement around the sky throughout the day. Therefore, for absorbing the maximum amount of solar energy the solar panel collecting and converting the solar energy to electrical energy also needs to be moved to the current position of the sun. Therefore, I have figured that it is essential to keep the solar panel faced directly towards the sun for collecting the highest intensity of solar power. For the design of the automatic solar tracker, I have developed the following objects:

  • To identify appropriate methodology for automatically tracking the Sun throughout the day;
  • To increase the intensity and efficiency of the solar radiation and techniques for storage;
  • To develop the algorithm for effectively calculating the sun’s position in the sky;
  • To identify the efficient component of the solar tracking system;
  • To implement the different components and module of the solar tracker together for effective functionality;
  • To place each component and pace the LDRs in appropriate place for determining the location of Sun;

CE 2.2.3: My area of work

I was assigned as an Engineer Trainee for designing and implementation of the automatic solar tracker.  Have a knowledge of the different components like Arduino microcontroller board, light sensors, servo motor and DC motor that have used in this particular project. For developing and implementing the mechanism of the automatic solar tracker, I have taken the responsibility of identifying the different factors that have a vital impact on the efficiency of solar radiation.










dual axis



This project work focuses on the kinematics, localization and closed loop motion control of a differential drive mobile robot which will be capable of navigating to a desired goal location in an obstacle zoned environment. The robot will contain an embedded microcomputer which will serve as the physical controller and foreseer of all its functionalities. Some of the key objectives for development include stability, tracking, robustness and dynamic control of the robot. This project will also provide a comprehensive background on autonomous behavior-based systems, control theory of autonomous mobile robots and some introductory robotics. Some rudimentary MATLAB, Android programming and software design techniques for the implementation and simulation of the robot’s control system will be discussed. The distinctive property of the proposed controller is its robustness in the presence of uncertainties in the environment and unpredictable system parameter changes. Simulations will be used to test a totally autonomous implementation of the robot while a semi-autonomous version which requires partial human control will be implemented practically.




Table of Contents

Abstract. 2

List of figures. 5

List of Tables. 6

  1. Introduction.. 7

1.1 Overview.. 7

Sensors. 8

Controller 8

Actuators. 11

1.2 Project Objectives. 12

1.2.1 Stability. 12

1.2.2 Tracking. 12

1.2.3 Robustness. 12

1.3 Applications of the Differential Drive Robot. 13

1.3.1 Surveillance. 13

1.3.2 Transportation. 13

  1. Background Survey/ Literature Review… 14

3 Robot Hardware. 17

3.1 BeagleBone Black. 17

3.2 Wheel Encoder (Simulation) 19

3.3 Infra-Red (IR) Proximity Sensor. 19

3.4 H-bridge. 21

3.5 Voltage Regulator. 22

  1. Methodology. 24

4.1 Modeling and Control. 24

4.1.1 Differential Drive Kinematics. 24

4.1.2 Odometry. 26

4.1.3 Sensory Modality. 28

4.1.4 Robot’s Behaviors and Behavior-Controllers. 29

4.1.5 Finite State Machine. 35

4.1.6 Control System Model 36

4.2 Software Design. 37

4.2.1 MATLAB. 37

+controllers.. 38

+robot.. 38

+simulator.. 39

4.2.2 Python Code and Communication Protocol 41

4.2.3 Android App for Semi-Autonomous Control 46

  1. Electronics. 48

5.1 The voltage divider circuit. 49

5.3 IR sensors. 49

5.4 The diode. 50

5.5 Power supply for the BeagleBone black. 50

5.6 The H-bridge circuit. 50

  1. Engineering Standards. 53
  2. Conclusion.. 55

8.1 Achievements. 55

8.2 Limitations. 56

8.2.1 Solution. 56

8.2.2 Results. 57

  1. Time Plan.. 58
  2. Cost Analysis. 59
  3. References. 60




List of figures

Fig. 1.1 Control System Block Diagram.. 8

Fig. 1.2 Controller. 9

Fig. 1.3 Simple FSM… 10

Fig. 3.1 BeagleBone Black component details. 18

Fig. 3.2 BeagleBone Black component block diagram.. 18

Fig. 3.3 IR sensor readings. 20

Fig. 3.4 Block Diagram of the H-bridge IC. 22

Fig. 3.5 Circuit Diagram of LM2596 DC Voltage Regulator. 23

Fig. 4.1 Robot Model. 25

Fig. 4.2 Position and Orientation. 25

Fig. 4.3 Distance moved by robot wheels and center. 27

Fig. 4.4 Orientation and distance of the IR sensors. 28

Fig. 4.5 Weighted IR sensors’ Vectors. 29

Fig. 4.6 Goal Location. 30

Fig. 4.7 IR Sensor’s distances. 31

Fig. 4.8 Finite State Machine (FSM) 35

Fig. 4.9 Control System Model. 36

Fig. 4.10 Software structure. 37

Fig. 4.11 Simulator Home Window.. 39

Fig. 4.12 Simulator Environment with robot. 41

Fig. 4.13 Robot Control UI 46

Fig. 4.14 FSM for Robot Control. 47

Fig. 5.1 Robot Schematic. 48

Fig. 5.2 Voltage Divider. 49

Fig. 5.3 H-bridge Pin outs. 52

Fig. 5.4 Breadboard view of Robot Schematic. 52

List of Tables

Table 3.1 Look-up Table. 21

Table 8.1 Results: PWM to left and right Voltage values. 57

Table 9.1 Time Plan. 59

Table 10.1 Cost Analysis. 60




1. Introduction

Robotic systems have become part of our everyday life; they’ve been used in industries, hazardous areas (like nuclear zones) and so on. Now, robotic systems are coming into our homes in large scale. It is being said that in the very near future, robotic systems will officially be used in delivery services, retail stores and much more. The evolution of technology has brought about the production of different variety of advanced sensors which has helped robotic systems perceive the world around them more accurately. They can see through vision systems, hear through a set of microphones and sense their environment in ways not possible in the past.

1.1 Overview

This project will be a result of an aggregate of subjects conveyed to us as students during the course of our studies, in terms of both theory and practical disciplines including control theory, power, electronics, communication systems, programming, and simulations. We have combined all the knowledge conveyed to us in these various disciplines in developing and implementing a control system that autonomously navigates a differential drive robot from an initial point to a desired goal. We will construct the necessary hardware for the robot and implement the control law as a software package using Java (Android) and we will also discuss in detail, the autonomous implementation and modelling using MATLAB. The principle concern and intent of this project is to achieve semi-autonomous control of a differential drive robot in terms of stability, goal tracking, robustness and disturbance rejection. We will use theoretical principles together with different mathematical models to provide solutions for the control of a semi-autonomous differential drive wheeled robot.

The control system of the robot will be made up of three major parts; they include:

– Sensors

– Controller

– Actuators

Fig. 1.1 Control System Block Diagram

Fig. 1.1 shows a block diagram of the major parts of the robot’s control system. Where   represents the desired state of the robot as in its set goal; represents the robots actual state as in its position and orientation;    are the left and right wheel velocities of the robot.


The sensors are the means through which the robot gets information about its environment. The robot needs to have an idea of what its operational environment is like in order for it to make proper decisions. We will be making use of five Infrared (IR) Proximity sensors and a wheel encoder (for simulations) in this project. The IR sensors will be used to detect obstacle distances from the robot which is useful for obstacle avoidance while the wheel encoder will be used to determine the distance moved by the left and right wheels of the robot. The information obtained from the wheel encoder will be used to determine the robot’s position and orientation.


This acts the brain of the system. The robot’s response (behavior) to different events in the environment will be decided and processed by the controller. The controller for the robot will be developed as a software package using MATLAB and this software will be executed on the robot’s embedded microcomputer, the BeagleBone black. The controller will be made up of two major parts which include:

-Behavior controllers



simple fsm


The actuators serve as the muscles of the robot. They are the means through which the robot actualizes its functionalities, that is, they enforce the commands from the controller. The two wheels of the robot will serve as its actuators. A H-bridge IC will serve as a mediator between the robots wheels and the controller for smooth control of the wheels’ instantaneous velocities.

1.2 Project Objectives

1.2.1 Stability

One of the main objectives of this project is to attain an asymptotically stable state of the robot in terms of its control response to all kinds of inputs.  Here, the objective is to obtain a control model so that the robot’s goal orientation is reached in finite interval of time together with other functionalities like obstacle avoidance.

1.2.2 Tracking

The objective of tracking control is to minimize errors as the robot manually or automatically adjusts its orientation. The more we minimize errors in a system the more we improve on our control system design so that we can reach our desired goal with very less offsets or none at all.

1.2.3 Robustness

Retaining the functionality of a mobile robot even in the presence of faults in its hardware is of particular interest. This fact becomes even more important in the case of truly autonomous systems, which are carrying out tasks without or at least with limited possibility for interacting with a human operator. Hardware faults like broken or overheated motors are well known phenomena in the robotics domain. These problems are not limited to research prototypes. Even in commercial or safety-critical applications, the reliability of robotics hardware is limited and tends to fail frequently.

In general a robot will not be able to successfully finish its task in the case of a fault in its hardware. If the robot should be able to deal with such situations automatically, the robot control system has to be enriched with the capability for reasoning about such faults. Furthermore, the control system should be able to adapt its behaviors in order to compensate for the faults. Therefore another objective, which is robustness, must be modeled and improved to perfect the robot’s response.



1.3 Applications of the Differential Drive Robot

1.3.1 Surveillance

This robot can be used for purposes of surveillance using video graphic modules such as a wireless camera module which can send live feed back to the source of the command branch. This can be used in many different disciplines and fields such as the army, the federal intelligence agencies and much more.


1.3.2 Transportation

This robot can be used in freight companies as an automated transport system to transport goods from one place to the other upon integrating this control design structure into vehicles such as trucks. These can also be used to transport one who is in need of aid if such a situations should arise where a semi- autonomous differential drive robot is required.



2. Background Survey/ Literature Review

Robotics is the branch of mechanical engineeringelectrical engineering and computer science that deals with the design, construction, operation, and application of robots, as well as computer systems for their control, sensory feedback, and information processing. These technologies deal with automated machines that can take the place of humans in dangerous environments or manufacturing processes, or resemble humans in appearance, behavior, and/or cognition.

The word robotics was derived from the word robot, which was introduced to the public by Czech writer Karel Čapek in his play R.U.R. (Rossum’s Universal Robots), which was published in 1920. The word robot comes from the Slavic word robota, which means labour. The play begins in a factory that makes artificial people called robots, creatures that can be mistaken for humans – similar to the modern ideas of androids. Karel Čapek himself did not coin the word. He wrote a short letter in reference to an etymology in the Oxford English Dictionary in which he named his brother Josef Čapek as its actual originator.

According to the Oxford English Dictionary, the word robotics was first used in print by Isaac Asimov, in his science fiction short story “Liar!”, published in May 1941 in Astounding Science Fiction. Asimov was unaware that he was coining the term; since the science and technology of electrical devices is electronics, he assumed robotics already referred to the science and technology of robots.

The concept of creating machines that can operate autonomously dates back to classical times, but research into the functionality and potential uses of robots did not grow substantially until the 20th century. Today, robotics is a rapidly growing field, as technological advances continue; researching, designing, and building new robots serve various practical purposes, whether domestically, commercially, or militarily.

Other than the works of Karel Capek in his play R.U.R in 1921, Westinghouse Electric Company in the 1930s developed the Elektro Humanoid Robot which was exhibited in the 1939 and 1940 world fairs. In 1948, William Grey Walter designed Simple robots exhibiting biological behaviors. In 1961, George Devol created Unimate, the first installed industrial robot. AAB robot group in 1976 designed the world’s first microcomputer controlled electric industrial robot, IRB 6 which was delivered to a small mechanical engineering company in southern Sweden. A year later in 1975, a programmable universal manipulator arm, PUMA was designed by Victor Scheinman.

Several advances have been made on autonomous robots into achieving full autonomy. The robot must thus be able to gain information about its environment, work for an extended period without human intervention, move either all or part of itself throughout its operating environment without human assistance and avoid situations that are harmful to people, property, or itself unless those are part of its design specifications. In order to achieve this, the theory of control systems has been significantly influential.

Yongoug Chung published in IEEE, Industrial electronics vol. 48 issues 4, an article on a position control differential drive wheeled robot where he proposed a position control algorithm with two separated feedback loops, a velocity feedback loop and a position feedback loop. His proposed control algorithm seeks to eliminate external error caused by unexpected environmental situations which makes it possible for the robot to accurately follow the designed trajectory.

The Design of a Differential-Drive Wheeled Robot Controller with Pulse-Width Modulation was proposed by Farshad Arvin, Khairulmizam Samsudin, and M. Ali Nasseri in a paper published in 2009 in an edition of the IEEE publication. The technique is employed on an autonomous miniature robot for swarm robotic platform that uses differential drive with a caster wheel configuration. A microcontroller as the main processor is deployed to generate motor control pulses and manage duty-cycle of PWM signals. They stated that time estimation and also speed selection calculations illustrate the feasibility of this technique to be used in mobile robot motion control problem.

With the knowledge gained thus far and making modifications on previous works on differential drive robots, we are going to be able to effectively design an autonomous differential drive wheeled robot which will move in effective, safe, and predictable ways. This will indicate a coherent understanding of control theory and its application on dynamic systems. It is important to note that the use of PID controller is necessary in order to stimulate the response of the robot and its changes to external disturbances, thereby ensuring a more effective feedback response while using the concept of odometry.




3 Robot Hardware

3.1 BeagleBone Black

The BeagleBone Black is a barebone development board with a Sitara ARM Cortex-A8 processor running at 1GHz, 512 MB of RAM. It contains an on-chip fast Ethernet, a microSD slot, and it adds HDMI and 4 GB of 8-bit eMMC flash memory and a USB host port. It has an angstrom pre-installed operating system, which is a stripped down version of Linux specifically designed for embedded devices.

Although the BeagleBone Black is least known compared to the Arduino and Raspberry-pi microcontrollers, it is a more powerful Linux microcomputer worthy of consideration for many high level processing applications and projects.

The BeagleBone Black is used in the autonomous differential drive wheeled robot as the power house because of the need to connect to the internet via Ethernet interface and USB. It is necessary to update the Angstrom operating system as well as download and install the python programming language packages. The robot code written in python language is then downloaded into the BeagleBone Black via a USB Wi-Fi module which should have been configured to enable internet connectivity. Also, the Wi-Fi module is needed in order to communicate between the robot and the host computer running the MATLAB simulation software for the robot.

Furthermore the BeagleBone Black encourages a better interfacing with external sensors used in the autonomous differential drive wheeled robot such as Infra-red proximity sensor and the optical wheel encoder.


3.2 Wheel Encoder (Simulation)

The wheel encoder is a sensor that allows the robot to measure the precise speed and distance its wheels have traveled over some time interval. This is very important because it lets the robot determine its position and orientation with respect to the set goal. A typical encoder uses optical sensor(s), a moving mechanical component, and a special reflector to provide a series of electrical pulses to the embedded microcontroller. These pulses can be used as part of a PID feedback control system to determine translation distance, rotational velocity, and/or angle of a moving robot or robot part.

The wheel encoder may be used to infer the relative position of the robot. This inference is called odometry. The relevant information needed for odometry is the radius of the wheel, the distance between the wheels, and the number of ticks per revolution of the wheel (16 ticks/rev). The radius of the wheel used for the differential drive robot is about 32.5mm and the distance between the two wheels is about 99.5mm.

This part of the robot will be simulated as we did not include it in our physical design. It is the main component used to implement odometry as explained in 4.1.2.

3.3 Infra-Red (IR) Proximity Sensor

A proximity sensor is a sensor able to detect the presence of nearby objects without any physical contact. Thus, an Infra-red proximity sensor is one which makes use of infra-red which is an invisible radiant energy, electromagnetic radiation with longer wavelengths than those of visible light. An infra-red proximity sensor often emits a beam of infrared radiation, and looks for changes in the field. The Infrared Proximity Sensor that we will be making use of in this design is the Sharp GP2D120XJ00F. The IR range sensors we will be using are effective in the range 0.04 m to 0.3 m only. The IR sensors return voltage values in the range of 0.4V to 2.75V corresponding to measured distances. Fig. 3.3 shows the function that maps the output voltage to distance. The Beagle bone Black microcontroller which we will be making use of digitizes the analog output voltage using an internal voltage divider and a 12-bit, 1.8V Analog-to-Digital converter (ADC). The maximum input voltage for the BeagleBone’s analog pin is 1.8V, but the IR sensors can output voltages up to 2.75V (3.1 V in some rare cases). As a consequence, an external voltage divider circuit is attached between the sensors and the BeagleBone to step down the voltage. The relationship between the analog voltage from the sensors and the output of the BeagleBone’s ADC is:

is the output from the BeagleBone’s ADC,  is the output from the voltage divider and  is the output from the IR sensors.

                 Fig. 3.3 IR sensor readings  

Fig 3.3: The points on the graph were obtained by placing objects at specific distances from one of the IR sensors and measuring the corresponding voltage from its output terminal (without passing it through the external voltage divider circuit).


0.04 2.750 0.9167    611
0.05 2.350 0.7833    522
0.06 2.050 0.6833    456
0.07 1.750 0.5833    389
0.08 1.550 0.5167    344
0.09 1.400 0.4667    311
0.10 1.275 0.4250    283
0.12 1.075 0.3583    239
0.14 0.925 0.3083    206
0.16 0.805 0.2683    179
0.18 0.725 0.2417    161
0.20 0.650 0.2167    144
0.25 0.500 0.1667    111
0.30 0.400 0.1333     89









Table 3.1 Look-up Table

Table 3.1 shows the relationship between   and the corresponding distance,  in meters.

Converting from the analog output voltage to a distance is a little bit more complicated, because the relationship between the analog output voltage and distance is not linear, and Table 3.1 provides a coarse sample of points. MATLAB’s polyfit and polyval functions are used to estimate the coefficients of a function that outputs the IR sensor distances given their analog voltage.

3.4 H-bridge

The H-bridge is an electronic circuit that enables a voltage to be applied across a load in either direction. These circuits are often used in robotics and other applications to allow DC motors to run forwards and backwards. The H-bridge IC used in the autonomous differential drive wheeled robot is the L293D Quad Half H-Bridge. The L293D is a quadruple high-current half-H driver designed to provide bidirectional drive currents up to 1 A at voltages from 4.5 V to 36 V. The device is designed to drive inductive loads in this case DC motors. The DC motors are powered from pin 8 which is connected in series with the input of the voltage regulator.


Fig. 3.4 Block Diagram of the H-bridge IC [4]

Fig. 3.4 shows a block diagram of the H-bridge with its input and output pins as well as the output to the motors.


3.5 Voltage Regulator

Voltage regulator is designed to automatically maintain a constant voltage level. It may use an electromechanical mechanism, or electronic components. Depending on the design, it may be used to regulate one or more AC or DC voltages. Electronic voltage regulators are found in devices such as computer power supplies where they stabilize the DC voltages used by the processor and other elements.

In the autonomous differential drive wheeled robot, we make use of an adjustable LM2596 dc to dc electronic voltage regulator in the electronic circuit to stabilize and maintain an output voltage of 5 volts from an input voltage source of 12 volts. The 5 volts is applied to the VCC of the H-bridge and it’s also needed to power the BeagleBone black microcontroller. It is connected in series with a diode to its input and capacitors depending on the required output. A circuit of the LM2596 is shown in figure 4.

Fig. 3.5 Circuit Diagram of LM2596 DC Voltage Regulator [10]
Fig. 3.5 contains a schematic diagram of the voltage regulator which consists of the main  LM2596 IC and a few capacitors, diodes, inductors and resistors to aid the maintain a constant output voltage supply independent of any fluctuations in the input

The output from the voltage regulator will be used to supply power to the H-bridge and all of the robots five IR sensors.

4. Methodology

4.1 Modeling and Control

The design of any control system begins with a model. Models represent an abstraction of the actual behavior of the system. Without models, not much can be done in terms of control design. They give us the ability to influence the dynamics and state(s) of the system.

The end product of this process will be a discrete time model of the entire system. To get there, we need to deal with the laws of physics which are continuous in nature. Hence, we will get a continuous time model of the robot which we will convert to a discrete time model that can be implemented as software.

Since we are designing a differential drive wheeled robot, we need a differential drive model. A differential drive wheeled robot has two wheels which can turn at different rates; hence we can move the robot in different directions by varying the wheel velocities. The robot always moves in the direction of the wheel with the smaller velocity. If the two wheels have the same velocity, the robot moves in a straight line.

4.1.1 Differential Drive Kinematics

Different systems require different models; a stationary system requires a static model while a system in motion requires a kinematic model. Since the differential drive robot will mostly be in motion when accomplishing a task, it is therefore necessary to model its kinematics.

There are two important system parameters we need to define in order to model the differential drive, namely the wheel radius,  and the distance between the wheels, . The outputs of the control system are the left wheel angular velocity,  and the right wheel angular velocity, .

Fig. 4.1 Robot Model

Fig. 4.1 shows an animation of the robot where the black rectangles represent the wheels and the red rectangle represents the body of the robot.

Using these four known control parameters, we can estimate how the position and orientation of the robot evolves with time. The position and orientation of the robot are represented by three state variables,  on the Cartesian coordinate system. This said change in position and orientation of the robot can be described in continuous time as the derivative of its states variables with respect to time given as . Since the derivative of a body’s position with respect to time describes its velocity, the derivative of the robots position,  and its orientation,  describes its linear and angular velocities respectively.

Fig. 4.2 Position and Orientation

As shown in Fig. 3.2,  is the robot linear velocity in the  direction  is the robot’s linear velocity in the  direction; ω is the robot’s angular velocity and  is the robot’s linear velocity at an angle, θ from the x-axis.

The mathematical equations below describe the relationship between the robot’s velocities and its wheels angular velocities, hence the differential drive mathematical model:

(4.1) [8]
(4.2) [8]
(4.3) [8]

and  are our design parameters and we can map these parameters to the robot’s wheel velocities by the equations below:

(4.4) [8]

and  will be input commands to the robot’s actuators. The output velocities of the actuators are fed back in terms of the change in the robot’s position and orientation over a time interval; this is used to compute the robot’s linear and angular velocities again (using equations (4.1) and (4.2) respectively). This process continues every clock cycle until the robot gets to its goal.

4.1.2 Odometry

Now that we have a differential drive kinematic model for the robot, we need to implement another model that allows the robot to determine its state information, that is, its position,  with respect to the set goal and its orientation or heading,  with respect to the set goal orientation. Odometry is the means by which we can obtain this information.

Odometry is simply the use of data from motion sensors to estimate the change in distance of the robot over a certain period of time. There are a wide variety of sensors that could be used for this purpose including, compasses for orientation, accelerometers, GPS, gyroscopes for position information. The motion sensor we will be making use of in this project is the wheel encoder which enables us to determine both the position and orientation of the robot. Most of the details of the wheel encoder are discussed in the hardware section in full detail.

The wheel encoder lets the robot determine how far its left and right wheels have moved over a certain period of time.

Fig. 4.3 Distance moved by robot wheels and center

Fig. 4.3 shows the distance moved by the robots left and right wheels, including its center. The distance moved by the left wheel,  and the distance moved by the right wheel,  are obtained from the wheel encoder as follows:

-The wheel encoder returns 32 tick counts per revolution of each wheel.

-The wheel encoder returns tick counts even when the robot is stationary, hence the number of      tick counts within the time period of consideration,  is obtained by subtracting the number of old tick counts,  from the total number of ticks,   as shown below:


Equation (4.6) is valid for both wheels and the distance moved by either of the wheels can be   computed by using the equation below (  is the radius of the wheels):

(4.7) [8]

ó  and  ó . In Fig. 4.3, it’s obvious that , since   .

-The distance moved by the center of the robot can be calculated as follows:

(4.8) [8]

Using these calculated distances, we can now determine the new state of the robot,  given that its initial state was  using the following equations:

(4.9) [8]
(4.10) [8]
(4.11) [8]

 4.1.3 Sensory Modality

We’ve so far designed two models for our robot; they include the kinematics of the robot and its odometry. Now, we need to design another model that lets the robot sense the world around it. We will be using the IR proximity sensors for this purpose. Detailed information about this sensor is available in the hardware section.

We will align an array of five IR sensors around the robot as shown Fig. 4 in the next page:

Fig. 4.4 Orientation and distance of the IR sensors [7]

Fig. 4.4 shows the positions of the IR sensors relative to the robot and the distances derived from them. It is clear that  and  are less than the other distances; this indicates an obstacle in that direction.

The orientation (relative to the body of the robot) of IR sensors 1 to 5 is  and  respectively. This forms a range sensor skirt that can be used to detect obstacles in almost every direction around the robot.

For the robot to make sense of the information from the IR sensors, we need to convert those distances to vector points around the robot as shown in Fig 4.4.  These points have their origin at the robot’s center. We then weigh each vector according to their importance as shown below:

,  ,………,

Fig. 4.5 Weighted IR sensors’ Vectors

Fig. 4.5 shows the weighting constants,  used to scale the vectors defined for each IR sensor according to their importance. The three IR sensors in front will have larger weights than the others since they are more useful for obstacle avoidance.

The front and side vectors are more important for obstacle avoidance while moving forward, hence, they will have relatively higher weights. These weighted vectors will be used for several important purposes when we define the robot behaviors.

4.1.4 Robot’s Behaviors and Behavior-Controllers

We will be designing our robot based on the assumption that the environment (the robot’s field of operation) is dynamic, constantly changing and unknown to the robot. Hence, our control system has to be robust enough to operate optimally in all conditions. To accomplish this, we will be developing a library of behavior-controllers. These behavior-controllers will be responsible for different behaviors of the robot in response to an event in the environment. Each behavior of the robot has a behavior-controller corresponding to its name. We will then implement a computational model that lets the robot decide which behavior-controller is appropriate for a certain event. This computational model is generally referred to as a Finite State Machine (FSM).

We will be designing five basic behavior-controllers for our robot. They include:

  • GoToGoal
  • AvoidObstacles
  • AvoidObstacles-and-GoToGoal
  • Stop
  • GoToAngle

GoToGoal Controller

Once this behavior-controller is triggered, it starts to steer the robot to the set goal location. It does this using the differential drive kinematic equations obtained previously.

The linear velocity,  is set to a constant, and the angular velocity,  is constantly adjusted to provide the desired heading/orientation,  towards the goal. To properly adjust the angular velocity, a PID regulator is used. The input error term to the PID regulator is:

(4.12) [8]

is the goal orientation and  is the orientation of the robot at each iteration.

  (4.13) [8]
 are the PID regulator gains. After fine tuning, we obtained their values to be:


Fig. 4.6 Goal Location

Fig. 4.6 shows the robot and its set goal. It can be seen that the robot needs to align itself with the GoToGoal angle,  before translating on a straight line to its goal.

  (4.14) [8]

Once the orientation of the robot,  is properly adjusted such that the PID error term, , then the angular velocity of the robot will be zero, and the robot simply translates to its goal on a straight line with a constant linear velocity.

AvoidObstacle Controller

The AvoidObstacle controller steers the robot away from obstacles to avoid collisions. It is triggered when the robot is at an unsafe distance from the obstacle.

The weighted vectors shown in Fig 4.5 will be used to create a single obstacle avoidance vector as given below:

  (4.15) [7]

Where  represents the distances measured by the IR proximity sensors and  represents the weight of each distance depending on its importance.


The three IR sensors in front will have larger weights since they are more relevant for obstacle avoidance. If all the distance vectors are equal, this implies that the side vectors will cancel each other and only the forward vector will be left;


If that is not the case, as it is in fig. 4.6, the distances gotten from the sensors facing the obstacle will contribute lesser to the avoid-obstacle vector and the result will be a vector pointing away from the obstacle. This will cause the robot to orient itself away from the obstacle.

Mathematical description for obstacle avoidance

In order to coherently understand the avoid obstacle controller, we must give a concise mathematical explanation with inherent equations and expressions. The aim is to compute the avoid obstacle vector  with orientation of   . To do this, we must first obtain the raw IR voltage values from the IR sensors. More detail about the relationship between distance and the IR sensors’ output voltage is given in 3.3.3.


The relationship between  and distance is nonlinear, therefore, to obtain the distance corresponding to , we will make use of MATLAB’s polyfit and polyval functions and the sample points shown in Table 3.1. Using polyfit, we will estimate the coefficients of a 5th order polynomial to fit the data in Table 3.1 as follows:

coeff = polyfit(D, V, N);

coeff = [-4.3945   13.6125  -16.8373   10.6337   -3.6243    0.6288];

Where D = array containing all distance points in Table 3.1,

V = array containing all analog voltage points,

N = order of polynomial


Using coeff and the IR sensors’ voltages, we can estimate the value of the distance using polyval as follows:

ir_distances = polyval(coeff, ir_voltages);



We must transform the IR distances measured by each sensor to a point in the reference frame of the robot. In order to achieve this, we must compute a vector to each point from the robot represented as  for each of the sensors. This transformation can be defined as:


, is the vector of the distance measured in meters by each of the IR sensors. We apply a transformation matrix based on the position and orientation of each sensor.

R is the Transformation matrix derived from the rotational transformation about z axis.


Next, we will apply a second transformation in order to transform the point from the robot reference frame to the world’s reference frame. This can be expressed as



As indicated in equation 4.15 this vector is replicated and multiplied by certain weighted coefficient which ensures a particular importance to a specified sensor. The MATLAB repmat function which replicates the array of values is used to obtain the required vectors and summed to get the avoid obstacle vector  which is expressed in MATLAB as:

u_i = (ir_distances_wf-repmat([x;y],1,5))*diag(sensor_gains);




u_ao = sum(u_i,2);



is then derived from the summed up vector and used to compute the error as in the go to goal controller

This is then applied to the PID controller to obtain a heading that will steer the robot with an angular velocity as in the go to goal controller.

AvoidObstacle-and-GoToGoal Controller

This controller simply blends the features of GoToGoal and the AvoidObstacles behavior-controllers. It is implemented by computing a vector which combines the GoToGoal and AvoidObstacle vectors as shown by equation 4.16 below:

(4.25) [8]

This new vector combines the effects of the go-to-goal vector,  and the avoid-obstacles vector,  . This causes the robot to attempt avoiding any detected obstacles while heading towards the set goal. Although, this controller blends between the go-to-goal and avoid-obstacle controller, it may fail to avoid larger obstacles since it is more focused on heading towards the goal (as can be seen from the gains of the two vectors) than avoiding obstacles, hence the pure avoid-obstacle vector is needed in such cases.

Stop Controller

This controller enables the robot to stop when it finally reaches its goal. It simply sets the linear velocity,  and the angular velocity,  of the robot to zero, bringing the robot to a halt.

GoToAngle Controller

The GoToAngle controller simply steers the robot to a desired orientation,  . It is similar to the GoToGoal controller in the sense that it steers the robot in a desired orientation, but unlike the GoToGoal controller, the GoToAngle controller does not call the stop controller to stop the robot at a specified position, , rather, it continues to steer the robot with a constant velocity in the specified orientation forever, unless the robot encounters an obstacle or the robot is turned off. The GoToAngle is not part of the FSM for this design but it can serve a very important purpose of navigating the robot in a particular direction for as long as the operator desires. The stop controller has to be triggered manually by the operator in this case.


4.1.5 Finite State Machine

The Finite State Machine (FSM) is the control model that is used to connect all the behaviors together. It is made up of a finite number of states and switching-logics.

The FSM that will be linking all the behavior-controllers together is as shown in Fig. 4.8:



4.2 Software Design

The software is divided into two mutually exclusive but dependent parts. The part of the software that implements the robots FSM, it behaviors, kinematics and odometry is designed using MATLAB and is executed on a Desktop computer. The other part of the software is designed using Python and it runs on the robots embedded microcomputer (the BeagleBone black is used as the robots embedded microcomputer in this project). There are various communication modules defined within these two software packages that enable them to exchange data in real time through a Wi-Fi network.

4.2.1 MATLAB


MATLAB was used to implement the robots FSM and all its behavior-controllers because of its effectiveness in handling vectors and matrices and the very useful built–in high level library functions it contains. It also supports object oriented programming which is indispensable in this project.

Fig. 4.10 is a flowchart of the control software. The Supervisor is the center for most of the processing.

The inputs to the selected behavior – controller includes the robots distance to obstacles, its position and orientation and its linear and angular velocities. The selected behavior – controller then computes new linear and angular velocities for the robot in order to accomplish a certain task. For example, if the go – to – goal behavior – controller is selected, it will first compute the shortest distance vector to the robots goal given its current location, afterwards, it will compute the appropriate linear and angular velocities  to cause the robot to move parallel to this vector.

The major portion of the software code is contained in three MATLAB package folders which are always indicated with a ‘+’ sign before their names. They include:

  • +controllers
  • +robot
  • +simulator


All the behavior-controllers and the supervisor are defined in this package as MATLAB classname.m files, where classname is replaced by the corresponding behavior’s name and the supervisor is defined as supervisor.m. All the behavior-controllers and the supervisor are defined as individual classes using the classdef keyword in MATLAB. The corresponding dynamics and mathematical models of the robot are implemented for each behavior-controller in their individual classes, while the FSM and the robot’s odometry is implemented in supervisor.m.


This package contains all the robot’s default parameters including the radius of its wheels, , the distance between its wheels, , its maximum wheel velocities and the dimensions of its chassis. This package also contains the default sensor settings of the robot like the number of ticks per wheel revolution of the wheel encoder and the infrared proximity sensors’ range. All of these are defined in robot.m. This package also contains a very important file namely, driver.m which contains the necessary modules and protocols needed for the physical robot’s embedded microcomputer (that is the BeagleBone black) to connect to our MATLAB software on any configured PC.


This package contains the necessary code that enables a virtual simulation of the controller design on MATLAB before deployment on the physical robot. The robot’s IR sensor readings and ranges (for obstacle detection), its wheel encoder ticks (for position and orientation estimation) and the velocities of the robots actuators (wheels) are emulated by the modules contained in this package. These modules can be modified if the robots sensors or actuators are changed. Once the simulator is launched, a graph-like window is displayed showing the virtual robot which will start heading towards the goal point and it will avoid any obstacles on its path to the goal using the behavior-controllers defined in the +controllers package.



4.2.2 Python Code and Communication Protocol

As earlier indicated, MATLAB was used to implement the robot’s FSM and mathematical models which involves simulation of the controller designs and then eventual deployment to the robot. For this purpose, the Universal Asynchronous Receive and Transmit (UART) serial communication is used via a USB modem embedded in the BBB. The BBB contains the necessary codes and command to relate with the actuators and sensors in a python file known as This UART serial communication is necessary for transmission and reception of commands from the driver.m class in the MATLAB platform. As such, the modules necessary from this communication are installed on the BBB microcomputer and are imported and initialized or setup.



The UART send commands (characters) by converting to ASCII code and are serially transmitting bit by bit for 8 bits. The first is usually the start bit to initialize the transmission and having sent the 8 bit, it gives a pulse bit to indicate the stop bit. Each of the pulse bit duration is determined by taking into consideration the processor frequency and the standard Baud rate of 9600 baud.

There is a further need to implement a form of wireless communication between the robot (BBB) and the host PC. This is made possible by the use of a WIFI module. This form of communication makes use of the User Datagram Protocol (UDP) which is a one of the internet protocols. Though considered unreliable, the software makes use of the UDP to send single packet commands over the transmission channel without implementation of error checking and thus unnecessary processing at network level. Data or commands can be sent to and from the robot via a defined Internet Protocol address.  The IP address of the robot is achieved by configuring the WIFI module to receive information from an internet connection to the BBB using the Ethernet port. This configuration is done by editing the WIFI configuration file in connection manager of the BBB. First we obtain the passphrase by inserting the following command:

>>   wpa_passphrase “network name” “network password”

Then we edit the configuration by applying the nano command.

>>   nano /var/lib/connman/wifi.config

Then editing the domain name SSID and passphrase. The UDP configuration is implemented in the code by

baseIP = ‘’
robotIP = ‘’

port = 5005
robotSocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)


The baseIP and robotIP defines the default IP states and is applied using the appropriate obtained IP addresses when running the code on the BBB.

# Set IP addresses
self.baseIP = baseIP
self.robotIP = robotIP
self.robotSocket.bind((self.robotIP, self.port))


However, to relate and communicate commands to the actuators and receive values from the sensors, the robot makes use of the GPIO, ADC pins on the BBB. In order to make use of these pins, they are declared in the code to the motor, IR and encoder variables.

# Motor Pins — (LEFT, RIGHT)
dir1Pin = (‘P8_12’, ‘P8_14’)
dir2Pin = (‘P8_10’, ‘P8_16’)
pwmPin = (‘P9_14’, ‘P9_16’)

# ADC Pins
irPin = (‘P9_38’, ‘P9_40’, ‘P9_36’, ‘P9_35’, ‘P9_33’)
encoderPin = (‘P9_39’,‘P9_37’) All encoder variables, IR sensor values and motor PWM values are initialized to zero.These pins are setup and initialized with the following commands.# Initialize GPIO pins
GPIO.setup(self.dir1Pin[LEFT], GPIO.OUT)
GPIO.setup(self.dir2Pin[LEFT], GPIO.OUT)
GPIO.setup(self.dir1Pin[RIGHT], GPIO.OUT)
GPIO.setup(self.dir2Pin[RIGHT], GPIO.OUT)

GPIO.setup(self.ledPin, GPIO.OUT)

# Initialize PWM pins: PWM.start(channel, duty, freq=2000, polarity=0)
PWM.start(self.pwmPin[LEFT], 0)
PWM.start(self.pwmPin[RIGHT], 0)

# Set motor speed to 0
self.setPWM([0, 0])

# Initialize ADC
self.encoderRead = encoderRead(self.encoderPin) It is important to note that the IR sensors and wheel encoder makes use of these pins for communication rather than a UART serial communication because they give off raw values which would have to be converted. A GPS module is an example of a sensor that makes use of UART communication on the BBB.The IR sensor values are read through the ADC pins in a defined function known as readIRvalues()def readIRValues(self):
prevVal = self.irVal[self.ithIR]
self.irVal[self.ithIR] = ADC.read_raw(self.irPin[self.ithIR])
if self.irVal[self.ithIR] >= 1100:
self.irVal[self.ithIR] = prevVal

self.ithIR = ((self.ithIR+1) % 5) The following commands are used in the code to set the motor pwm values to the desired as applied from the MATLAB controller software.def setPWM(self, pwm):
# [leftSpeed, rightSpeed]: 0 is off, caps at min and max values

self.pwm[LEFT] = min(max(pwm[LEFT], self.pwmLimits[MIN]), self.pwmLimits[MAX])
self.pwm[RIGHT] = min(max(pwm[RIGHT], self.pwmLimits[MIN]), self.pwmLimits[MAX])
print ‘Setting motor PWMs to: left = ‘ + str(self.pwm[LEFT]) + ‘ and right = ‘ + str(self.pwm[RIGHT])

# Left motor
if self.pwm[LEFT] > 0:
GPIO.output(self.dir1Pin[LEFT], GPIO.LOW)
GPIO.output(self.dir2Pin[LEFT], GPIO.HIGH)
PWM.set_duty_cycle(self.pwmPin[LEFT], abs(self.pwm[LEFT]))
elif self.pwm[LEFT] < 0:
GPIO.output(self.dir1Pin[LEFT], GPIO.HIGH)
GPIO.output(self.dir2Pin[LEFT], GPIO.LOW)
PWM.set_duty_cycle(self.pwmPin[LEFT], abs(self.pwm[LEFT]))
GPIO.output(self.dir1Pin[LEFT], GPIO.LOW)
GPIO.output(self.dir2Pin[LEFT], GPIO.LOW)
PWM.set_duty_cycle(self.pwmPin[LEFT], 0)

# Right motor
if self.pwm[RIGHT] > 0:
GPIO.output(self.dir1Pin[RIGHT], GPIO.LOW)
GPIO.output(self.dir2Pin[RIGHT], GPIO.HIGH)
PWM.set_duty_cycle(self.pwmPin[RIGHT], abs(self.pwm[RIGHT]))
elif self.pwm[RIGHT] < 0:
GPIO.output(self.dir1Pin[RIGHT], GPIO.HIGH)
GPIO.output(self.dir2Pin[RIGHT], GPIO.LOW)
PWM.set_duty_cycle(self.pwmPin[RIGHT], abs(self.pwm[RIGHT]))
GPIO.output(self.dir1Pin[RIGHT], GPIO.LOW)
GPIO.output(self.dir2Pin[RIGHT], GPIO.LOW)
PWM.set_duty_cycle(self.pwmPin[RIGHT], 0)


4.2.3 Android App for Semi-Autonomous Control

The physical aspect of this project has been implemented using an android app called Robot Control as the controller. The main UI of the application is shown in Fig.4.13:


5.1 The voltage divider circuit

The infrared sensors are powered by the 12V supply through a regulated voltage of 5V from the voltage regulator as shown in Fig 5.1.

The signal wires of the infrared sensors give out a voltage in the range 0.4V- 2.75V depending on the distance of the obstacle perceived by the infrared sensor. Since the analogue pins on the Beaglebone black namely P9_33, P9_35, P9_36, P9_38, P9_40 which are used for the infrared sensors can only take in a maximum of 1.8V, a voltage divider (refer to Fig 4.2) is put in place to reduce (step down) the voltage outputted by the infrared sensors and wheel encoder.


Fig. 5.2 Voltage Divider

As seen in Equation 5.1, the voltage divider drops  by a factor of    .

5.3 IR sensors

The rating specifications for the IR sensors include :

  1. Distance measuring range: 10 to 80 cm
  2. Analog output type
  3. Consumption current: 30 mA
  4. Supply voltage: 4.5 to 5.5 V

The voltage that is being outputted in the signal terminals of the IR sensors, ranging from 0.4V – 2.75V relates to the distance ranging of 0.3 m – 0.04 m respectively since there is an indirect proportionality relationship between the voltage and distance.

5.4 The diode

The diode is used for isolating the circuit from the power supply to prevent the batteries from getting damaged in case of any incoming reverse current to the supply, since it is an electrical component, which allows current to flow in only one direction.

5.5 Power supply for the BeagleBone black

According to the strict requirement of the power supply for the beagle bone black to be 5V, we utilized a dedicated power bank with an output voltage of 5V DC from USB translated to a male power jack connecter to the female power jack connecter on the BeagleBone black.


5.6 The H-bridge circuit

The H-bridge IC itself is powered by the 5V regulated voltage from the voltage regulator connecting to Pin 16 of the H-bridge as shown in Fig 5.3. Pin 8 of the H-bridge represents the input power of the motors needed at a particular situation, which is connected to the 12V supply, NOT through the 5V voltage regulator. The following is explaining the each pin separately and their voltage specification (refer to Fig 5.3):

Pin 1 – M1 enable – Sets this pin to 0v (LOW) will turn off the Motor 1, setting it to 5V(HIGH) will enable the Motor 1.

Pin 2 – M1 forward – Set this pin to 5V (HIGH) to turn Motor1 in one direction using PWM into this pin can control motor Speed that means it will take in a specific voltage needed to control the motor.

Pin 3 – M1 (+) – Power for Motor 1 (5V), Connected to positive terminal of Motor 1

Pin 4, 5, 13, 12 – Ground

Pin 6 – M1 (-) – Connected to negative terminal of the Motor 1

Pin 7 – M1 reverse – Set this pin to 5V (HIGH) to turn Motor 1 in the opposite direction using PWM into this pin can control motor Speed that means it will take in a specific voltage needed to control the motor.

Pin 15 – M2 reverse – – Set this pin to 5V (HIGH) to turn Motor 2 in the opposite direction using PWM into this pin can control motor Speed that means it will take in a specific voltage needed to control the motor.

Pin 14 – M2 (-) – Connected to negative terminal of the Motor 2

Pin 11 – M2 (+) – Power for Motor 2 (5V), Connected to positive terminal of Motor 2

Pin 10– M2 forward – Set this pin to 5V (HIGH) to turn Motor 2 in one direction using PWM into this pin can control motor Speed that means it will take in a specific voltage needed to control the Motor 2.

Pin 9– M2 enable – Sets this pin to 0v (LOW) will turn off the Motor 2, setting it to 5V(HIGH) will enable the Motor 1.


Fig. 5.3 H-bridge Pin outs

Fig. 5.4 Breadboard view of Robot Schematic


6. Engineering Standards

The Engineering Standards defines the characteristics of product or components used, such as dimensions, safety aspects, and performance requirements. It is important to for students to know the standards for various components which will assist them in their final projects.

The Accreditation Board of Engineering Technology (ABET) has emphasized the need for Engineering Standard to be inculcated into the curriculum, of these reasons are engineering workforce needs to be prepared to understand and apply standards, students need greater exposure to standardization to position themselves competitively, and curricula need to stay market-relevant, and standards education is a perfect medium to marry technical design to real-world issues.

Institute of Electrical Electronics Engineers (IEEE) believes “Students should be acquainted with standards, not just with IEEE standards but with technical standards in general and with the standardization process”. IEEE recommended that engineering standards be incorporated into the curriculum to indicate that a process or a device discussed in the classroom is covered by a technical standard, with a citation to the standard. This goal can be achieved by using textbooks that review and include a reference to technical standards in their narrative. Also by directly introducing a technical standard by extracting the principal aspects of its specifications and incorporating them in projects.

In the autonomous Differential Drive wheeled robot, we are making use of a LM2596 dc to dc voltage regulator as opposed to the standard 7805 dc voltage regulator. This is because the 7805 produces an output current of 1.5A, but the standard output current needed for the circuit to power the BeagleBone black is 3A. In order to obtain an output of 3A using the standard 7805 voltage regulator, we could have made a parallel connection of two of the regulators with a parallel output of 5v and 3A. The regulators will be connected in parallel with the standard capacitors needed and diodes to prevent a back electromotive force.

The BeagleBone Black (BBB) board which we made use of is a low cost, open hardware and expandable computer launched by a community of developers sponsored by Texas Instruments. The size of the board is small enough to fit in a mint tin box. It can be used for a variety of projects from high school fair projects to prototypes of very complex real-world embedded systems. For the purpose of this project, it satisfies the financial IEEE standard, because it is an easy-to-use and cost-effective kit which can be employed for designing prototype projects. Recently, some universities have started creating the teaching materials for the Beagle Bone and BBB. Such education experience is still in the early stage since these boards were initially launched not long ago. Compared with Arduino or Raspberry Pi, the hardware of BBB is not as robust as them, for example BBB needs better power protection than it currently has. Students could easily burn the processor on board when the input current applied to the I/O is higher than the threshold by mistake. And some software programs installed on the board are not stably established or complete. They are still very actively updated with frequent new versions releases. For instance, the Angstrom Linux image used in our BBB for the semi-autonomous differential drive robot was not available but we had to update it to its latest version before proceeding with setting up the microcomputer. However, the potential of BBB as the serious competitor of Raspberry Pi or Arduino has been foreseen by educators. On one side, BBB provides an easy-to-use platform to learn not only traditional embedded microcontroller programming using either python or C but also basic electronics. Thus, BBB can be used as an Arduino board. On the other side, with the 32-bit ARM Cortex A7 processor and 2GB eMMC flash memory, BBB also fully supports teaching high-level computing languages and Operating Systems like Linux computing. Linux support usually offers many advantages over less powerful 8-bit boards, for examples audio and video processing, and advanced peripheral devices control (e.g. touchscreen). In this case, BBB has the potential to compete with Raspberry Pi.

All other components used including the Wheel encoder, DC motors, the H-bridge IC, capacities and resistors follow the standards of Institute of Electrical Electronics Engineers (IEEE), the Accreditation Board of Engineering Technology (ABET), the American Society for Engineering Education (ASEE).



8. Conclusion

This project work was set out to focus on the kinematics, localization and closed loop motion control of a differential drive mobile robot which will be capable of navigating (independent of any direct human intervention or control) to a desired goal location in an obstacle zoned environment. The objective therefore, was to obtain, stability, tracking and robustness of the system. The project involved the design and modeling of the control system as well as implementing the FSM of the robot. It also involved the design and building of the differential drive wheeled robot which included the BeagleBone Black (BBB) as the microcomputer and the wheel encoder and IR sensors as well as DC motors as the actuators. The circuit was therefore designed and reconfigured to suit the necessary voltage and current requirement of the components of the robot and the BBB.

In the design of the robot’s control system and FSM, simulation was employed to test the response of the designed parameters and to implement the parts of the FSM involving the go to goal and obstacle avoidance and the integration of both in the robot. The PID controller was the effective tool in the design of the system to steer the robot towards a desired location with the orientation as an error with respect to the goal location or obstacle vector as an argument of the PID controller.

8.1 Achievements

This project has been completed both at the software design and simulation stage as well as the design and building of the wheeled robot. Based on the objectives of this project, the design of the system and its simulation was able to maintain stability in the implementation of its FSM. The implementation of the error with respect to the orientation of a location to obtain an angular velocity to the path of the location successfully completes the tracking objective of the robot.

The robot was successfully designed and built making adjustments in specifications to suit both current and voltage requirements of the components used and also proffering solutions to the design to augment for unforeseen challenges.

8.2 Limitations

During the design of the robot, some challenges were experienced and fixed with respect to the source of sufficient power for the entire robot as well as ensuring that each component receives its required voltage or current supply. Also challenges relating to the Wi-Fi configuration was also experienced and solved. However the project involved a limitation in ensuring full autonomy and robustness. This is believed to be as a result of the defect or variations in tolerance of the no load speed specification of the DC motors used as actuators. This resulted in an error on the navigation system of the robot, thus resulting in a deviation from the specified goal location.

8.2.1 Solution

With regards to the limitations resulting from the DC motors, several tests were carried out to determine a relationship between the PWM value sent from the BBB and the actual voltage outputted to the motors. It was noticed that without the actuators connected to the H-bridge, and at the same PWM value, the output from the H-bridge was identical. However, on connecting back the motors we obtain varying results which are documented below. Nevertheless, with the relationship obtained from the tests, an android application was designed and programmed to communicate with the robot and implement a controller to steer the robot towards a desired location. This will also enable the robot to detect an obstacle and navigate away from the obstacle. The application will be deployed on an android operating system mobile phone and a communication established via Wi-Fi on the UDP communication protocol.






8.2.2 Results

The results of the tests carried out on the performance of the DC motors are tabled below.


(%duty cycle)

Left Motor


Right Motor


40 1.64 1.58
42 1.86 1.80
44 2.08 1.93
46 2.27 2.05
48 2.45 2.21
50 2.53 2.35
52 2.83 2.57
54 3.00 2.72
56 3.17 2.94
58 3.07 3.36
60 3.25 3.47
62 3.64 3.38
64 3.76 3.54
66 3.95 3.69
68 4.06 3.74
70 4.18 3.88
Table 8.1 Results: PWM to left and right Voltage values


Table 8.1 shows the relationship between PWM values and the voltages across the left and right motors. The differences in voltage will cause the motors to move at different velocities for a given PWM which is not desired. The fix for this was as explained previously in 8.2.1.

8.3 Future Work

With the successful completion of this project and having attained a semi-autonomous differential drive robot, the project has been able to achieve its objectives. However, based on the limitation with respect to the DC motors used as actuators, the project was not able to implement a fully autonomous robot. Since it is quite known about the variations in DC motors and it is necessary to use two for the wheels of the robot, a new robust controller system can be implemented mathematically to augment and alleviate the variations. This can be implemented by applying a relationship that equates the output voltage from the H-bridge as well as implement a feedback the receives this voltage and recalculates the relationship and gives the result back with respect to the distance moved determined by the wheel encoder. Also, a Wi-Fi camera can be deployed on the robot to serve as the eyes of the robot for easy surveillance using the robot. This can be implemented as long as the robot does not exceed the Wi-Fi range of the host.



9. Time Plan


# Task Persons Involved Week
1.     1 2 3 4 5 6 7 8 9
2. Plan design topology All team members                  
3. Purchase Hardware All team members                  
4. Design Robot Circuit Elisha King, Syed Hussain                  
5. Design Control and Simulation Software Elisha King,

Ikechukwu Ofodile

6. Assemble Robot Chris Epuna,

Syed Hussain

7. Configure Robot for Wi-Fi communication Ikechukwu Ofodile                  
8. Connect Robot to PC via Wi-Fi Ikechukwu Ofodile                  
9. Run first Test All team members                  
Table 9.1 Time Plan



10. Cost Analysis

# Component Short Description Qty Cost
1. Magician  Chassis Robots Body 1 $14.95
2. H-bridge Motor Driver 1A Drives robots actuator (DC motors) 1 $2.35
3. Heatsink TO-220 Controls Voltage Regulator ‘s temperature 1 $0.95
4. BeagleBone Black Robots embedded microcomputer 1 $45.00
5. Wheel encoder Detects distance moved by wheels 1 $8.50
6. Voltage Regulator Keeps constant voltage supply to the BeagleBone black 1 $15.00
7. Sharp Infrared Proximity sensors For Obstacle detection 5 $35.00
8. Jumper wires – Male-Male For electrical connection of parts 40 $5.00
9. Jumper wires – Male-Female For electrical connection of parts 20 $2.50
10. Medium size breadboard Circuit Model 1 $3.56
11. Small breadboard Circuit Model 1 $4.56
12. Wi-Fi module Connect robot to PC 1 $12.00
13. 20k and 10k resistors For voltage division 7 (20kΩ) $0.82
7 (10kΩ)
14. Battery Holder – 4xAA Square Contains Batteries 2 $5.00
15. Capacitors – 100µF, 0.1µF, 10µF Smooths output voltage 1 each $2.00
16. Rectifier diode 1N4007 Restrict current flow in one direction 1 $0.14
17. DC Barrel Jack Adapter – Female Connects robot to power supply 2 $5.90
18. Rocker Switch – SPST


Turns Robot on or off 1 $0.95


       Grand Total $164.18
Table 10.1 Cost Analysis

11. References


[1] Arkin R. C. (1998). Behavior-Based Robotics. Cambridge: MIT Press
[2] American National Standards Institute – ANSI Standards Store. (n.d.). Retrieved from


[3] An H-Bridge chip to control power | Electronics for Artists. (n.d.). Retrieved from


[4] Arvin, F., Samsudin, K., & Nasseri, M. A. (2009). Design of a differential-drive wheeled robot controller with pulse-width modulation. doi:10.1109/CITISIA.2009.5224223


[5] Chung, Y., & Harashima, F. (2001). A position control differential drive wheeled mobile robot. IEEE Transactions on Industrial Electronics. doi:10.1109/41.937419


[6] Chwa, D. (2010). Tracking Control of Differential-Drive Wheeled Mobile Robots Using a

Backstepping-Like Feedback Linearization. IEEE Transactions on Systems, Man, and Cybernetics. doi:10.1109/TSMCA.2010.2052605


[7] Croix J.P. (2014). A Robot Simulator. Retrieved from


[8] Egerstedt, M. (2013). Control of Mobile Robots. Cousera.


[9] IEEE – Education & Careers. (n.d.). Retrieved from


[10] LM2596 DC-DC Adjustable PSU Module. (n.d.). Retrieved from


[11] Siegwart, R., & Nourbakhsh, I. R. (2004). Introduction to autonomous mobile robots. Cambridge, MA: MIT Press.


[12] The Use of BeagleBone Black Board in Engineering Design and Development. Retrieved from







Syed Hussain Haider (117679) & Usman Anwar (117387)

Electrical and Electronic Engineering Department

Eastern Mediterranean University

Supervisor: Prof. Dr. Osman Kukrer


Keywords: Sun tracking solar energy, Dual axis solar tracker, Solar tracking using servo motors, Arduino.


Solar panels are being used increasingly over the recent years to convert solar energy to electrical energy. The solar panels can be used either as a stand-alone system (for example for a single house) or as a large solar system that is connected to the electricity grids. The earth receives 84 Terawatts of power and our world consumes about 12 Terawatts of power per day. We are trying to consume as much energy we possibly can from the sun using solar panels. In order to maximize the conversion from solar to electrical energy, the solar panels have to be positioned perpendicular to the sun. Thus the tracking of the sun’s location and positioning of the solar panels are important. The goal of this project is to design an automatic solar tracking system, which can locate the position of the sun. The tracking system will move the solar panel so that it is positioned perpendicular to the sun for maximum energy conversion at all times. LDRs (light dependent resistors) will be used as sensors in this project. The project will consist of a light sensing system, a single-board microcontroller (Arduino), servo motor system, a solar cell and DC battery charging and monitoring system. This system will output up to 40% more energy than solar panels without tracking systems.



Table of Contents


Abstract 2

  1. Introduction. 5

1.1 Literature Review.. 5

1.2 Problem Statement 7

1.3 Objective of Work. 8

  1. Tracking Techniques. 9

2.1 Types of Solar Trackers. 9

2.1.1 Single Axis Trackers. 9

2.1.2 Dual Axis Trackers. 10

  1. Main Components of the Dual Axis Solar Tracker 11

3.1 Solar Panel 11

3.2 DC Servomotors. 12

3.3 Arduino. 13

3.4. Light Dependent Resistors (LDRs) 14

  1. Construction of the Dual Axis Tracker 15

4.1 Design. 15

4.1.1 Base. 17

4.1.2 Horizontal Axis Platform.. 17

4.1.3 Vertical Axis Platform.. 17

4.1.4 LDR & Solar Panel Placement 18

4.1.5 Electronics Housing. 19

4.2 Electronics. 20

4.2.1 Arduino Wiring Diagram.. 20

4.3 Code. 22

  1. Application of the Solar Tracker 26

5.1 Charging a DC Battery using Solar Energy. 26

5.2 Components of the Solar Charging System.. 27

5.2.1 DC Battery. 27

5.2.2 Solar Charging Controller 28

5.2.3 Battery Monitor 32

  1. Engineering Standards. 34
  2. Cost Analysis. 35
  3. Time Plan. 36
  4. Conclusion. 37
  5. References. 38


List of Figures

Figure 1 – Sun’s Apparent Motion…………………………………………………………………………………….. 7

Figure 2– Single Axis Solar Tracker…………………………………………………………………………………. 10

Figure 3 – Dual Axis Solar Tracker………………………………………………………………………………….. 11

Figure 4 – Solar Cell/Photovoltaics………………………………………………………………………………….. 12

Figure 5 – DC Servomotor……………………………………………………………………………………………… 13

Figure 6– Arduino UNO………………………………………………………………………………………………… 14

Figure 7– Light Dependent Resistor………………………………………………………………………………… 15

Figure 8 – Potential Divider Circuit…………………………………………………………………………………. 15

Figure 9 – 3D Model (Side View)……………………………………………………………………………………. 16

Figure 10 – 3D Model (Front View)………………………………………………………………………………… 17

Figure 11 – 3D Model (Rear View)…………………………………………………………………………………. 17

Figure 12 – Horizontal Axis Platform and Metal Supports………………………………………………….. 18

Figure 13 – Vertical Axis Platform………………………………………………………………………………….. 19

Figure 14 – LDR Divider……………………………………………………………………………………………….. 20

Figure 15 – Arduino Connection & Wiring Diagram………………………………………………………….. 21

Figure 16 – Servo MG90S………………………………………………………………………………………………. 21

Figure 17 – Block Diagram of Solar Charging System……………………………………………………….. 27

Figure 18 – DC Battery………………………………………………………………………………………………….. 28

Figure 19 – Circuit Diagram of the Solar Charging Controller…………………………………………….. 29

Figure 20 – Differential Amplifier using Transistors…………………………………………………………… 31

Figure 21 – Assembled Circuit of the Charging Controller…………………………………………………. 32

Figure 22 – Circuit Reference Diagram of LM3914 Microcontroller……………………………………. 33

Figure 23 – Assembled Circuit of the Battery Monitor………………………………………………………. 34


List of Tables

Table 1 –Pin Connection and Corresponding Code. 22

Table 3 – Cost Analysis. 36

Table 2 – Time Plan. 37


1. Introduction

Solar energy is radiant light and heat from the sun harnessed using a range of ever-evolving technologies such as solar heating, photovoltaics, solar thermal energy, solar architecture and artificial photosynthesis.

It is an important source of renewable energy and its technologies are broadly characterized as either passive solar or active solar depending on the way they capture and distribute solar energy or convert it into solar power.

Active solar techniques include the use of photovoltaic systems, concentrated solar power and solar water heating to harness the energy.

Passive solar techniques include orienting a building to the Sun, selecting materials with favorable thermal mass or light dispersing properties, and designing spaces that naturally circulate air.


1.1 Literature Review

The development of solar cell technology begins with 1839 research of French physicist Antoine-Cesar Becquerel. He observed the photovoltaic effect while experimenting with a solid electrode in an electrolyte solution. After that he saw a voltage developed when light fell upon the electrode.

According to Encyclopedia Britannica the first genuine for solar panel was built around 1883 by Charles Fritts. He used junctions formed by coating selenium (a semiconductor) with an extremely thin layer of gold. Crystalline silicon and gallium arsenide are typical choices of materials for solar panels. Gallium arsenide crystals are grown especially for photovoltaic use, but silicon crystals are available in less-expensive standard ingots, which are produced mainly for consumption in the microelectronics industry. Norway’s Renewable Energy Corporation has confirmed that it will build a solar manufacturing plant in Singapore by 2010 – the largest in the world. This plant will be able to produce products that can generate up to 1.5 Giga watts of energy every year. That is enough to power several million households at any one time. Last year the world as a whole produced products that could generate just 2 GW in total.

Since the sun moves across the sky throughout the day, in order to receive the best angle of exposure to sunlight for collection energy. A tracking mechanism is often incorporated into the solar arrays to keep the array pointed towards the sun. A solar tracker is a device onto which solar panels are fitted which tracks the motion of the sun across the sky ensuring that the maximum amount of sunlight strikes the panels throughout the day. When compare to the price of the PV solar panels, the cost of a solar tracker is relatively low. Most photovoltaic solar panels are fitted in a fixed location- for example on the sloping roof of a house, or on framework fixed to the ground. Since the sun moves across the sky though the day, this is far from an ideal solution. Solar panels are usually set up to be in full direct sunshine at the middle of the day facing South in the Northern Hemisphere, or North in the Southern Hemisphere. Therefore morning and evening sunlight hits the panels at an acute angle reducing the total amount of electricity which can be generated each day.

Figure 1 – Sun’s Apparent Motion

During the day the sun appears to move across the sky from left to right and up and down above the horizon from sunrise to noon to sunset. Figure 1 shows the schematic above of the Sun’s apparent motion as seen from the Northern Hemisphere. To keep up with other green energies, the solar cell market has to be as efficient as possible in order not to lose market shares on the global energy marketplace. The end-user will prefer the tracking solution rather than a fixed ground system to increase their earnings because:

  • The efficiency increases by 30-40%.
  • The space requirement for a solar park is reduced, and they keep the same output.
  • The return of the investment timeline is reduced.
  • The tracking system amortizes itself within 4 years.
  • In terms of cost per Watt of the completed solar system, it is usually cheaper to use a solar tracker and less solar panels where space and planning permit.
  • A good solar tracker can typically lead to an increase in electricity generation capacity of 30-50%.

1.2 Problem Statement

As the range of applications for solar energy increases, so does the need for improved materials and methods used to harness this power source. There are several factors that affect the efficiency of the collection process. Major influences on overall efficiency include solar cell efficiency, intensity of source radiation and storage techniques. The materials used in solar cell manufacturing limit the efficiency of a solar cell. This makes it particularly difficult to make considerable improvements in the performance of the cell, and hence restricts the efficiency of the overall collection process. Therefore, the most attainable method of improving the performance of solar power collection is to increase the mean intensity of radiation received from the source. There are three major approaches for maximizing power extraction in medium and large scale systems. They are sun tracking, maximum power point (MPP) tracking or both.

Each day, the sun rises in the east, moves across the sky, and sets in the west. Whenever the sun is shining on us, it is sending energy in our direction. We can feel the heat from the sun, and we can see objects that are illuminated by the light from the sun as it moves across the sky. However, if we could get a solar cell to turn and look at the sun all day, then it would be receiving the maximum amount of sunlight possible and converting it into the more useful energy form electricity. If we are located in the tropics, we see that the sun appears to follow a path that is nearly directly overhead. However, for locations north or south of the tropics (e.g. latitudes greater than 23.5 degrees), the sun never reaches a position that is directly overhead. Instead, it follows a path across the southern or the northern part of the sky.

1.3 Objective of Work

If we could configure a solar cell so that it faces the sun continually as it moves across the sky from east to west, we could get the most electrical energy possible. One way to do this, of course, is by hand. However, keeping a solar cell facing the sun throughout the day is not a very efficient use of a person’s time. Going outside to a solar cell every hour to turn it toward the sun might be possible, but this would still not be an efficient method. A photo sensor (an LDR in our case) is employed to control the solar cell tracking system. For example, if the photo sensor is not aligned with sun rays, then it could turn on the motor until it is once again aligned. If the motor is attached to the frame holding the solar cell, then the solar cell could be moved to face the sun. As long as the photo sensor is in alignment with the sun, nothing happens. However, when the sun moves across the sky and is not in proper alignment with the photo sensor, then a motor moves the frame until the photo sensor is in the sun once more.

This could have the effect of keeping the solar cell facing the sun as it moves across the required human attention. So we need a tracking system that would automatically keep the solar cell facing the sun throughout the day. We have to build an automated system of our own, using motors. The system includes a frame on which a solar cell could be mounted. The frame is to move so that it faces the sun as it travels across the sky during the day. The frame could be driven by an electric motors that turn on and off in response to the movement of the sun.




2. Tracking Techniques

There are several forms of tracking currently available; these vary mainly in the method of implementing the designs. The two general forms of tracking used are fixed control algorithms and dynamic tracking. The inherent difference between the two methods is the manner in which the path of the sun is determined. In the fixed control algorithm systems, the path of the sun is determined by referencing an algorithm that calculates the position of the sun for each time period. That is, the control system does not actively find the sun’s position but works it out given the current time, day, month, and year. The dynamic tracking system, on the other hand, actively searches for the sun’s position at any time of day (or night). Common to both forms of tracking is the control system. This system consists of some method of direction control, such as DC motors, stepper motors, and servo motors, which are directed by a control circuit, either digital or analog. For this project we are going to track using the dynamic method. We will achieve this method by using Light Dependent Resistors (LDRs). The tracking will be done in a continues mode


2.1 Types of Solar Trackers

There are many different types of solar tracker which can be grouped into two main categories; single axis and dual axis trackers.


2.1.1 Single Axis Trackers


Figure 2– Single Axis Solar Tracker

Single axis solar trackers can either have a horizontal or a vertical axle. The horizontal type is used in tropical regions where the sun gets very high at noon, but the days are short. The vertical type is used in high latitudes (such as in UK) where the sun does not get very high, but summer days can be very long.

These have a manually adjustable tilt angle of 0 – 45 °and automatic tracking of the sun from East to West. They use the PV modules themselves as light sensor to avoid unnecessary tracking movement and for reliability. At night the trackers take up a horizontal position.

dual axis trackers

3. Main Components of the Dual Axis Solar Tracker


3.1 Solar Panel

Solar panels are devices that convert light into electricity. They are called “solar” panels because most of the time, the most powerful source of light available is the Sun, called Sol by astronomers. Some scientists call them photovoltaics which means, basically, “light-electricity”. Photovoltaics are the direct conversion of light into electricity at the atomic level. Some materials exhibit a property known as the photoelectric effect that causes them to absorb photons of light and release electrons. When these free electrons are captured, an electric current results that can be used as electricity.

A solar cell (also called photovoltaic cell or photoelectric cell) is a solid state electrical device that converts the energy of light directly into electricity by the photovoltaic effect. Crystalline silicon PV cells are the most common photovoltaic cells in use today. A number of solar cells electrically connected to each other and mounted in a support structure or frame are called a photovoltaic module. Modules are designed to supply electricity at a certain voltage, such as a common 12 volts system. The current produced is directly dependent on how much light strikes the module. Multiple modules can be wired together to form an array. In general, the larger the area of a module or array, the more electricity will be produced. Photovoltaic modules and arrays produce direct-current (DC) electricity. They can be connected in both series and parallel electrical arrangements to produce any required voltage and current combination.

DC Servomotor


It operates on 7-12V. The Uno is a microcontroller board based on the ATmega328P. It consists of 14 digital input/output pins out of which 6 provide PWM output. It has 6 analog inputs , operates on 40mA DC current per I/O pin, has a flash memory of 5Kb out of which 0.5Kb is used for boot loader, 2Kb of SRAM, 512Bytes EEPROM and 16MHz clock speed. The catalog that comes along Arduino suggests to download the software to write the program on.




3.4. Light Dependent Resistors (LDRs)

A light dependent resistor, or LDR, varies resistance in a circuit based on how much light shines on it. When fully illuminated, the LDR has no resistance and current flows freely, but with darkness the resistance increases and current flow stops. In most circuit designs, the LDR acts like an on/off switch based on how much light shines on it.

Figure 7– Light Dependent Resistor

In our project, each LDR is connected to power supply forming a potential divider. Thus any change in light density is proportional to the change in voltage across the LDRs.

Figure 8 – Potential Divider Circuit

LDR is a passive transducer hence we will use potential divider circuit to obtain corresponding voltage value from the resistance of LDR. LDRs resistance is inversely proportional to the intensity of light falling on it i.e. Higher the intensity or brightness of light the Lower the resistance and vice versa.


4. Construction of the Dual Axis Tracker

In this section, we will explain the design procedure and construction of our dual axis solar tracker. The design of any control system begins with a model. Models represent an abstraction of the actual behavior of the system. Without models, not much can be done in terms of control design. They give us the ability to influence the dynamics and state(s) of the system.


4.1 Design

We used Tinkercadonline application by AutoDesk for our initial 3D model. Below are some of the views of our rendered 3D model.



4.1.3 Vertical Axis Platform

The vertical platform has two main supports on each side which are attached to the horizontal platform. One of the vertical supports has the vertical servo mounted on it. In between the two vertical supports, we have a support base which is attached to the vertical servo and provides a base to mount the solar panel. The solar panel support base is secured by a bolt on the other side which helps to keep it balanced and acts as a pivot point for the support base to rotate on.


LDR Divider

The table below summarizes the connection pin numbering for each component and their corresponding code lines.

Component Pin Number Arduino Code

Horizontal Servo



Servo horizontal;



Vertical Servo



Servo vertical;



Top Left LDR



intldrtl = 0;

inttl = analogRead(ldrtl);



Top Right LDR



intldrtr = 1;

inttr = analogRead(ldrtr);



Bottom Left LDR



intldrbl = 2;

intbl = analogRead(ldrbl);



Bottom Right LDR



intldrbr = 3;

intbr = analogRead(ldrbr);



Table 1 –Pin Connection and Corresponding Code




4.3 Code


Servo horizontal;

intservoh = 180;

intservohLimitHigh = 180;

intservohLimitLow = 65;

Servo vertical;

intservov = 45;

intservovLimitHigh = 80;

intservovLimitLow = 15;

intldrtl = 0;

intldrtr = 1;

intldrbl = 2;

intldrbr = 3;

void setup(){








void loop() {

inttl = analogRead(ldrtl);

inttr = analogRead(ldrtr);

intbl = analogRead(ldrbl);

intbr = analogRead(ldrbr);

intdtime = 10;

inttol = 50;

intavgtop = (tl + tr) / 2;

intavgbottom = (bl + br) / 2;

intavgleft = (tl + bl) / 2;

intavgright = (tr + br) / 2;

int vert = avgtop – avgbottom;

inthoriz = avgleft – avgright;

if (-1*tol> vert || vert >tol)


if (avgtop>avgbottom)


servov = ++servov;

if (servov>servovLimitHigh)


servov = servovLimitHigh;



else if (avgtop<avgbottom)


servov= –servov;

if (servov<servovLimitLow)


servov = servovLimitLow;






if (-1*tol>horiz || horiz>tol)


if (avgleft>avgright)


servoh = –servoh;

if (servoh<servohLimitLow)


servoh = servohLimitLow;



else if (avgleft<avgright)


servoh = ++servoh;

if (servoh>servohLimitHigh)


servoh = servohLimitHigh;



else if (avgleft = avgright)







5. Application of the Solar Tracker


5.1 Charging a DC Battery using Solar Energy

In this application, the 12V solar panel gives the output to the charging controller.The charging controller then gives the output to the battery monitor and the battery itself. The mentioned circuits will be explained in the coming sections. Following is a block diagram of the application:



Main components of this circuit:

  1. Connection with solar panel
  2. 2 x 0.1uF (1N4735A)
  3. Vero board
  4. Zener diode 6.2V
  5. Resistors (3 x 10K, 2 x 4.7K, 2 x 20K, 18K, 3.9K, 1K)
  6. Differential Amplifier 2 x Transistors (2N3904)
  7. N-p-n transistor (2N3904)
  8. Mosfet (FQP27PO6)
  9. Output connection to battery
  10. Diode (1N4148)
  11. Diode (6A4)
  12. On/Off switch of the circuit
  13. 2 x LED’s (Red and Green)
  14. One adjustable resistance 10K


Main function of the circuit

After successful soldering and continuity check through multi-meter there are two basic functions of this entire circuit:

  1. To keep constant 12V DC supply for battery charging.
  2. To turn OFF the charging process when the battery gets fully charged.

The entire circuit is simple and it mainly consists two parts:

The BJT Differential Amplifier:

As you can see in the circuit diagram the transistor Q1 and Q2 are arrange likely to form the Differential amplifier. This Differential Amplifier is set in the order of Dual Input Unbalanced Output (DIUO).

At the Base of Q1 we have set a reference voltage using Zener diode and 20KOhm resistor and at the base of Q2 we have set the Feedback voltage from the battery using potentiometer and resistors.

Its working is simple this amplifier always compare these two voltages the reference and feedback voltage and gives amplified output to the MOSFET for further processes which will  charge the battery and the green Led will light otherwise the red Led will light.


As you see we are using FQP27PO6 in our circuit. These MOSFETs are best for DC based switching.

In our circuit the GATE terminal of the MOSFET is connected to the Output terminal (Collector) of the Q1 transistor.

Whenever the output voltage is applied by the Q1 transistor on to the GATE of MOSFET they switch the circuit and make short the DRAIN and SOURCE terminals and which starts battery charging process.

Differential Amplifier using Transistors

Figure 20 – Differential Amplifier using Transistors

The main function of a Differential Amplifier is to take the difference of two voltages and amplify it. It can be mathematically written as:

V= A (V1-V2)

V1 is applied to the base of transistor 1 and V2 is applied to the base of transistor 2 and “A” is the gain of the two transistors combined.  The type of Differential Amplifier we have used in the project is of the following configuration; Dual input unbalanced output (DIUO). We give two voltages to our transistors but the output is taken from only one. We have used such configuration in this project to charge the battery with constant 12V.


Main Components of this circuit:

  1. LED’s (4 Red, 2 Yellow, 4 Green)
  2. IC (LM3914)
  3. 4 x Resistors (56K, 3.9K, 18K and an adjustable 10K)
  4. Output connection to connect to the battery
  5. Ammeter and Voltmeter to see the Volt and Amp levels being received from the 12V circuit (optional)

Main function of this circuit:

The main function of this circuit is to indicate the battery levels. The leftmost red LED is adjustable and the rightmost green LED shows the full battery charged. This has been achieved using the IC LM3914 which itself is a display driver used in electronics. It consist of 10 LEDs, 4 Red, 2 Yellow, 4 Green which show the voltage levels.


Assembled Circuit:

Figure 23 – Assembled Circuit of the Battery Monitor


6. Engineering Standards

The Engineering Standards defines the characteristics of product or components used, such as dimensions, safety aspects, and performance requirements. It is important to for students to know the standards for various components which will assist them in their final projects.

The Accreditation Board of Engineering Technology (ABET) has emphasized the need for Engineering Standard to be inculcated into the curriculum, of these reasons are engineering workforce needs to be prepared to understand and apply standards, students need greater exposure to standardization to position themselves competitively, and curricula need to stay market-relevant, and standards education is a perfect medium to marry technical design to real-world issues.

IEEE recommended that engineering standards be incorporated into the curriculum to indicate that a process or a device discussed in the classroom is covered by a technical standard, with a citation to the standard. This goal can be achieved by using textbooks that review and include a reference to technical standards in their narrative. Also by directly introducing a technical standard by extracting the principal aspects of its specifications and incorporating them in projects.

The Arduino board which we made use of in this project is a low cost, open hardware and expandable computer launched by a community of developers. The size of the board is small enough to fit in a mint tin box. It can be used for a variety of projects from high school fair projects to prototypes of very complex real-world embedded systems. For the purpose of this project, it satisfies the financial IEEE standard, because it is an easy-to-use and cost-effective kit which can be employed for designing prototype projects. Recently, some universities have started creating the teaching materials for the Arduino. Such education experience is still in the early stage since these boards were initially launched not long ago.

All other components used including the LM3914 Microcontroller, DC servomotors, the light dependent resistors, capacitors and resistors all follow the standards of Institute of Electrical Electronics Engineers (IEEE), the Accreditation Board of Engineering Technology (ABET) and the American Society for Engineering Education (ASEE).

7. Cost Analysis

Following is the cost analysis of all the parts used in building the project. All the parts were bought and some were ordered online and include the shipping costs as well as some taxes that we had to pay at the post office for some of the items:


# Item Name Qty. Unit Price Price
1 Arduino UNO 1 $30 $30
2 Arduino UNO Sensor Shield 1 $5 $5
3 5mm Thick Foam Core Sheets (148mm x 210mm) 4 $4 $16
4 MG90s Servo Motors 2 $10 $20
5 12V 5W 0.4A Solar Cell 1 $12 $12
6 Volt and ammeter 2 $5 $10
7 10K ohm Resistors (for LDRs) 4 $0.3 $1.2
8 Light Dependent Resistors (LDRs) 4 $0.50 $2
9 Jumper Cables Bundle 1 $3 $3
10 Hardware (Nuts, Bolts, Glue, etc.) $5 $5
11 Vero boards 2 $2 $4
12 DC Battery 1 $8 $8
13 LED’s 12 $0.3 $3.5
14 Resistors(3.9k, 20k, 1k, 4.7k, 18k,10k) 15 $0.3 $4.5
15 Solder and solder wire 1 $10 $10
16 Capacitors 2 $0.10 $0.20
17 Zener diode 6.2V and diode 3 $0.10 $0.30
18 Transistors 3 $0.15 $0.45
19 MOSFET 1 $1.35 $1.35
20 IC (LM3914) 1 $4 $4
  Total     $140.5


Table 3 – Cost Analysis

8. Time Plan


STUDY PERIOD Feb-16 Mar-16 Apr-16 May-16 June-16
4. WEEK 1. WEEK 2. WEEK 3. WEEK   4. WEEK 1. WEEK 2. WEEK 3. WEEK 4. WEEK 1. WEEK 2. WEEK 3. WEEK   4. WEEK 1.WEEK 2.WEEK
Literature research  





Detailed research on solar tracking techniques  





Research for charging circuit  





Designing the 3D model and circuit diagrams  





Choosing materials and purchasing (online + local)  





Research for coding  





Construction of the project  





Improving the appearance  





Calibration and testing  






Table 2 – Time Plan

9. Conclusion

This report has discussed about photovoltaics and solar trackers and how the solar energy can be used in the form of electricity. Using solar panels is a very practical way to produce electricity for many applications. The obvious would have to be off-grid living. Living off-grid means living in a location that is not serviced by the main electric utility grid. Remote homes and cabins benefit nicely from solar power systems.

This report also states that how dual axis solar tracking systems can output around 40% more energy as compared to stationary solar panels or panels mounted on single axis tracking systems.

During this project, we faced problems in the design process and in coding the Arduino. We had to learn the AutoCAD (Tinkercad) software to produce our 3D design so it was a bit time consuming but an interesting process and we learned the basics of 3D design and printing. We also had to run many tests on the project by trial and error method with the code to calibrate it in the right position by adjusting the position of the servo motor arms.

This design can still be enhanced with additional features like wind and rain protection which can be considered in future work.

In conclusion, we have successfully built and tested a dual axis solar tracking system and also have demonstrated a practically possible application for it which was charging control and monitoring of a DC battery. We would like to emphasize to represent to the world the dual axis solar tracker not as a new technology but as an appreciation to the inventors and the researchers who in the past as well as today continue to work on the field of renewable energy.



10. References


[1]        Howard Eglowstein, Science Buddies. Servo motors and working.  Retrieved from World Wide Web:

[2]       Arduino Documentation. Arduino Uno details. Retrieved From World Wide Web:             

[3]        Neil. (2014) 12 Volt Battery Monitor Circuit with LM3914. Retrieved from the World Wide Web:

[4]        Arduino coding techniques. Arduino tutorials.  Retrieved from World Wide Web:

[5]        Gil Knier (2002). Photovoltaics Working.  Retrieved from World Wide Web:

[6]        Electrical4u (2011). LDR and working principle.  Retrieved from World Wide Web:   

[7]        Kathie Zipp (2013). Working principle of a Solar Tracker. Retrieved from World Wide Web:            tracker-work/

[8]        Signal Coordinators (2013). Differential Amplifier using BJT npn transistors.         Retrieved from World Wide Web: nasa/2002/solarcells/

[9]        Solar Charger Controller Circuit using Transistors. Retrieved from World Wide Web:

[10]      Engineering Standards. Retrieved from World Wide Web:

Refurbishing a wimshurst GENERATOR









Syed Hussain Haider








Undergraduate Project Report

Submitted in partial fulfillment of

The requirements for the course

High Voltage








Electrical and Electronic Engineering Department

Eastern Mediterranean University




June 2016








Syed Hussain Haider


Electrical and Electronic Engineering Department

Eastern Mediterranean University



Supervisor: Assis. Prof. Suna BOLAT



Keywords: High Voltage, Static Electric, Electrostatic generator, Wimshurst generator.


This study introduces an electrostatic high voltage generator called Wimshurst Machine. Wimshurst generator is essentially an influence machine but it also uses conduction and corona during its operation. By induction and conduction, electrical charges generated via rotational movement of the insulator disks. These charges are distributed on the machine by influencing each other, then collected and stored in capacitors by corona cumulatively, which results in the generation of high DC voltage.

This study covers theoretical background, the design and construction of the generator. During the actualization of the system, there were different design and engineering problems that improved hands-on engineering and analytical problem solving skills.


Table of Contents




Table of Figures……………………………………………………………………  IV

  2. Brief information of Wimshurst generator. 1

2.1        What Is wimshurt Generator. 1

2.2        History Of Wimshurst Generator. 2

2.3        Mechanism of wimshurst generator……………………………………………….    4

  1. Main components of Wimshurst Generator. 8

3.1        insulator Discs: 8

3.2        Pulleys: 9

3.3        Brushes: 9

3.2        Rubber: 10

3.4        Collecting combs: 10

3.5        Electrodes: 11

3.6        Capacitors (Leyden Jars): 11

  1. Construction of Wimshurst Generator. 12

4.1        construct the rotation part:. 12

4.2        Constructing and fixing the stationary part: 13

4.3        The connection between rotation and stationary part: 14

4.4        problems and challenges: 16

  1. Time Table. 18
  2. Cost Analysis. 19
  3. Conclusion. 20
  4. References. 21





Table of Figures


Figure ‎2.1 The Wimshurst machine. 2

Figure ‎2.2 A Wimshurst machine around 1905. 3

Figure ‎2.3.1 Mechanism of wimshurst generator 4

Figure ‎2.3.2 Conductor in vicinity of charge. 5

Figure ‎2.3.3 one end is grounded. 5

Figure ‎2.3.4 a net charge remains. 5

Figure 3.1 Rotation discs. 8

Figure ‎3.2 Lower pulleys. 9

Figure ‎3.3 Rubber 9

Figure ‎3.4 Collecting combs……………………………………………………………………………. 10

Figure ‎3.5 Discharge electrode. 11

Figure ‎3.6 Cylindrical capacitor 12

Figure 4.1, Stationary part 13

Figure 4.2, isolating the capacitor 14

Figure 4.3.1, fixing the ball 15

Figure 4.3.2, fix the bars in the ball 15

Figure 4.3.3, the shape of the combs. 16

Figure 4.4, distribution of the sectors. 17






  1. Introduction

Electrostatics machines are electromechanical devices which generate high voltage when the charges gradually accumulate through DC current and stored by capacitors. These devices can produce static electricity by converting the mechanical action into an electric charge. The first electric generator was invented at the end of 17th century by Otto Von Guericken.

We can classify this type of devices into two categories: friction machines and electrostatic induction machines, both of them generate the same type of electric current but each one in its own way. The friction machine was the first electrostatic generator but later it has been modified and developed to more advanced machine of the electrostatic induction type.

The friction type electrostatic generator is based on the triboelectric effect, it generates a small electric current by rubbing two materials to each other.

Wimshurst generator is an electrostatic machine, which generates high direct voltages by induction and conduction, and was developed between 1880 and 1883 by James Wimshurst.

  1. Brief information of Wimshurst generator
    • What is wimshurst generator?

The Wimshurst machine is an “influence machine”, an electrostatic generator that uses the charges already present on it to generate more charges by electrostatic induction. It does not rely on friction for its operation, it has a distinctive appearance with two large contra-rotating insulator disks mounted in a vertical plane, two crossed bars with metallic brushes, two capacitors to store the charges and a spark gap formed by two metal spheres [1].


According to Tony Van Roon (2005) “a machine for generating high voltages developed between 1880 and 1883 by British inventor James Wimshurst (1832–1903)” (para 1) [1].

This machine was developed from several old machines such as Holtz generator, Toepler generator, and Voss generator. Wimshurst generator has more efficiency than the older machines, it is a self-starting electrostatic generator and it does not exhibit an unpredictable tendency to change its polarity unlike those older generators. [4]

Wimshurst machines are the end point of the long development of electrostatic disk machines. They have very efficient outcomes and are frequently used to power X-ray tubes. The characteristic construction element of these machines is insulating disks, which are laminated with radially arranged metal sectors. The advantage of disks is that they can be stacked onto one axle in order to multiply the effect. [2]


2.3   Mechanism of wimshurst generator

In a Wimshurst machine, the two insulating disks and the metal sectors on them rotate in opposite directions passing the crossed metal neutralizer bars and their brushes. An imbalance of charges is induced, amplified, and collected by two pairs of metal combs with sharp points placed near the surfaces of each disk. These collectors are mounted on insulating supports and connected to the output terminals. The positive feedback increases the accumulating charges exponentially until the dielectric breakdown voltage of the air is reached and an electric spark jumps across the gap [5].

Figure 2.3.1 Mechanism of wimshurst generator [8]

As this is an electrostatic influence machine it evidently uses electrostatic influence or induction to generate static electricity.

This electrostatic induction is nothing more than the effect of a charge onto nearby objects without a physical contact. For example, a positive charge will attract a negative charge and repel a positive charge. Therefore, in a conductor, charges will be redistributed as to make the electrostatic potential constant throughout this conductor. The classic example is an electroscope in the vicinity of (but not in contact with) a charged object. Most electrostatic machines use inductance to produce a net charge in an object. The simplest version is an electrophorus. If for example a positive charge is brought near a conductor, it can be seen that this conductor is polarized. (Simply said, this positive charge moves all the (negative) electrons a bit towards it. And of course charge x vector is a dipole moment.)
Fig 2.3.2, Conductor in vicinity of charge. [8]

One can now ground the end of this conductor which will remove the positive charge located there
Fig 2.3.3 one end is grounded. [8]

If one then removes the connection to the ground and the inducing charge, one can see that there is a net negative charge left in the conductor.
Fig 2.3.4 a net charge remains. [8]

A Wimshurst machine and all other electrostatic influence machines are nothing more than elegant, mechanized versions of a sort of double electrophorus.

A Wimshurst machine consists out of two parallel, counter rotating discs with metal strips. The strips pass under so called ‘neutralizer’ rod which do the separating out of the charges on the strips and the strips also pass under combs which harvest the accumulated charge on the strips.

One can see in the main pictures of this step, that there are 6 different zones on the discs. (And since everything is symmetric, those same 6 zones appear on the other side of the discs)

even before the discs start spinning, there will be some static charge on the metal strips. Because just touching or handling the disks is enough to charge them a minuscule amount. This charge will amplify itself as the discs are spinning.
For example, the schematic starts in zone 1 with a net negative charge on the back disk strips. The field of this charge induces some polarization of the second disk. In much the same way as Fig 2.3.3

as a front metal strip passes under the front brush of a neutralizer rod, some negative charge gets repelled trough the rod to a strip on the opposite of the disk.
This is similar to Fig 2.3.3 where the “ground” is replaced by another piece of conductor.

When the contact with the brush of the neutralizer rod is lost, a net positive charge remains on the strip. (If you subtract a negative charge, you’re left with a positive charge) Similar to Fig 2.3.4 .So, the back disc still has the net negative charge and the (upper) front disk strips now have a positive charge. Secondly, the front disk strips on the other (bottom) side now have a net negative charge.

Remember that the back disk also turns, but in the opposite direction. In zone 4, the back disk gets in contact with the back neutralizer rod. And the negative charge on the back is produced in exactly the same way as in zone 2.The positive charge repels the positive charge (or attracts negative charge since it’s mainly negative charges that move) on the other side of the disk.

similarly, zone 5 is the opposite of zone 1 wherein the net positive charge on the front disk polarizes the back disk. As the back disc moves towards zone 4.

Here, the strips of the back disc and the front disc with the same charge pass under a comb-like structure. As both strips on both disks have the same charge, they repel each other. Secondly the comb acts like a Faraday cage so the charges on the strips desperately want to escape outwards toward the comb. And this is what happens.
The comb does not need a physical contact with the strips as it has conducting points and electric fields towards points are always very strong, so there the air will break down a bit and the resulting ions provide a path for the charge on the strips to escape towards the low potential of the combs. When running a Wimhurst machine, this is visible with a small purple line from one of the points to the disks. The charge on the combs immediately gets diverted towards Leyden jars where the charge/voltage will build up till there is a spark.


  1. Main components of Wilmshurst generator

In this study, it is planned to construct a 70 kV wimshurst generator, the generator has been designed with a specific configurations for each part such as, rotating disks, pulleys,, brushes, combs and capacitors, each of these parts are briefly explained in the following details.

3.1   Insulating Disks

The wimshurst generator has two rotating disks dimensioned with 36 cm diameter with thickness of 3 mm, the rotating disks include metallic sectors each has 10 cm length, the arc between each one is 15 degree equally distributed as shown in the Figure 3.1





Figure 3.1 Rotation discs [6]



  • Pulleys

Wimshurst generators have two upper pulleys and two lower pulleys, the usage of the upper pulley to attach them with the rotating disks with a diameter of 7.5 cm and thickness of 2 cm as shown in the Figure 3.2. The lower pulleys are larger than the upper pulleys to provide rotational speed.






Figure 3.2 Lower pulleys [7, (project step 7)]

As mentioned, the lower pulleys are larger having14 cm diameter and they are 2 cm as thick.

3.3   Rubber belt

The rubber belt as shown in the Figure 3.3 is used to connect lower pulley with upper pulley. In addition, belts provide the rotation of disks in opposite direction when the handle which is connected to the lower pulley, is rotated.




Figure 3.3 Rubber Belt [8]

3.4   Brushes

The brushes are made out of a conductive material. They should have a good contact with the metallic sectors on the insulating disks so that the brush collects the charges on the capacitors. There are two brushes connected to a neutralizing bar. Two conductive neutralizing bars are fixed to a shaft for charge distribution on each insulating disk. The length of the neutralizing bars is 31 cm.

The charges are redistributed on neutralizing bar which holds two brushes, in that way, each brush have opposite charges on them. The charges also induce opposite charge on the back disk by induction. ,



3.6   Capacitor (Leyden jar):

The capacitor is used to store the induced charges. The shape of the capacitor is cylindrical. The capacitor is composed of an insulator (Glass tube) and two conductors. Inner and outer surfaces of the insulator are covered with conductors to form a co-axial cylindrical system. The capacitance of a coaxial cylindrical capacitor can be calculated by a simple equation


The capacitor in this system has the following dimensions

L=31cm, r1=2.3cm, r2= 2.5cm

The permittivity of the glass tube is (5.2), dielectric constant is (8.854*10^-14 F/cm).

Substituting in the equation above. The capacitance of the capacitor is:

= 1.04*10^-9=(1 nano F)

As shown in the next following figure 3.6



Figure 3.6, cylindrical capacitor [10]

  1. Construction of Wimshurst generator

In this section, construction phase of the Wimshurst generator is explained for stationary and rotationary parts, separately.

4.1 Construction of the rotationary part

First of all, a wooden board with dimension of 40*42 cm is prepared as the base of the machine. Everything is fixed to the base to have a presentable outcome.

In order to hold the insulating disks and to carry their weight, 29 cm high, thick wood bars are prepared. The bars should not be too long to prevent any vibration due to the rotation of the shaft. The wooden bars are basically holding the most of the machine. The neutralizing bars with metallic brushes are connected to the wooden bars on the disks. The brushes should have 45° angle between them in order to have an efficient design.

Upper pulleys and lower pulleys are also carried by those wooden bars. Upper pulleys and neutralizing bars with brushes are fixed to the wooden bars on a shaft. Upper pulleys are connected to a handle. Lower pulleys and upper pulleys are connected by rubber belt.

Note that the rubber belts are oppositely connected to have an opposite rotation for each disk.

Figure 4.1, Rotationary part

4.2 Construction of the stationary part

In this section, stationary part of the Wimshurst generator is explained.

The capacitors are composed of an acrylic cylinder as the insulator and aluminum foils as inner and outer conductors. Inner conductor is the charge-carrying conductor. Outer conductors of two capacitors are connected to each other. To store the charges. Inner conductors are connected to collecting combs. For that, a conductive cap is used. However, conductive cap and the outer conductor were not distant enough. Therefore, the length of the conductors are decreased another insulating layer is covered on the insulating cylinder to avoid sparks between inner and outer conductors.

Figure 4.2, isolating the capacitor

The capacitors are fixed on the wooden base. In order achieve that, another cylinder with a small height is form to hold the capacitors. The diameter of the capacitor-holding cylinder is measured precisely to fit to the capacitors. Capacitors are glued in the cylinder on the wooden base by super-glue.

4.3 The connection between rotation and stationary part

After finishing rotationary and stationary parts of the machine, everything should put together for the final design.

Since aluminum features with high conductivity, flexibility and lighter than the other materials, an aluminum bar is used to form the collectors. 4 mm thick aluminum bars are bent in U shape. The collectors are fixed on spherical conductors as shown in the figure below. The spheres are also connected to the inner conductor of the capacitors. The spheres, collectors and capacitors are all fixed by a screw to prevent those parts from moving.

Figure 4.3.1 fixing the ball

The capacitors are connected to the discharge electrodes, as well. In order to connect the discharge electrodes, another pair of spherical conductors is used. An aluminum bar penetrates those spheres letting the discharge electrodes move so that electrode gap is adjustable. For insulation, two handles are connected to the bar that holds the discharge electrodes at the opposite end.

Figure 4.3.2 fix the bars in the sphere

The collecting combs are fixed around the rotating disks without touching them, needles with 1.5 mm thickness are fixed on the both sides of the U shape. The needles generate very high electric field intensity due to the very small curvature radius. That results in corona so that the charges are stored in capacitors.

Figure 4.3.3 the shape of the combs

4.4 Problems and challenges    

The major challenge was with the capacitors. Capacitors, as explained before, are constructed using an acrylic cylinder. Inner and outer surfaces are covered by using aluminum foil to form the conductors. To have a presentable design, the cylinder should be closed. For that purpose a cap is used. Unfortunately the cap was conductive. That led to small discharges between inner and outer conductors. In order to fix that problem, the lengths of the conductors are decreased.

Another big problem was in the metallic sectors. They were very close to each other. So whenever the machine is charged, a discharge has observed between the sectors.

To remedy that, odd numbered sectors are cut into half to decrease the distance between sectors.

Figure 4.4, distribution of the sectors

After those modifications, the output voltage level of the generator is increased. The length of the spark between discharge electrodes is measured to be up to 3 cm. Since air has a breakdown strength of 30 kV/cm, output voltage of the Wimshurst is calculated to be up to 90kV.

time table

  • Cost Analysis

The cost for all of materials is given below:

Table 5.1 Estimated cost

Elements Price per piece Amount Cost
Acrylic Discs 25TL 2 50TL
Acrylic Pipes 18TL 2 36TL
Copper pipes 5TL 5 25TL
Aluminum foils 9TL 1 9TL
Aluminum sheets 2TL 5 10TL
6Plastic Pulleys 35TL 4 140TL
Wood bored 20TL 1 20TL
Rubber belts 20TL 2 40TL
1 meter Aluminum bars 10TL 3 30TL
Iron balls 3TL 6 18TL
Indent the bars & balls total 8 70TL
Super glue 3TL 6 18TL
FISCH 1.5mm&3mm 1.5TL 11 17TL
Second rubber belts 25TL 2 50TL
Second wooden board 20TL 1 20TL
Screws 7cm length 1TL 12 12TL
Taxi 10TL Over 20 Up to 250TL
TOTAL     850TL



  • Conclusion


This report has discussed the history of Wimshurst generator and also the mechanism principle of Wimshurst generator.

A lot of machines have the ability to generate a high dc voltage, Wimshurst is one of the best amongst these machines regarding to more efficiently than the others.

During this project I faced problems in rearranging the design of lower pulley and rubber compatibility; design of discharge electrodes and collecting combs. Some of those problems are solved and the output voltage level is increased substantially.

In conclusion I recommend to take Wimshurst generator into consideration especially when the new global world does not pay too much attention to those inventions. I would like to emphasize to represent to the world the great inventions like Wimshurst generator not as a new technology but as an appreciation to the inventors whom made their lives easier to live.














  • References


[1]        Roon, t. (2005). The Wimshurst machine. From World Wide Web:


[2]       Gramatke. (2004). History of Electrostatic Generators. Retrieved from the World Wide Web:


[3]       Sparticles. Small Wimshurst generator from cardboard and CDs. Retrieved from the World Wide Web:


[4]        Wikipedia. WWW user survey. Retrieved December 1, 2015 from World Wide Web:


[5]        Wikipedia. WWW user survey. Retrieved December 5, 2015 from World Wide Web:


[6]        Joehan. (2015). Wimshurst Electrostatic Machine. Retrieved from the World Wide Web:


[7]        Slatt, j. The Wimshurst Influence Machine. Retrieved from the World Wide Web:


[8]        Sparticles. Small Wimshurst generator from cardboard and CDs. Retrieved from the World Wide Web:


[9]        Steven Dufresne. (2011). Wimshurst Machine. Retrieved from the World Wide Web:


[10]      Wikipedia. WWW user survey. Retrieved November 19, 2006 from World Wide Web: