{'fraction_non_alphanumeric': 0.022268489182583506, 'fraction_numerical': 0.009052231375033946, 'mean_word_length': 4.63098878695209, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Window Cleaning Robot by using Arduino as Microcontroller

Stunning and modern houses nowadays have been constructed with increasing number of curtain window glass walls and corresponds to the requirement of its maintenance, repair and care from dust and pollution. This window produces a lot of difficulties such as the window height and the exposure to the risk of hurt or injury during the cleaning process. A window cleaning robot by using Arduino Mega as microcontroller is developed with neodymium magnet, ultrasonic sensors, DC motor, servo motor, motor driver and buzzer. Neodymium magnet is used to attach the window robot vertically on the surface of glass wall whereas servomotor will move the robot accordingly. To detect an obstacle or the robot reached at the edge of panel at about 3 cm, an ultrasonic sensors are used to notify and enable the DC motor to change its current path. When all four sides of the edge of panel window is detected, the robot will turn on a buzzer continuously to notify user that glass window cleaning process is completed successfully.


Introduction
To date, most of buildings including houses have been constructed with modern and dazzling curtain glass window compare to Naco glass window as a traditional approach. This contemporary skyscrapers buildings and houses with the glass panel need periodic maintenance, repair and care especially window cleaning, due to excessive dust and pollution in the city. The conservative method for external maintenance such as the use of rope, gondola and a winch require experienced labours for safety precaution. The more dependent on human labour, the more risk be able to occur where they are inherently danger, and cause emergency conditions when earthquake or wind gust occurred. Figure 1 illustrates the existing human labour intensive cleaning methods that involve the risk of the worker falling using (a) scaffolding (b) a gondola and (c) a mobile elevated work platform [1]. Meanwhile at home, the human still exposes to the risk of being cut, hurt and injury due too high or any sharp objects on the surface of glass walls. Consequently, the demand for an external window cleaning robot had arisen. Several studies are being conducted on ways of automating the process of providing curtain wall care, such as the building maintenance robot (BMR). This robot is an automated window cleaning system from outer window and using infrared (IR) sensor to the contaminant level [2][3]. In Japan, they are using a commercial carrier systems that support a gondola that moves vertically and horizontally. The carrier is put at the top of roof of the building named CAFÉ robotic system [4][5]. Several research institutes and companies, including Nihon Bisoh in Japan and Fraunhofer IPA in Germany, are experimenting with the potential application of wall climbing building maintenance robots for cleaning external wall glasses [6][7]. There are also even experimenting with the use of renewable energy and solar panel to cut down the cost of power usage [8][9][10]. However, all of this designs are practical only to a large and skyscrapers building and impractical to a modern house. Therefore, the robot are bulky, heavy, complex, high energy and power consumption, and need a professional labour to handle appropriately. Obviously, it is expensive for both of designer and consumer.
Lee, Y. S. et. al., has designed a simple and automated robot using programmable logic controller (PLC) with combination of relays and switches as a brain of the window cleaning robot system [11]. A light-weight robot has been constructed with a prototype size of 700 mm x 500 mm x 100 mm and its weight is about 6 kg [12]. Then, a smaller size of cleaner robot is developed and approximately 300 mm x 300 mm x 100 mm and its weight is about 3 kg [13]. Both of this light-weight window cleaner robot and move the robot smoothly using suction cup. However, both suffer to clean at the edge of window panel due to errors on the angle and translation motion calculation.
Thus, this project propose is aim to develop an automated, simple and light-weight cleaning robot that practical to a modern house using a cost-effective microcontroller of Arduino as the brain of the robot. A project using Arduino gain huge interest not only for researchers, but also for university and school project due to flexibility, cheap and free Arduino software that available on their website [14]. Besides, we also propose a magnetic to attach the robot on the surface window with ultrasonic sensors to remotely control the robot movement and direction. To attach the robot vertically on the surface of window panel, a neodymium magnet is also known as NdFeB, NIB or Neo magnet are used. This rareearth magnet is a permanent magnet made from an alloy of neodymium, iron and that widely used for motors in cordless tools, hard disk drives and magnetic fasteners [15][16].

Project Methodology
This project is divided by two sections; software and hardware. The two software used are Proteus Professional 8.5 and Arduino software. Proteus software is used to draw the full circuit of hardware and check the connectivity for simulation process. Then, printed circuit board (PCB) layout will be designed using the same software and followed by printing into a real PCB for hardware section. Meanwhile Arduino software is used to write a program the Arduino Mega 2560. This program is describes how the robot will be exucuted based on command given, also acts as a brain of microcontroller. After both of simulation are succeed, the project is continued to the hardware section.  Figure 2 shows a block diagram of the window cleaning robot project for hardware. There are three parts which are divided by input, microcontroller and outputs. The input for this project is ultrasonic sensor (HC-SR04) which is connected with the microcontroller. This ultrasonic sensor is used to detect an obstacle and avoid collision using ultrasonic sound wave that vibrates at a frequency above the range of human hearing. The microcontroller used is Arduino Mega 2560 as the brain of this robot. Finally, the microcontroller is interfaced to the outputs which is light emitting diode (LED), buzzer and motor driver shield L293D that are integrated to direct current (DC) and servo motor.   Figure 3 illustrates the simulation result from Proteus software to check and make sure the connectivity is good before implement to the hardware part. The main component for this connection is ultrasonic sensor, LED, DC motor and servo motor. This system shows an input from ultrasonic sensor whereas the outputs are LED, DC motor and servo motor. The RS, E, D4, D5, D6 and D7 pins of LCD are connected to the pin at IO7, IO6, IO5, IO4, IO3 and IO2 of Arduino. The VEE of LCD are connected to variable resistor to control the brightness of LCD. While the ECHO and TRIG pins of ultrasonic sensor are connected to pins IO8 and IO9 of Arduino. After the connectivity is good without error, then PCB layout is designed and implemented to the hardware. Before hardware, one critical software must be done by Arduino software which is to initiate a pin connection code for motor driver, buzzer and ultrasonic sensor. At first, the Arduino will read the switch. When the switch is identified as on, the LED will light up and the DC motor starts running forward servo motor in 0 degree condition. When sensor detect an obstacle, this sensor will send an ultrasonic signal to Arduino. Then, Arduino will read this ultrasonic sensor notifications, and Trig pin is set high at 10 us. The signal will come back to Echo pin and its travel duration is kept in the duration variable. By applying the declaration as stated on Figure 4 (a), the distance of donated items can be calculated and stored in the variable named distance. In this project, the important part is ultrasonic sensor move program because it is acted as a remote control for the robot. Thus, there are 3 sensors have been fixed and named as FrontSensor, BackSensor and LeftSensor as shown in Figure 4 (b). The sensors are fixed to the minimum distance about 3 cm where if the minimum distance was detected, DC motor and servo motors direction will be changed.  Figure 5 and 6 show the expected result from above and in front of robot without magnetic and cloth to clean a window. The robot is separated into two main sections which is the window cleaning robot itself and the neodymium magnetic part. All these two part was important to make sure the robot runs completely. Figure 7 on the right side of picture shows the magnetic section, only neodymium magnets have been used without any electronic component. Meanwhile the other section is cleaning cloth as shown in Figure 7 on the left side. To activate this robot, a switch should be turned on after connection of power source from battery. Then, a LED will turn on as indicator that all important component of motor fan, DC motor and ultrasonic sensors are activated. Meanwhile, the servo motor will turn 90 degrees. If the front sensors detect a minimum distance below 3 cm, the servo motor will turn to 45 degrees, rotate to backward and change the direction of the robot. This function to avoid a wall or obstacles ahead. Next, if the back sensors detect below 3 cm, the servo motor will turn to 90 degrees back, and the DC motor will rotate forward. Thus, the robot will move up and down on the window until it come to the end of the window's border. The side sensor will detect 3 cm and below and the DC motor and fan motor will stop while the buzzer will beep as a sign that the robot have finish the cleaning process.

Conclusion
As a conclusion, a window cleaner robot is successfully designed for both of software and hardware sections. The Proteus 8.5 Professional is used for schematic, connectivity until the design of PCB part of hardware. Meanwhile Arduino software is used to program and instruct the robot that using Arduino Mega as their main controller. Other important components are ultrasonic sensors to control the movement of robot, to change direction when a wall or obstacles are met. However, this robot has a problem due to neodymium magnetic to attach the robot on the surface of window panel. This is because the neodymium magnetic is not strong enough to carry 7 kg prototype window cleaner robot. Besides, the battery power of 9V also insufficient to move the robot vertically as desired.
Thus, to improve this robot, a high DC motor should be used like 24V and above to power up the movement of robot vertically. The used of suction cup might be suitable compare to magnetic to move the small and light-weight robot smoothly. Moreover, window cleaner robot is also can be significantly improve using mobile application as user can control the robot via a smartphone for cleaning process. Further development for light-weight window robot that has capability to clean window panel vertically is still need to explore as almost all modern houses are using window glass curtain wall.