Joy stick Contrlloed Window Washer

A SOLUTION TO WASH SKYSCRAPER BUILDINGS' WINDOWS



I started with the following concept:


Two stepper motors are used one to move the brush in horizontal and other to move in vertical direction. Horizontal and vertical motion rods are connected with stepper motors with the help of strings. The signals are given to the stepper motors with the help of joystick.
When the brush reaches at the desired position the user can press button to rotate the brush roller.

ELECTRONIC CIRCUITRY:



The circuit is very simple. Micro-controller senses the input from the joystick. 5 buttons in the circuit are representing joystick. Micro-controller input pins are externally pull down to take input. Inside the software each input is linked with the case to rotate the motor. The output signal level on microcontroller is insufficient to intialize stepper motors. so these signals are given to ULN2803.
The IC ULN-2803 is an IC to boost current. It is mostly used for current amplification in motors. Since we are using a PIC, and the 5V are achieved at the output, it cannot drive a motor. Therefore a ULN-2803 will be used so that the motor can driven. One thing should be noted that the output of this IC is negative i.e. if 5V are given at the output, after amplification the output will -9V.
It has built in fast recovery diode to save motor from reverse current.



The signal of ULN-2803 is directly given to stepper motors. A stepper motor (or step motor) is a brushless, synchronous electric motor that can divide a full rotation into a large number of steps. The motor's position can be controlled precisely, without any feedback mechanism. One of the most significant advantages of a stepper motor is its ability to be accurately controlled in an open loop system. Open loop control means no feedback information about position is needed. This type of control eliminates the need for expensive sensing and feedback devices such as optical encoders. Your position is known simply by keeping track of the input step pulses.



I used a 4-phase stepper motor. As you can see in the above picture if we give signal to each coil turn by turn the rotor will try to catch the static coils rotating magnetic field. So for this i made an array to give signals to each coil one by one and similarly to rotate in the opposite direction, array is used in the opposite direction.

MICRO-CONTROLLER CODE:
#include <16f877.h>
#fuses NOWDT,NOLVP,NODEBUG,HS
#use delay(clock=20000000)

int p[8]={1,3,2,6,4,12,8,9}; // motor1
int r[8]={16,48,32,96,64,192,128,144}; // motor2
int g;

void main (void)
{

while(1)
{
output_b(17); // motors initialization

int h,a,c;
c=50;
h=input_d(); // joystick input
switch(h)
{
case 1:
for(a=0;a<=7;a++)
{
output_b(p[a]);
delay_ms(c);
}
break;
case 2:
for(a=8;a>=1;a--)
{
output_b(p[a]);
delay_ms(c);
}
break;
case 4:
for(a=0;a<=7;a++)
{
output_b(r[a]);
delay_ms(c);
}
break;
case 8:
for(a=8;a>=1;a--)
{
output_b(r[a]);
delay_ms(c);
}
break;

case 16:
{
output_high(pin_co);
delay_ms(20);
}
break;
}
}

FURTHER ENHANCEMENTS:
We can make it a wireless system....
we can attach a timer circuit so that it can automatically wash the windows after a desired period.

Comments

Post a Comment