Microcontroller Based Robotic Garbage Collector

INTRODUCTION:

The world is changing, getting advanced, everyday a new technology is introduced and then we celebrate them by applying into our real lives. Robots are the live example in this growing technology. Here I am going to explain an example of robotic behavior which contributes in cleaning garbage. Although it seems a very common application but undoubtly very useful and a little bit difficult to apply. When we talk about such kinds of applications we are talking about mobile robots. As we all know that for motion, robots must have a mobile base so that they can easily move in surroundings. It can be in form of wheels or legs as well. For moving any object all we need is algorithm which is required to direct the object. Here we will be using tricycle vehicle, it has three wheels one in front and the rest two is in back. Now the main task of our tricycle vehicle is to collect garbage which involves picking waste materials and put them into container attached to them.

tricycle-1.gif

As the name suggests, it has three wheels, the front wheel is known as the steering driven wheel and the two  back-wheels  are known as passive wheels. 

How it works?

As it is designed to work automatically which involves automatic motion of wheels and an additional part to collect the garbage, so we will use algorithm which can make the task possible. Now the movement of this vehicle is done by using the above algorithm now the next and the primary task is to collect the waste into the container, our idea is that the robotic machine will move in an open space and when it finds any waste will stop and collect that waste. Now the next part to think is how it will come to know about the garbage spilled in front of it. Humans do it by one of his sense organs so we should also provide our smart human being a kind of sense organ. Here we use a sensor. The main component of sensor node are a microcontroller, transceiver, external-memory, power source and one or more sensor. Sensors are of many types, here we will use passive Omni-directional sensor. Now what our concept is that when this robotic machine will move in an open area it will stop when its smart sense organ i.e. sensor will sense any garbage or waste. The third feature of this smart device is vacuum-cleaner, to collect the garbage into a container. The other end of vacuum-cleaner will be attached to the container so that waste sucked by cleaner will dump into that container directly. After collecting the the whole garbage the vehicle will move further. The main components of the sensor panel are controller, sensors, transceivers,power supply external memory and ADC, microcontroller is commonly used as a controller although we have other choices as well to use as controllers but they are comparatively less economical and consume high power and less economical.

tri.cccccomp..gif

As a transceiver we can use optical, radio frequency or infrared mode. Infrared requires no antenna but its capacity is not as much effective as optical or radio transmission is. Transceiver is a combination of transmitter and receiver. Transmit and receive are the two important operational states which decide further working of garbage collector. Rest is the ideal and sleep states. The transceivers which we use nowadays are very advanced as they have in-built state machine which enables it to do work automatically. try to avoid the ideal mode as it consumes equivalent power as consumed by in transmit mode. The most relevant types of memories are on-chip and flash memories, flash memories are preferable as they are economical and have storage capacity. Power source is also required because sensor consumes power to sense, communicate and process data. Generally, batteries and capacitors are used .batteries can be both rechargeable and non-rechargeable.

sensor-panel.gif

Algorithm:

public int[] currentcoords;

public  void movement ()
{                                                                

     currentcoords[0]=1000;// starting y coord
     currentcoords[1]=1002;//starting x coord
     moveTo(1060,1055);
}
public void  moveTo(int x, int y) 
{
     //...how?
}
Public  void  threadupdatingcoordinates()
{

    //...periodically check for source coord updates

    //...between 100 ms and 500 ms apart.

}