0% found this document useful (0 votes)
154 views

A Control Strategy For An Autonomous Robotic Vacuum Cleaner For Solar Panels

This document proposes a control strategy for an autonomous robotic vacuum cleaner to clean solar panels. It uses a two-stage cleaning process with a rolling brush and high-speed suction motor. The robotic vacuum cleaner navigates along a predefined path on the solar panels, detected by accelerometers and an ultrasonic sensor. When the battery level is low, it returns automatically to a docking station to recharge using power from the solar panels. The docking station uses a lithium polymer battery charging circuit. This autonomous robotic vacuum cleaner is designed to efficiently clean solar panels, even those at an incline, in order to maximize power output and prevent damage from dust accumulation.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
154 views

A Control Strategy For An Autonomous Robotic Vacuum Cleaner For Solar Panels

This document proposes a control strategy for an autonomous robotic vacuum cleaner to clean solar panels. It uses a two-stage cleaning process with a rolling brush and high-speed suction motor. The robotic vacuum cleaner navigates along a predefined path on the solar panels, detected by accelerometers and an ultrasonic sensor. When the battery level is low, it returns automatically to a docking station to recharge using power from the solar panels. The docking station uses a lithium polymer battery charging circuit. This autonomous robotic vacuum cleaner is designed to efficiently clean solar panels, even those at an incline, in order to maximize power output and prevent damage from dust accumulation.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

A Control Strategy for an Autonomous Robotic

Vacuum Cleaner for Solar Panels


Aravind G, Gautham Vasan*, Gowtham Kumar T.S.B, Naresh Balaji R
G. Saravana Ilango
National Institute of Technology - Tiruchirapalli
Tiruchirapalli - 620015
Email: *[email protected]

Abstract— Accumulation of dust on the surface of solar panels could not afford to waste copious amounts of water on cleaning
reduces the amount of radiation reaching it. This leads to loss in solar panels since it cannot be recycled very easily for practical
generated electric power and formation of hotspots which would uses. Also standalone panels installed in different areas do not
permanently damage the solar panel. This project aims at developing always have a nearby water source which further adds to the
an autonomous vacuum cleaning method which can be used on a
regular basis to maximize the lifetime and efficiency of a solar panel.
problem. Another efficient method of cleaning solar panels is
This system is implemented using two subsystems namely a Robotic using Electrostatic cleaning method. Though it is very
Vacuum Cleaner and a Docking Station. The Robotic Vacuum Cleaner effective, there is a decrease in power performance [5]. Also
uses a two stage cleaning process to remove the dust from the solar every solar panel requires an individual electrostatic cleaner for
panel. It is designed to work on inclined and slippery surfaces. A permanent installations which makes cleaning laborious and
control strategy is formulated to navigate the robot in the required path expensive [5].
using an appropriate feedback mechanism. The battery voltage of the
robot is determined periodically and if it goes below a threshold, it Photovoltaic panels are generally installed in relatively
returns to the docking station and charges itself automatically using inaccessible areas like roofs or arid deserts which make manual
power drawn from the solar panels. The operation of the robotic
vacuum cleaner has been verified and relevant results are presented.
cleaning operations difficult and expensive. Most solar panels
The DC Charging circuit in the docking station is simulated in Proteus are normally cleaned early in the morning or late at night since
environment and is implemented in hardware. An economical, robust cleaning during its principal operation leads to non-uniform
Robotic Vacuum Cleaner which can clean arrays of Solar panels (with power outage and decrease in efficiency. Thus the lack of
or without inclination) interlinked by rails and recharge itself automation capabilities in most cleaning solutions proves
automatically at a docking station is designed and implemented. costlier in terms of water and energy-use. Thus, by
implementing the proposed design the need for water based
Keywords—PID, Hotspots, Bypass Diodes, Docking Station, Robotic cleaning methods, manual intervention and cleansing
Vacuum Cleaner difficulties in remote places is eliminated.
I. INTRODUCTION The goal of the project is to design a robust, commercially
India is one of the few countries endowed with abundant viable product which provides a simple, cost-effective solution
solar energy. The country receives about 5000Trillion to the clean solar panels. The robot uses a two stage cleaning
KWh/year, which is more than sufficient to satisfy the power process to remove dust effectively from the solar panels. A
requirement of the entire nation [1]. With more than 300 rolling brush is placed in front to disperse the dust towards the
million people without access to uninterrupted supply of vacuum cleaner. A high speed motor capable of creating
electricity and industries citing energy shortage as key growth suitable suction is used for removing dust from the panels. It
barrier in India, solar power has the potential to help the traverses the solar panel using a pre-defined path controlled by
country address the shortage of power for economic growth [2]. the accelerometers and ultrasonic sensor. The proposed design
can detect edges easily, work on inclined planes and
Although solar energy is a very promising source since it automatically charge itself at the docking station.
supports delocalized power generation, it requires regular
maintenance after installation. Accumulated dust on the surface The report has been organized into 6 sections as follows:
of photovoltaic solar panel can reduce the system‟s efficiency section 1 provides the comparison with previous works, section
up to 50% [3] [4]. This emphasizes the need to keep the surface 2 gives the technical background for the project, section 3.1 and
of the solar panel as clean as possible. Most of the present 3.2 provide the detailed explanation of the proposed system,
cleaning methods employ water based techniques (e.g., section 4.A shows the practical realization of the system in
washing directly from a water pump, a soap solution, etc.). One hardware with different ICs, and section 4.B presents the

1
Team ID: 56.2
CMT ID: 272
implementation of the various algorithms using flowcharts. location in the room [10]. But IR sensors are not very effective
Section 5 shows the various experimental results and when used in sunlight. Instead an Ultrasonic sensor has been
simulations performed to verify the system. The conclusions placed in the front of the robot to detect edges of the
and future scope of the project are presented in Section 6 panels/cliffs and stop in order to change the direction of
motion. The robot‟s position in the panel is found by counting
II TECHNICAL BACKGROUND the number of cycles of cleaning.
When there is a loss of illumination intensity caused by
obscuration of light by dust layers on the panels, there are three To cover the entire expanse of the solar panels, a path is pre-
adverse effects: (1) Reduction in power output (2) Decrease in defined as shown in fig 2.1. The robot travels in a reciprocating
overall efficiency (3) Formation of hotspots and dead cells if motion to travel along the defined path. Feedback from
the modules are partially blocked by dust layer deposits [6]. ultrasonic sensor and accelerometers are used to detect the
When some of the cells are covered by dust, the shaded cells do edges (cliffs) and stay on the defined path. The arrays of solar
not generate enough power to match the other cells; rather, they panels are interlinked using rails to ensure that one robot is
act as dead load on the working cells. As a result, the enough to clean an entire array of solar panels. Once a group of
temperature of the shaded cell increases forming hotspots [6]. solar panels are cleaned completely, the robot moves to the next
Unless efficient protection devices like bypass diodes [7] are group using the connecting rails. For the robot to be fully
used to prevent the formation of hotspots, the modules can get autonomous, it should be able to dock itself and charge itself
permanently damaged [6]. automatically. Thus when the battery level is low, the robot
stops the cleaning process and returns to the docking station to
Hence the need for a cost-effective, automated cleaning charge itself. Provision of battery charging is provided in the
solution arises which can be satisfied by the proposed method. docking station by using a Lithium Polymer battery charging
Though the concept of a robotic vacuum cleaner has already circuit. This circuit draws input power supply from the solar
been commercially implemented by corporations like panels. When charging is complete, the robot disconnects itself
Electrolux (Trilobite), iRobot (Roomba), the problem lies in the from the docking station. Now the robot starts cleaning the
fact that they are designed for home applications only. When panels if it is required to do so. The Overall Block Diagram of
the concept of a robotic vacuum cleaner for solar panels comes this system is shown in fig 2.2.
into picture, the factors to be taken in to account are: (1)
Inclination of the Solar Panels (2) Multiplicity of panels (3)
Detection of edges (4) Scheduled time of operation (5) Need
for a generic algorithm.

Though it can be argued that vacuum cleaner designed for


home applications like Roomba can be used on solar panels,
there are few complications that arise as follows: The area of
cleaning is fixed by either allowing Roomba to find the
perimeter using its IR sensor or by manually setting up to a
maximum of two virtual walls [8]. But solar panels do not have
any large obstacles (vertical structures/walls) in the surrounding
area and hence to find the perimeter, it now has to use four Fig 2.1: Path-Plan Overview
virtual walls which is not possible. To avoid this, a set of rules
are pre-defined so that the robot traverses along a pattern until
it reaches the end of the interconnected array of panels. Also
Roomba, Trilobite, etc., are not designed specifically for
working on inclined planes. Hence, problems like slipping,
power wastage, etc., may arise. This difficulty is tackled by
using powerful Geared DC motors coupled with gripper
wheels. Also Roomba finds the shortest path back to the
docking station from its virtual map in the memory and a RF
module [9]. But since it is very unlikely to create a memory
map, it may not reach the docking station via a computed route,
but through a more complex route. A simple yet effective path
is used in the proposed system. Roomba employs Infra-Red
sensors for obstacle detection, perimeter calculation and cliff .
detection [8]. It also uses the Infra-Red signal to find its current Fig 2.2: Overall Block Diagram
2
Team ID: 56.2
CMT ID: 272
III. PROPOSED SYSTEM added to the charging circuit to ensure safety. The rate at which
The proposed system is implemented by developing two the battery continues to absorb charge or the current from the
subsystems as follows: solar panels gradually slows down because the voltage is
maintained constant. Completion of charging is indicated by the
(i) The Robotic Vacuum Cleaner use of an LED.
The dust accumulated on solar panels forms a sticky layer which
cannot be cleaned directly by using portable vacuum cleaners. 3.1.2 DC-DC Converter
Hence a two stage cleaning process is implemented. Stage 1: A The buck converters LM2675-5.0 and LM2675-3.3 are used to
rolling brush is fixed on the robot such that it agitates and regulate the power supply. It also comprises of a diode and LC
pushes the dust towards the vacuum cleaner. Stage 2: The filter. The LC filter is used to achieve a ripple free DC output.
vacuum motor is used to create enough suction to collect the
dust scattered on the solar panel. The presence of a sticky layer 3.1.3 Battery Level Indicator
of dust on a smooth inclined surface adds to the problem of LM 3914 (Dot/Bar Led Driver) has been used to indicate the
slipping. Therefore, to have better traction gripper wheels are voltage of the battery. It is operated in dot mode. It is calibrated
used to traverse the solar panels. The robot is controlled using for the full charge voltage (12.6 V) of the battery.
the MSP430G2553 microcontroller. It acts as the master control
element of the robot. The robot is designed to minimize the total 3.1.4 Motor Driver
load in order to achieve higher efficiency and longer battery life. The TPIC0298 motor driver module has been used to control
the motors since they require a higher current which cannot be
(ii) The Docking Station drawn using the L293D motor driver. The TPIC0298 can
The docking station is setup at the beginning of the solar panels. provide a maximum of 2A per channel.
It comprises of a base and two Aluminium strips mounted on it
acting as the positive and negative terminals. The circular design 3.1.5 Navigation Control
ensures that the robot can charge itself at any orientation till it In order to ensure the robot travels in the right path, two
makes contact with the charging strips. accelerometers and ultrasonic sensors are used to control the
orientation and detect edges respectively. The MMA7361
If the battery voltage falls below a particular threshold, the robot Triple axis accelerometers are used with sensitivity 800 mV/g.
returns to the docking station to charge itself. During the The HCSR04 Ultrasonic sensor module is used to find
charging process, if the battery voltage exceeds the reference cliffs/obstacles along the path.
limit, the charging circuit disconnects itself from the battery.
When charging is complete, it starts the cleaning the panels 3.2 Software Components
again if required. 3.2.1 Path-Planning Algorithm
The robot traverses the path as shown in fig 2.2. This pre-
3.1 Hardware Components defined path ensures that the total expanse of the solar panels
3.1.1 MSP430 Launchpad is covered effectively. The Ultrasonic sensor is used detect the
The MSP430G2 Launchpad is used for the overall control of the edges (cliffs) of the solar panel. In order to stay on the
robot. It triggers the ultrasonic sensor and processes the ADC defined path, the output signals from the accelerometers are
inputs from the accelerometer and echo pulses from the processed by the MSP430G2553 Microcontroller and compared
ultrasonic sensor for navigation control. It also relays control with a pre-defined set of values. The Proportional Integral
signals to the Motor driver. It takes input signals from the Derivative (PID) Control technique [11] is implemented by
battery level indicator to keep track of the source battery adding the calculated error to the Timer's capture/compare
voltage. A common output signal from the MSP430 is used to register value which alters the Pulse Width Modulation (PWM)
control the rolling brush and the vacuum cleaner signal given as input to the motor driver. The total
simultaneously. Since the vacuum cleaner requires a large error, e is found by using the formula:
amount of current, it is connected directly to the battery and
controlled using a Power-MOSFET IRFZ44 as a switch.

3.1.2 Lithium Polymer Battery Charging Circuit Where ep, ei, ed are the proportional, integral and
The DC charging circuit comprises of a Lithium Battery derivative errors found by comparing the accelerometer
charging circuit which is placed in the docking station. It is a readings with preset values. kp, ki and kd are found by repeated
Six Cell 12.6V charger with a DC input of 15V – 40V. The testing on inclined surfaces. A particular set of values are
variable voltage regulator LM317 transistor BC547, dual chosen such that they are applicable for any small inclination.
operational amplifier LM358N and Power-MOSFET IRF540N The PID control algorithm is used only to control the
are used in the circuit. An over-voltage protection circuit is

3
Team ID: 56.2
CMT ID: 272
navigation of the robot so that the total expanse of the solar
panels is covered effectively.

3.2.2 Battery Charging Algorithm


In an attempt to improve the battery health, two states of
charging have been implemented. The battery is charged at to a
preset threshold of 12.6 V beyond which it is charged at a lower
current to prevent damage.

3.3 Assumptions
 The inclination of the solar panels is limited to 30 degrees.
 Only dust particles or small dispersible impurities are
settled on the solar panels. Water or any other substances
which can cause slipping are not present on the surface.
 The dust is collected every week using the robot.
 Though rails are used and a docking station as a part of this
project, it is generally not provided in regular
arrangements. Hence the provision of rails and a docking
station is absolutely necessary for that robot to clean all Fig 4.1: Hardware Setup
panels and recharge automatically.
 The differential turns taken by the robot are assumed to be
zero radius turns.

3.4 Constraints
 When the robot moves on inclined surfaces, it can
encounter a free fall due to gravitational force. Hence
speed of the robot is regulated and gripper wheels are used.
Fig 4.2: Buck Converter
 In most installations, a bump is formed at the point of
contact between the two solar panels. The robot needs
additional power to climb over this obstacle. Hence small 4.1 Master Control Board
gripper wheels are used instead of castor wheels to climb This board is a general purpose board (shown in fig 4.1 and
smoothly over the bump. 4.6) designed to connect the required pins from the
Accelerometer and Ultrasonic sensor to the MSP430G2553
 Though negative power supply can be provided using a TI
Launchpad. It was primarily designed keeping in mind the ease
IC DN43, it has not been used along with IC741 in order to
of usage and mounting difficulties of the Launchpad on the
reduce the complexity and size of the charging circuit on
robot. It also relays control signals to the Motor driver. The
the docking station. Hence LM358, a single-supply dual
output voltages of the two buck converter power the board. The
operational amplifier has been used for this purpose.
battery level indicator is also connected to the Microcontroller
so that the battery voltage is continuously monitored.
IV IMPLEMENTATION
4.2 Buck Converter
A. Hardware Implementation
The buck converter module (fig.4.2) consists of two individual
The hardware components of the system include the
buck converter ICs LM2675-3.3V and LM2675-5.0V. It also
microcontrollers, DC-DC converters, sensors, voltage
comprises of a diode and LC filter. The LC filter is used to
regulators, battery level indicator and motor drivers. The Robot
achieve a ripple free DC output.
is self-sufficient since it can be powered by the PV panel array
does not require any other external power source. The voltage
The values of L and C were found using the formula:
sensors are constructed with differential amplifier circuits using
appropriate op-amps. The microcontroller is powered from (( ) )
3.3V supplies obtained via Buck converter (LM2675-3.3). The ( )
robotic vacuum cleaner has the following analog circuits And
onboard: (a) Master Control Board (b) Buck Converter (c)
Battery Level Indicator (d) Motor Driver. The docking station
houses the robot and the Lithium polymer battery charging Though a regular variable voltage regulator would suffice for
circuit. the power requirements, an efficient solution is needed to
4
Team ID: 56.2
CMT ID: 272
guarantee a longer battery life. The vacuum cleaner alone which provides ample grip and stability. On the bisecting
draws a lot of power. Added to this power is required for diameter two small rubber wheels are placed. The robot uses a
running three other motors and overcome the forces of gravity differential drive for steering. The usage of differential drive
and friction. Hence an energy efficient alternative is required. permits zero radius turns and easy steering. The motors used
are 12V, 5 Kg-cm torque, 60RPM Side-Shaft Geared DC
4.3 Battery Level Indicator motors. The rolling brush is coupled with a gear arrangement
The LM3914 dot/bar display driver is used to indicate the shown in fig.4.7. The gears are attached to a 12V, 300RPM
voltage level based on battery voltage (as shown in fig 4.3). It Side-Shaft DC Geared motor. The vacuum motor is a 20000
is operated in dot mode and calibrated for a voltage of 12.6V RPM Johnson motor which has a power rating of 250W. A slot
using appropriate resistances. is created on the chassis where the vacuum cleaner is fixed such
that it is placed just above the ground. The vacuum cleaner is
4.4 Motor Driver held steady by using mechanical supports. Its base design is
The TPIC0298 motor driver (fig.4.4) is used for controlling the built using a customized carpet cleaner body and a filter. All
motors as necessary. It is capable of supplying up to 2A per the circuits are mounted on an acrylic sheet balanced using
channel. The circuit also uses 8 fly-back diodes protect the IC studs on the wooden chassis. The ultrasonic sensor is mounted
from back-EMF. It is capable of controlling two DC motors. on the front. The overall design is shown in fig 4.6. The rails
The vacuum cleaner draws a large amount of current and hence and docking station (fig 4.7) are constructed using wood plank
can damage the motor driver. Hence the control signal given to of appropriate dimensions. They‟re attached to the solar panel
the rolling brush is also given to a Power-MOSFET which and the ground for sturdy mechanical support.
accordingly switches on/off the supply to the vacuum cleaner.

4.5 Lithium Polymer Battery Charging Circuit


In the DC charging circuit (fig.3.4), a variable voltage regulator
LM317 is used to set the required maximum charge voltage at
12.6V. In this circuit, resistor R4 is used to effectively limit the
current output. When the voltage across R4 reaches
the threshold of +0.7V at the base of the transistor, the
transistor BC547 starts to conduct and brings the ADJ pin Fig 4.3: 12V Battery Level Indicator
progressively to ground. Heat sinks are used along with the
LM317 since it heats up a lot due to the high power dissipation.
Once charging is complete, the op-amp switches off the
transistor and hence charging is stopped and hence the LED
stops glowing.

It is absolutely necessary to immediately disconnect the battery


from the supply when it is fully charged. Otherwise, it is very
likely that the battery will explode. Hence a protection circuit is
added by using LM358N, a single-supply dual operational
amplifier and a Power-MOSFET IRF540N. The power-
MOSFET is used since it has a higher current rating and
satisfies the requirements. The MOSFET is used as a switch in Fig 4.4: Motor Driver Circuit
this circuit. The Op-amp is used as a comparator. As the battery
charges, voltage across resistor R4 varies. This voltage is
compared with the reference voltage. The reference voltage is
generated using a sensing diode 1N4148 and a potential divider
circuit through the LM358N. When voltage across R4 exceeds
the threshold the Op-Amp goes low and hence switches off the
MOSFET which disconnects the battery from charging.

4.6 Hardware
The robot is built on a circular wooden chassis. It is powered by
two DC geared motors placed diametrically opposite to each
other. The wheels used are made of plastic and they have an
additional gripper made of rubber. It has a diameter of 11.3 cm Fig 4.5: DC Lithium Polymer Battery Charging Circuit
5
Team ID: 56.2
CMT ID: 272
Fig 4.6: Overall Circuit Diagram

Fig 4.7: (i) Robotic Vacuum Cleaner (ii) Docking Station (iii) Connecting Rails

accelerometer and compares it with a preset value. This is to


ensure that the robot exhibits linear motion.

Fig 4.8: Battery Charging Algorithm

B. Software Implementation
The complete algorithm for path-planning, PID control and
battery charging is implemented using the MSP430G2553
microcontroller. The code was primarily tested using Code Fig 4.9: Path Planning Algorithm
Composer Studio which interfaces the microcontroller using the
JTAG interface. The data from various sensors were analyzed The MSP430 triggers the ultrasonic sensor periodically and
by sending their output data to the Computer using UART continuously calculates the distance between the robot and the
serial communication. The overall path planning algorithm is ground using the echo pulses. This distance is also compared to
implemented as shown in fig 4.9. It uses ADC inputs from a threshold which enables the robot to act accordingly
6
Team ID: 56.2
CMT ID: 272
whenever it encounters a cliff. The flowchart illustrated in fig vacuum cleaner. This ensures the robot successfully traverses
4.8 is used to check if the robot can continue cleaning the solar along the panel without repeatedly moving over a single area.
panels with its present battery state. If the voltage goes below a Now, the robot moves down the panel (c) with a reduced input
minimum threshold level, the robot completes the current cycle to the motor compared to upward motion. This is to ensure
and it returns to the docking station. Once charging is complete, constant velocity, taking into account the acceleration due to
it resumes cleaning at the same column where it had left off gravity. Again a differential turn is made, seen by the reversal
earlier. of voltage to the left motor (d). This cycle is repeatedly
V. RESULTS implemented until the entire solar panel is cleaned completely.
The real-time navigation of the robot on the solar panel is
verified by plotting the distance measured from ultrasonic The plot for PID control mechanism is shown in fig 5.2. The
sensor and input to both motors against time (shown in fig 5.1). sudden change in the accelerometer readings arises when the
When the system starts its cleaning process by moving out of robot tries to move over a bump at the point of contact of the
the docking station, the distance computed from the readings of solar panels. Initially the robot moves up correcting it
ultrasonic sensor is around two inches. This is the distance from orientation by tuning to the preset values (A). It can be seen
the sensor to the panel surface below and is considered safe for that the speed reduces drastically when it tries to climb over the
the robot to move forward. The robot moves up the panel (a) obstacle. In the beginning, the left motor goes over the bump.
(marked in the graph 5.1), correcting its orientation by tuning to The robot tries to stay on the right orientation and hence
the preset values of accelerometer until the edge of the panel, reduces the speed of the left motor and increases the speed of
which is detected by a sudden surge in distance computed from the right motor (B) (marked in the graph 5.2). Once the robot
the ultrasonic sensor. Now, the robot makes a differential turn reaches the correct orientation, the same low speed signal is
(b) to follow the pre-computed path, which is seen by reversal given till it climbs down the bump (C). Immediately after it
of input voltage polarity to the right motor. When the 90 degree crosses the bump, the speed of the motors increases its speed
turn is completed, the robot moves a short distance along the and tunes itself automatically (D). Other disturbances are
panel longitudinally, a distance equal to the nozzle width of the corrected automatically by sending signal to the motors.

(a)
(d)
(b) (c)
(a)

Fig 5.1: Ultrasonic sensor & Motor Input Signals Vs Time

(B)
(C)
(D)
(A)
Fig 5.2: PID Control – Accelerometer outputs & Motor Inputs Vs Time

Team ID: 56.2


CMT ID : 272 Page 7
The fig 5.3 shows the result of the cleaning mechanism. The fig an entire solar farm. Further optimizations in size and cost can
5.4 shows the result of cleaning only once by using the robot to be achieved by using smaller circuit boards and building a
clean only the solar panel located in the Centre. smaller robot.

Using more powerful batteries, vacuum motors and gripper


wheels would be helpful in implementing the robot on a larger
scale. This work can be extended by implementing dust sensing
methods to control the speed of the rolling brush and the
vacuum motor. This system is very helpful to check if an area is
cleaned thoroughly. If the robot is unable to clean a spot it can
be programmed to send a message to the user so that the
particular spot can be cleansed manually to avoid formation of
hotspots. Addition of a gyroscope to the navigation control of
this system would improve the feedback mechanism.
Implementing machine learning concepts would enable the
robot to find preset values by itself accurately, thus making it
fully autonomous and a step closer to be released as a
commercial product.

REFERENCES
1. ABPS Infrastructure Advisory Private Limited, “Development of
Conceptual Framework For Renewable Energy Certificate Mechanism for
India”, Ministry of New and Renewable Energy, June 2009
2. Energy Sector Management Assistance Program (ESMAP) “Paving the
Way for a Transformational Future Lessons from Jawaharlal Nehru
National Solar Mission Phase I”, World Bank, Dec 2013
3. Shaharin A. Sulaiman, Haizatul H. Hussain, Nik Siti H. Nik Leh, and
Mohd S. I. Razali, “Effects of Dust on the Performance of PV Panels”,
World Academy of Science, Engineering and Technology 58 2011
Fig 5.3: Cleaning Process 4. J. Zorrilla-Casanova, M. Piliougine, J. Carretero, P. Bernaola, P.Carpena,
L. Mora-López, M. Sidrach-de-Cardona, “Analysis of dust losses in
If the robot battery voltage falls below a particular threshold, photovoltaic modules”, World Renewable Energy Congress 2011 –
The complete cleaning mechanism is shown in [12]. The Sweden, 8-13 May 2011, Linkoping, Sweden
5. Theodore G. Stern and Duane Krumweide, Composite Optics, Inc., San
overall working principle and circuit design are demonstrated Diego, CA 92121 , “Development of an electrostatically clean solar array
in [12]. panel”, Edward Gaddy, NASA/Goddard Space Flight Center, Greenbelt,
MD, Ira Katz, Maxwell Technologies, Inc., San Diego, CA 92138
VI. CONCLUSIONS 6. Rajiv Kohli, Kashmiri L. Mittal, “Developments in Surface
Contamination and Cleaning: Methods for Removal of Particle
A control strategy for the Robotic Vacuum Cleaner has been Contaminants” William Andrew, Elsevier, Volume Three
designed and tested. The two stage cleaning mechanism is very 7. Solar edge “Bypass Diode Effects in Shaded Conditions”, Technical Note
effective in removing dust settled for a long time on solar 8/2010
panels. Cleaning two to three times instead of just once shows 8. Ben Tribelhorn and Zachary Dodds, “Evaluating the Roomba: A low-cost,
ubiquitous platform for robotics research and education”, Robotics and
an improved performance in terms of effectiveness of cleaning. Automation, 2007 IEEE International Conference on, pp 1393 – 1399,
It has been proved experimentally that the robot can traverse on 10-14 April 2007
inclined surfaces without any difficulty. The robot traverses 9. Tod E. Kurt, “Hacking Roomba”, Wiley Publishing Inc, Extreme Tech
entire arrays of the solar panels interconnected using rails 10. Jodi Forlizzi, Carl DiSalvo, Carnegie Mellon University, “Service Robots
in the Domestic Environment: A Study of the Roomba Vacuum in the
completely and clean with satisfactory results. It travels at a Home”, HRI‟06 Proceedings of the 1st ACM SIGCHI/SIGART
speed of „2-6‟ cm per second based on the inclination of the conference on Human-robot interaction, ACM pp 258-265, 2006
solar panel. If battery level falls below a threshold, it is 11. Sellers, David. "An Overview of Proportional plus Integral plus
confirmed that the robot returns to the docking station and Derivative Control and Suggestions for Its Successful Application and
charges itself automatically. It is verified that the robot returns Implementation" (PDF). Archived from the original on March 7,
to the panel where it stopped cleaning and hence continues with 2007. Retrieved 2007-05-05.
the cleaning process. 12. Project Demonstration:
http://www.youtube.com/watch?v=qiCRSVuftFQ
The PV power can be effectively used for charging the battery.
The system can be readily installed for solar panels without any
major modifications in the arrangement. The system is flexible
and can be easily extended to meet the cleaning requirements of

Team ID: 56.2


CMT ID : 272 Page 8
Appendix A

PCB Designs

Fig A.2.2: DC-DC Buck Converter


Fig A.1.1: Battery Level Indicator

Fig A.1.2: Battery Level Indicator

Fig A.3.1: Lithium Polymer Battery Charging Circuit

Fig A.2.1: DC-DC Buck Converter

Team ID: 56.2


CMT ID : 272 Page 9
#define ref_up 800
#define ref_down 100

// PID Constants
#define kp 20
#define ki 2
#define kd 10

// Definition of Global Variables


int x, ADC, turn_c=0, turn_k=0, c=0; distance_from_dock=0,
int battery_was_low=0;
char buffer[32],count=0;
float i,set,ref,x1=0.0,y1=0.0,z1=0.0,x2=0.0,y2=0.0,z2=0.0;
float error=0.0,ep=0.0,ei=0.0,ed=0.0,e=0.0,duration, distance;
static float prev_error = 0.0;

void trigger_ultrasonic();
int check_ultrasonic();

void initPWM() //Initialize PWM


{
P2DIR |= left2 + right2 + left1 + right1 ;
P2SEL |= right1 + left1;
Fig A.3.2 Lithium Polymer Battery Charging Circuit
TA1CCR0 = 1000;
Appendix B TA1CCTL1 = OUTMOD_7; TA1CCTL2 =
#include <msp430.h> OUTMOD_7;
#include <stdio.h> TA1CTL = TASSEL_2 + MC_1;
#include <math.h> }

// Pin Configuration for motors attached to wheels // Initialize ADC


#define right1 BIT4 void initADC()
#define right2 BIT3 {
#define left1 BIT1
#define left2 BIT2 ADC10CTL0 = SREF_0 + ADC10SHT_0 + ADC10ON;
// Use Vcc/Vss for Up/Low Refs, 16 x ADC10CLKs, turn on
// Configure Ultrasonic Sensor operation ADC
#define trig BIT0
#define echo BIT5 ADC10CTL1 = SHS_0 + ADC10SSEL_3 + ADC10DIV_1
#define battery_level BIT1 +CONSEQ_0;
#define no_of_samples 5 // use ADC10CLK div 1, single channel mode
#define cliff_threshold 4
#define turn_tolerance 5 ADC10AE0 = 0xF9;
#define ultrasonic_error_tolerance 20 // 0,3,4,5,6,7 for ADC from two accelerometer
}
/* Preset values used for accelerometer. Though the same x1
value can be used theoretically for all the 3 conditions, different unsigned int read_adc(int pin)
values are used since values change in practical testing {
environments */ ADC10CTL0 = 0;
#define x1_set_up 218 ADC10CTL1 = 0;
#define x1_set_down 218 initADC();
#define y1_set_turn 247 switch(pin)
#define x1_set_turn 217 {
case 0: ADC10CTL1 |= INCH_0;break;
// PWM reference for speed control case 6: ADC10CTL1 |= INCH_6;break;

Team ID: 56.2


CMT ID : 272 Page 10
case 7: ADC10CTL1 |= INCH_7;break; case 1:
case 3: ADC10CTL1 |= INCH_3;break; if(ref - e > 1000) TA1CCR1 = 1000;
case 4: ADC10CTL1 |= INCH_4;break; else if(ref - e < 0 )TA1CCR1 = 0;
case 5: ADC10CTL1 |= INCH_5;break; else TA1CCR1 = ref - e;
} if(ref + e > 1000) TA1CCR2 = 1000;
ADC10CTL0 |= ENC + ADC10SC; else if(ref + e < 0 )TA1CCR2 = 0;
while ((ADC10CTL1 & ADC10BUSY) == 0x01); else TA1CCR2 = ref + e;
// wait for conversion to end break;
return(ADC10MEM);
} case 2:
TA1CCR1 = ref - e; TA1CCR2 = ref + e;
void stop(void) }
{ P2OUT &=~(left2+right2);
TA1CCR1 = 1000; TA1CCR2 = 1000; prev_error=error;
P2OUT |=(left2+right2);} }
void reverse_it(void)
{ void turn(int x,int y,int a,int b)
TA1CCR1=200;TA1CCR2=200;P2OUT|=(left2+right2); {
_delay_cycles(2500000); for(i=0;i<no_of_samples;i++) {
} x1=x1+read_adc(3)+read_adc(0);
y1=y1+read_adc(4)+read_adc(6);
void go(int a) z1=z1+read_adc(5)+read_adc(7);
{ }
for(i=0;i<no_of_samples;i++) { x1/=2*no_of_samples; y1/=2*no_of_samples;
x1=x1+read_adc(3)+read_adc(0); z1/=2*no_of_samples;
y1=y1+read_adc(4)+read_adc(6); x1=round(100*(((x1/1024.0)*3.3))/.8);
z1=z1+read_adc(5)+read_adc(7); y1=round(100*(((y1/1024.0)*3.3))/.8);
} z1=round(100*(((z1/1024.0)*3.3))/.8);
if(b==0) error = x1 - x1_set_turn; //aligning by using X value
x1/=2*no_of_samples; else error = y1 - y1_set_turn; //aligning by using Y value
y1/=2*no_of_samples; ep = error; ei += error; ed = error - prev_error;
z1/=2*no_of_samples; e = (ep*kp) + (ei*ki) + (ed*kd);
x1=round(100*(((x1/1024.0)*3.3))/.8); if(a==1) e*=-1;
y1=round(100*(((y1/1024.0)*3.3))/.8); if(e>=0) {
z1=round(100*(((z1/1024.0)*3.3))/.8); TA1CCR1 = 500 - e; TA1CCR2 = 500 + e;
switch(a) P2OUT &=~(left2); P2OUT |= right2;
{ if(turn_c==1){ turn_c=0;turn_k++; }
case 0: }
set = x1_set_down; ref = ref_down; else{
error = x1 - set; break; TA1CCR1 = 500 - e; TA1CCR2 = 500 + e;
case 1: P2OUT |= (left2); P2OUT &=~ right2;
set = y1_set_turn;ref = ref_down; if(turn_c==0){ turn_c=1;turn_k++;}
error = x1 - set;break; }
case 2: }
set = x1_set_down; ref = ref_down;
error = y1 - set;break; void trigger_ultrasonic()
} {
ep = error; ei += error; ed = error - prev_error; P2OUT |= trig ; _delay_cycles(1000);
e = (ep*kp) + (ei*ki) + (ed*kd); P2OUT &= ~(trig);
switch(a) }
{
case 0: int check_ultrasonic()
if(ref+e<0) TA1CCR1 = 0; else TA1CCR1 = ref+e; {
if(ref-e<0) TA1CCR2 = 0; else TA1CCR2 = ref-e; break; int error=0;
duration=0.0; distance=0.0;

Team ID: 56.2


CMT ID : 272 Page 11
while(error<40) reverse_it();
{ turn_it(0,1,0,0);
if(P2IN & echo){ duration++;} else error++; turn_it(0,0,1,1);
} return 1;
distance = (duration/2.0)/74.07; }
if(distance*100 > cliff_threshold) return 0; _delay_cycles(10000);
//ultrasonic range cliff detect }
else { return 1;} }
} return 0;
}
void turn_it(int x, int y, int a, int b)
{ void main(void)
while(turn_k < turn_tolerance) turn(x,y,a,b); turn_k=0; {
//turn_tolerance pid orientation alignment WDTCTL = WDTPW + WDTHOLD;
stop(); _delay_cycles(10000); P2DIR|=left1+right1+left2+right2; P1REN |= battery_level;
} initADC();
initPWM();
void move_it(int x) while(1)
{ {
while(1) while(1)
{ {
trigger_ultrasonic(); x:move_it(1);
if(check_ultrasonic()){ go(x); } reverse_it();
else { stop(); turn_it(0,0,0,1);
c++; side_move_it(0);
if(c > ultrasonic_error_tolerance ){ c=0; break; } } turn_it(0,1,1,0);
_delay_cycles(10000); move_it(0);
//minimum time period for consecutive echoes from ultrasonic reverse_it(); reverse_it();
if(x==2) distance_from_dock++; if(battery_level==0)
} {turn_it(1,0,1,1);battery_was_low=1;break;}
} turn_it(1,0,0,1);
if(side_move_it(1)) break;
int side_move_it(int f) turn_it(0,1,0,0);
{ }
if(f==0) move_it(2);
{ turn_it(1,1,0,0);
for(count=0;count<10;count++) move_it(0);
{ stop();
trigger_ultrasonic(); if(battery_level == 1 && battery_was_low == 1)
if(check_ultrasonic()){TA1CCR1=300;TA1CCR2=300; {
P2OUT&=~(left2+right2); } reverse_it();turn_it(1,0,0,1);
else {reverse_it(); break;} while(distance_from_dock--)
_delay_cycles(100000); go(2);
} turn_it(0,1,0,0);
} goto x;}
else for(x=0;x<1000;x++)
{ _delay_cycles(8640000);
for(count=0;count<10;count++) }
{ }
trigger_ultrasonic();
if(check_ultrasonic()){
TA1CCR1=300;TA1CCR2=300;
P2OUT&=~(left2+right2);
}
else {

Team ID: 56.2


CMT ID : 272 Page 12
Appendix C

S.No Components Manufacturer Cost per Quantity Total TI


Component (₹) Cost (₹) Supplied/Purchased
MSP430G2553 Texas 600 1 600 Yes
Launchpad Instruments
LM3914 Texas 60 1 60 Yes
Instruments
LM317 Texas 30 1 30 Yes
Instruments
TPIC0298 Motor Driver Texas 300 2 600 No
Module Instruments
LM2675 - 5.0 Texas 216 1 216 Yes
Instruments
LM2675 - 3.3 Texas 216 1 216 Yes
Instruments
LM358N Texas 6 1 6 Yes
Instruments
MMA7361 Triple Axis Extreme 400 2 800 No
Accelerometer Electronics
HCSR04 - Ultrasonic NA 250 1 2 No
Sensor and clamp
IRFZ44n ST 30 1 4199 No
Microelectronics
IRF540n ST 35 1 600 No
Microelectronics
BJT - BC547 ST 2 1 990 No
Microelectronics
Lithium Polymer Battery Zippy 4199 1 200 No
High Speed Vacuum NA 600 1 515 No
Motor
High Torque DC Geared Vega Robo Kits 330 3 250 No
Motors
Wheels & Gears NEX-Robotics 200 2+3 30 No
Mechanix Kit ZEPHYR 515 1 35 No
L-Clamps & Screws NEX-Robotics 100 - 100 No
Wood, Acrylic Sheet, etc NA 700 - 700 No
Aluminium Strip NA 100 - 100 No
Rolling Brush NA 30 - 30 No
PCB Printing NA 300 - 300 No
Miscellaneous NA 250 - 250 No
TOTAL COST 10829

Team ID: 56.2


CMT ID : 272 Page 13

You might also like