Engineers Garage

  • Projects and Tutorials
    • Electronic Projects
      • 8051
      • Arduino
      • ARM
      • AVR
      • PIC
      • Raspberry pi
      • STM32
    • Tutorials
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Products News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • EE Resources
    • DesignFast
    • LEAP Awards
    • Oscilloscope Product Finder
    • White Papers
    • Webinars
  • EE Learning Center
    • Design Guides
      • WiFi & the IOT Design Guide
      • Microcontrollers Design Guide
      • State of the Art Inductors Design Guide
  • Women in Engineering

Obstacle avoidance & navigation of path tracing manipulator for Industrial Robots

By Praveen Kumar, Chennai, India

[[wysiwyg_imageupload:1996:]]Mr. Praveen Kumar from Chennai contributed this project report.

 

 


 

CHAPTER 1
INTRODUCTION
1.1 GENERAL                                                                                   

 

A robot is an automatically guided machine, able to do task on its own. Another common characteristic is that by its appearance or movements, a robot often conveys a sense that it has intent or agency of its own.

1.1.1 DEFINITION

The word robot can refer to both physical robots and virtual software agents, but the latter are usually referred to as bots. There is no consensus on which machines qualify as robots, but there is general agreement among experts and the public that robots tend to do some or all of the following: move around, operate a mechanical limb, sense and manipulate their environment, and exhibit intelligent behavior, especially behavior which mimics humans or other animals.

 

1.1.2 DEFINING CHARACTERISTICS
While there is no single correct definition of “robot”, a typical robot will have several, or possibly all, of the following characteristics.   
It is an electric machine which has some ability to interact with physical objects and to be given electronic programming to do a specific task or to do a whole range of tasks or actions. It may also have some ability to perceive and absorb data on physical objects, or on its local physical environment, or to process data, or to respond to various stimuli. This is an contrast to a simple mechanical device such as a gear or a hydraulic press or any other item which has no processing ability and which does tasks through purely mechanical processes and motion.

 

1.1.3 TYPES OF ROBOTS
At the end of 2008, there were over 1 million industrial robots and an estimated 7 million service robots in use. Industrial robot, as defined by ISO 8373, is “an automatically controlled, reprogrammable, multipurpose manipulator programmable in three or more axes, which may be either fixed in place or mobile for use in industrial automation applications”. Most commonly, industrial robots are fixed robotic arms and manipulators used primarily for production and distribution of goods. The term “service robot” is less well defined.IFR has proposed a tentative definition, “A service robot is a robot which operates semi or fully autonomously to perform services useful to the well-being of humans and equipment, excluding manufacturing operations.”

 

1.2 HISTORY
1.2.1 HISTORY OF ROBOTS
Many ancient mythologies include artificial people such as the mechanical servants built by the Greek God Hephaestus (Vulcan to the Romans), the clay golems of the Jewish legend and clay giants of Norse legend and Galatea, the mythical statue that came to life. In Greek drama, Deus Ex Machina was contrived as a dramatic device that usually involved lowering a deity by wires into the play to solve a seemingly impossible problem.
In the 4th century BC, the Greek mathematician Archytas of Tarentum postulated a mechanical steam-operated bird he called “The Pigeon”. Hero of Alexandria ( 10-70) created numerous user friendly automated devices ,and described machines by air pressure ,steam and water. Su Song built a clock tower in China in 1088 featuring mechanical figurines that chimed the hours.
Al-Jazari (1136-1206), a Muslim inventor during the Artuqid dynasty, designed and constructed a number of automated machines, including kitchen appliances, musical automata powered by water, and the first programmable humanoid robots in 1206. The robots appeared as four musician on a boat in a lake, entertaining guests at royal drinking parties. His mechanism had a programmable drum machine with pegs (cams) that bumped into little levers that operated percussion instruments. The drummer could be made to play different rhythms and different drum patterns by moving the pegs to different locations.
1.2.2 EARLY MODERN DEVELOPMENTS
Leonardo da Vinci (1452-1519), sketched plans for a humanoid robot around 1495. Da Vinci’s notebooks, rediscovered in the 1950s, contain detailed drawings of a mechanical knight now known as Leonardo’s robot, able to sit up, wave its arm and move its head and jaw. The design was probably based on anatomical research recorded in his viridian man. It is not known whether he attempted to build it. In 1738 and 1739, Jacques de vaucanson exhibited several life sized automatons: a flute player, a pipe player and duck. The mechanical duck could flap its wings, crane its neck, and swallow food from the exhibitor’s hand, and it gave the illusion of digesting its food by excreting matter stored in a compartment. Complex mechanical toys and animals built in Japan in the 1700s were described in the karakuri zui (illustrated machinery, 1796).

 

1.2.3 MODERN DEVELOPMENTS
The Japanese craftsman Hisashige Tanaka (1799-1881), known as “Japan’s Edison” or “Karakuri Giemon”, created an array of extremely complex mechanical toys, some of which served tea, fired arrows drawn from a quiver, and even painted a Japanese kanji character. In 1898 Nikola Tesla publicly demonstrated a radio controlled torpedo. Based on patents for “teleautomation”, Tesla hoped to develop it into a weapon for the US navy.
 
In 1926, Westinghouse electric corporation created Televox, the first robot put to useful to work. They followed Televox with a number of simple robots, including one called Rastus, made in the crude image of a black man. In the 1930s, they created a humanoid robot known as Elektro for exhibition purposes, including the 1939 and 1940 world’s fairs. In 1928,Japan’s first robot, Gakutensoku, was designed and constructed by biologist Makoto Nishimura.
 
The first electronic autonomous robots were created by William Grey Walter of the Burden Neurological Institute at Bristol, England in 1948 and 1949. They were named Elmer and Elsie. These robots could sense light and contact with external objects, and use these stimuli to navigate.
  
The first truly modern robot, digitally operated and programmable, was invented by George Devol in 1954 and was ultimately called the unimate. Devol sold the first unimate to general motors in 1960, and it was installed in1961 in a plant in Trenton, New Jersey to lift hot pieces of metal from a die casting machine and stack them.

 

1.3 PROPOSED SYSTEM
The proposed thesis is an memory based guided vehicle wherein the system behaves as if it knows what sort of work to be done by itself when once programmed. The programming can be done by means of a keyboard or interfacing the MBGV with a system or by means of a remote. The proposed system consists of remote controlled programming technique. The MBGV once programmed runs to and fro in an industrial complex and does the proposed job. A simple demo MBGV has been done wherein the demo can implement as such for any real time industrial technique.
 
The goal is to make robots more adaptive and flexible in unstructured or frequently changing environments, and to enable robots to execute intelligent tasks. Thus the robot productivity as well as applicability can be improved. The object of this study is to develop a sensor controlled robotic tracking and automatic pick and place system. The system is designed for recognizing and tracking an path which is selected from multiple paths and to move to the destination terrain with the object that has been picked . The robot tracks the parts and transfers them to the proper pallets.

 

1.4 ORGANISATION OF THE PROJECT
CHAPTER1 provides a general introduction to the field of robotics with an overview of history of robotics. It also describes the proposal system and work done in the process of designing the system.
CHAPTER2 explains the block diagram representation of the proposal system. It provides detailed explanation on various modules in the block diagram.
CHAPTER3 lists out the hardware requirements of the project along with the important features of each hardware and provides introduction to software’s used. It explains the steps in working with the software’s.
CHAPTER4 Results and Output of Poject.
CHAPTER5 Concludes the result and future scope and developments possible in the proposed system.

 

1.5 SUMMARY

1.      A robot is an automatically guided machine, able to do tasks on its own.

2.     Major classification of robot is industrial robot and service robot. 

3.      History of robots dates back to 1st century AD
4.      Work done include plan of the project, base design, various circuit  implementation, design of rotating arms, PCB layouts. 

 

CHAPTER 2 

BLOCK DIAGRAM OF THE PROJECT

BLOCK DIAGRAM
The block diagram of   the project is given below.The various modules are explained later in this chapter. OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT1
FIGURE 2.1 BLOCK DIAGRAM OF PROJECT
2.1 MICROCONTROLLER.
Read out the following articles for detailed study of microcontrollers:
Microcontroller
8051 Microcontroller
AT89C51 Microcontroller
2.2 KEYPAD UNIT:
Silicone Rubber keypads are used extensively in both consumer and industrial electronic products as a low cost and reliable switching solution.
The technology uses the compression molding properties of silicone rubber to create angled webbing around a switch center. On depression of the switch the webbing uniformly deforms to produce a tactile response. When pressure is removed from the switch the webbing returns to its neutral position with positive feedback.
In order to make an electronic switch a carbon or gold pill is placed on the base of the switch center which contacts onto a PCB when the web has been deformed.       OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT2
        FIGURE 2.5 BASIC SILICONE KEYPAD SWITCH DESIGN
It is possible to vary the tactile response and travel of a key by changing the webbing design and/or the shore hardness of the silicone base material. Unusual key shapes can easily be accommodated as can key travel up to 3mm. Tactile forces can be as high as 500g depending on key size and shape.
 
By adding pigments to the natural silicone rubber it is possible to create keys in various colors which can be molded together (Flowing colors) during the compression process to form a multi key keypad. Individual legends can be printed on to a key allowing full customization of the keypad for its application. Techniques have also been developed to allow for keypads to be spray painted and legends then laser etched through the paint coating.
 
This allows individual key to be illuminated using SMT LEDs placed on the printed circuit board. Also several coating materials such as Sealplast coating can be done to ensure a smooth surface where the printed legend last longer with good feeling of touch.
 

 

2.3 MEMORY UNIT :

2.3.1 PROGRAMMING THE FLASH:

The AT89C51 is normally shipped with the on-chip Flash memory array in the erased state (that is, contents = FFH) and ready to be programmed. The programming interface accepts either a high-voltage (12volt) or a lowvoltage (VCC) program enable signal. The low voltage programming mode provides a convenient way to program the AT89C51 inside the user’s system, while the high-voltage programming mode is compatible with conventional third party Flash or EPROM programmers. The AT89C51 is shipped with either the high-voltage or low-voltage programming mode enabled.

 
The AT89C51 code memory array is programmed byte by byte in either programming mode. To program any non-blank byte in the on-chip Flash Memory, the entire memory must be erased using the Chip Erase Mode.

 

2.3.2 PROGRAMMING ALGORITHM:

Before programming the AT89C51, the address, data and control signals should be set up according to the Flash 
 To program the AT89C51, following steps are followed,
  1. Input the desired memory location on the address lines.
  2. Input the appropriate data byte on the data lines.
  3. Activate the correct combination of control signals.
  4. Raise EA/VPP to 12 V for the high-voltage programming mode.
  5. Pulse ALE/PROG once to program a byte in the Flash array or the lock    bits. The byte-write cycle is self-timed and typically takes no more than 1.5 ms. Repeat steps 1 through 5, changing the address and data for the entire array or until the end of the object file is reached. Data Polling: The AT89C51 features Data Polling to indicate the end of a write cycle. During a write cycle, an attempted read of the last byte written will result in the complement of the written datum on PO.7. Once the write cycle has been completed, true data are valid on all outputs, and the next cycle may begin. Data Polling may begin any time after a write cycle has been initiated.

 

2.3.2.1 READ/BUSY:
The progress of byte programming can also be monitored by the RDY/BSY output signal. P3.4 is  pulled low after ALE goes high during programming to indicate BUSY. P3.4 is pulled high again when programming is done to indicate READY.

 

 

2.3.2.2 PROGRAM VERIFY:
If lock bits LB1 and LB2 have not been programmed, the programmed code data can be read back via the address and data lines for verification. The lock bits cannot be verified directly. Verification of the lock bits is achieved by observing that their features are enabled.

 

2.3.2.3 CHIP ERASE:
The entire Flash array is erased electrically by using the proper combination of control signals and by holding ALE/PROG low for 10 ms. The code array is written with all “1″s. The chip erase operation must be executed before the code memory can be re-programmed.
 

 

2.3.3 MEMORY ORGANIZATION:
AT24C16, 16K SERIAL EEPROM: Internally organized with 128 pages of 16 byte search, the 16K requires an 11-bit data word address for random word addressing                                               OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT3
                                             FIGURE 2.6 AT24C16
2.3.3.1 PIN DESCRIPTION:
SERIAL CLOCK (SCL): The SCL input is used to positive edge clock data into each EEPROM device and negative edge clock data out of each device.
SERIAL DATA (SDA): The SDA pin is bi-directional for serial data transfer. This pin is open-drain driven and may be wire-O Red with any number of other open-drain or open collector devices.
DEVICE/PAGE ADDRESSES (A2, A1, and A0): The A2, A1 and A0 pins are device address inputs that are hard wired for the AT24C01A and the AT24C02. As many as eight 1K/2K devices may be addressed on a single bus system. The AT24C16 does not use the device address pins, which limits the number of devices on a single bus to one. The A0, A1 and A2 pins are no connects.
WRITE PROTECT (WP): The AT24C16 has a Write Protect pin that provides hardware data protection. The Write Protect pin allows normal read/write operations when connected to ground (GND). When the Write Protect pin is connected to VCC, the write protection feature is enabled.
DEVICE OPERATION CLOCK AND DATA TRANSITIONS: The SDA pin is normally pulled high with an external device. Data on the SDA pin may change only during SCL low time periods. Data changes during SCL high periods will indicate a start or stop condition as defined below.
START CONDITION: A high-to-low transition of SDA with SCL high is a start condition which must precede any other command.
STOP CONDITION: A low-to-high transition of SDA with SCL high is a stop condition. After a read sequence, the stop command will place the EEPROM in a standby power mode.
ACKNOWLEDGE: All addresses and data words are serially transmitted to and from the EEPROM in 8-bit words. The EEPROM sends a zero to acknowledge that it has received each word. This happens during the ninth clock cycle.
STANDBY MODE: The AT24C16 features a low-power standby mode which is enabled: (a) upon power-up and (b) after the receipt of the STOP bit and the completion of any internal operations.
MEMORY RESET: After an interruption in protocol, power loss or system reset, any 2- wire part can be reset by following these steps:
  1. Clock up to 9 cycles.
  2. Look for SDA high in each cycle while SCL is high
  3. Create a start condition.
2.4 PROGRAM RECEIVING SENSOR:
2.4.1 SENSORS:
Sensors allow the robot to receive feedback about its environment. They can give the robot a limited sense of sight and sound. The sensor collects information and sends it electronically to the robot controller. One use of these sensors are to keep two robots that work closely together from bumping into each other. Sensors can also assist end effectors by adjusting for part variances. Vision sensors allow a pick and place robot to differentiate between items to choose and items to ignore.
 
 2.4.2 TSOP1738:
TSOP1738 Series Photo modules are miniature IR sensor modules with PIN photodiode and a preamplifier stage enclosed in an epoxy case. Its output is active low and gives +5 V when off. The demodulated output can be directly decoded by a microprocessor. The important features of the module includes internal filter for PCM frequency, TTL and CMOS compatibility, low power consumption (5 volt and 5 mA), immunity against ambient light, noise protection etc. The added features are continuous data transmission up to 2400 bps and suitable burst length of 10 cycles per burst.            OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT4
                      FIGURE 2.7 TSOP1738
The photo module has a circuitry inside for amplifying the coded pulses from the IR transmitter. The front end of the circuit has a PIN photodiode and the input signal is passed into an Automatic Gain Control(AGC) stage from which the signal passes into a Band pass filter and finally into a demodulator. The demodulated output drives an NPN transistor. The collector of this transistor forms the output at pin3 of the module. Output remains high giving + 5 V in the standby state and sinks current when the PIN photodiode receives the modulated IR signals.

 

 

CHAPTER 3

HARDWARE REQUIREMENTS AND SOFTWARE REQUIREMENTS

HARDWARE REQUIREMENTS
3.1 POWER SUPPLY
As the major electronic device run in the DC, the construction of a power supply is necessary. A 12V and a 5V power supply are designed as shown in the diagram.
The circuit shown below uses step-down transformer for steeping down the 220V AC to 12V AC. A bridge rectifier is used to rectify the 12V AC into 12V DC. OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT5  FIGURE 3.1CIRCUIT FOR 5V POWER SUPPLY
The 470µf capacitor serves as a “reservoir” which maintains a reasonable input voltage to the 7805 throughout the entire cycle of the ac line voltage. The two rectifier diodes keep recharging the reservoir capacitor on alternate half-cycles of the line voltage, and the capacitor is quite capable of sustaining any reasonable load in between charging pulses.
The 0.1µf capacitors serve to help keep the power supply output voltage constant when load conditions change. The electrolytic capacitor smoothes out any long-term or low frequency variations.
3.1.1 Constructing the +5 Volt Supply
The +5 volt supply is useful for both analog and digital circuits. DTL, TTL, and CMOS ICs will all operate nicely from a +5 volt supply. In addition, the +5 volt supply is useful for circuits that use both analog and digital signals in various ways. More importantly for our purposes, the +5 volt supply will be used as the primary reference for regulating all of the other power supplies the we will build. We can do this very easily if we use operational amplifiers as the controlling elements in the power supply circuits. We’ll see how this works after completing the basic +5 volt supply.
 
The +5 volt power supply will go on the left end of your breadboard socket. There should not be any components mounted here when you begin; the analog experiments will be mounted on a separate breadboard socket from the digital experiments, until you have constructed or obtained a comprehensive bread boarding system. As you install each part, an arrow will point to it on the assembly diagram below, and, where necessary, a pictorial will appear to show you how to form the component lead. To help avoid confusion between the colors grey and silver, all component leads will be shown in gold color, even though most of them will actually be silver colored. This merely means that the component leads are solder-coated rather than gold plated; either will work equally well here.

 

3.1.2 Starting the Assembly
Make sure that the left end of your breadboard socket is clear of all components, jumpers, etc. You will build the +5 volt power supply in this space.

 

3.1.3 Testing the +5 Volt Supply
Set your voltmeter to measure voltages up to 20 volts, and connect the black (Common or Ground) lead to the negative lead of the 1000µf capacitor. Connect the red lead to the upper end of the 0.3″ red jumper wire. Turn on your voltmeter, and then turn on power to your transformer and power supply circuit. You should measure a steady +5 volts (+4.75 to +5.25) here, at the power supply output, and the red pilot LED should turn on. If you get these results, move your red voltmeter lead to the positive lead of the 1000µf reservoir capacitor. You should see about +17 volts here, possibly higher.
If you get the correct results, turn off your power supply and voltmeter, and skip down to the Discussion below. If your results are different, quickly note the results you did obtain; then turn power off and look through the following troubleshooting chart.

 

3.2 RELAY             OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT6

 

 

 

                              FIGURE 3.2 RELAY DRIVER
Relays are components which allow a low-power circuit to switch a relatively high current on and off, or to control signals that must be electrically isolated from the controlling circuit itself. Newcomers to electronics sometimes want to use a relay for this type of application, but are unsure about the details of doing so. Here is a quick rundown. To make a relay operate, you have to pass a suitable .pull-in. and .holding. current (DC) through its energizing coil. And generally relay coils are designed to operate from a particular supply voltage . often 12V or 5V, in the case of many of the small relays used for electronics work. In each case the coil has a resistance which will draw the right pull-in and holding currents when it is connected to that supply voltage. So the basic idea is to choose a relay with a coil designed to operate from the supply voltage you.re using for your control circuit (and with contacts capable of switching the currents you want to control), and then provide a suitable .relay driver. circuit so that your low-power circuitry can control the current through the relay is coil. Typically this will be somewhere between 25mA and 70mA.
 OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT7
FIGURE 3.3: CIRCUIT DIAGRAM OF A RELAY DRIVER
Often your relay driver can be very simple, using little more than an NPN or PNP transistor to control the coil current. All your low-power circuitry has to do is provide enough base current to turn the transistor on and off, as you can see from diagrams A and Bin A, NPN transistor Q1 (say a BC337 or BC338) is being used to control a relay (RLY1) with a 12V coil, operating from a +12V supply. Series base resistor R1 is used to set the base current for Q1, so that the transistor is driven into saturation (fully turned on) when the relay is to be energized. That way, the transistor will have minimal voltage drop, and hence dissipate very little power . As well as delivering most of the 12V to the relay coil. 
How do you work out the value of R1? It is not hard. Let say RLY1 needs 50mA of coil current to pull in and hold reliably, and has a resistance of 240W so it draws this current from 12V. Our BC337/338 transistor will need enough base current to make sure it remains saturated at this collector current level.
 
To work this out, we simply make sure that the base current is greater than this collector current divided by the transistors minimum DC current gain hfe. So as the BC337/338 has a minimum hfe of 100 (at 100mA), we need to provide it with at least 50mA/100 = 0.5mA of base current.
 
In practice, you give it roughly double this value, say 1mA of base current, just to make sure it does saturate. So if your control signal Vin was switching between 0V and +12V, you give R1 a value of say 11kW, to provide the 1mA of base current needed to turn on both Q1 and the relay.
 
If our relay has a coil resistance of say 180W, so that it draws say 67mA at 12V, we would need to reduce R1 to say 8.2kW, to increase the base current to about 1.4mA. Conversely if the relay coil is 360W and draws only 33mA, we could increase R1 to 15kW, giving about 0.76mA of base current. Each time we go for about twice the relay coil current divided by Q1’s hfe.
 
As you can see a power diode D1 (1N4001 or similar) is connected across the relay coil, to protect the transistor from damage due to the back-EMF pulse generated in the relay coil is inductance when Q1 turns off.
The basic NPN circuit in diagram A is fine if you want the relay to energize when your control voltage Vin is high (+12V), and be off when Vin is low (0V). But what if you want the opposite? That is where you would opt for a circuit like that shown in diagram B, using a PNP transistor like the BC327 or BC328. This is essentially the same circuit as in A, just swung around to suit the PNP transistors polarity. This time transistor Q2 will turn on and energize the relay when Vin is low (0V), and will turn off when Vin is high (+12V).
 
Otherwise everything works just as before, and the value of base resistor R2 is worked out in the same way as for R1. In fact because the minimum hFE of the BC327/328 PNP transistors is also 100 at 100mA, you could use exactly the same values of R2 to suit each relay resistance/current. The simple transistor driver circuits of A and B are very low in cost, and are generally fine for driving most relays. However there may be occasions, such as when your control circuit is based on CMOS logic, where the base current needed by these circuits is a bit too high. For these situations the circuit shown in C might be of interest, because it needs rather less input current. As you can see it uses a readily available and very low cost 555 IC as the relay driver, plus only one extra component: bypass capacitor C1.
 
Although we normally think of the 555 as a timer/oscillator, it is actually very well suited for driving a small relay. Output pin 3 can both source and sink 200mA (enough to handle most small relays comfortably), and the internal flip-flop which controls its output stage is triggered swiftly between its two states by internal comparators connected to the two sensing inputs on pins 2 and 6. When these pins are taken to a voltage above 2/3 the supply voltage, the output switches low (0V); then they are taken below 1/3 the supply voltage, the output swings high. And the 555 can happily work at 5V, as you can see, so it is very suitable for driving a 5V relay coil from this supply voltage. Because the sensing inputs of the 555 are voltage sensing and need only a micro amp or so of current, the value of input

 

 

3.3 ULN 2003:OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT7

 

                                  FIGURE 3.4 AN ULN2003 IC
Uln 2003 is a low cost relay driver IC used for controlling relays from microcontroller unit. The standard package of  Uln 2003 can drive 7 relay outputs.
Ideally suited for interfacing between low-level logic circuitry and multiple peripheral power loads, the Series ULN20xxA/L high-voltage, high-current Darlington arrays feature continuous load current ratings to 500 mA for each of the seven drivers. At an appropriate duty cycle depending on ambient temperature and number of drivers turned ON simultaneously, typical power loads totaling over 230 W (350 mA x 7,95 V) can be controlled. Typical loads include relays, solenoids, stepping motors, magnetic print hammers, multiplexed LED and incandescent displays, and heaters. All devices feature open-collector outputs with integral clamp diodes. The ULN2003A/L and ULN2023A/L have series input resistors selected for operation directly with 5 V TTL or CMOS. These devices will handle numerous interface needs— particularly those beyond the capabilities of standard logic buffers. The ULN2004A/L and ULN2024A/L have series input resistors for operation directly from 6 to 15 V CMOS or PMOS logic outputs. The ULN2003A/L and ULN2004A/L are the standard Darlington arrays. The outputs are capable of sinking 500 mA and will withstand at least 50 V in the OFF state. Outputs may be paralleled for higher load current capability. The ULN2023A/L and ULN2024A/L will withstand 95 V in the OFF state.
 
These Darlington arrays are furnished in 16-pin dual in-line plastic packages (suffix “A”) and 16-lead surface-mountable SOICs (suffix “L”). All devices are pinned with outputs opposite inputs to facilitate ease of circuit board layout.All devices are rated for operation over the temperature range of -20 oC to +85 oC. Most (see matrix, next page) are also available for operation to -40 oC; to order, change the prefix from “ULN” to “ULQ”.
 OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT9
FIGURE 3.5 INTERNAL STRUCTURE OF AN ULN2003
 

 

3.3.1 FEATURES
  1. TTL, DTL, PMOS, or CMOS-Compatible Inputs
  2. Output Current to 500 mA
  3. Output Voltage to 95 V
  4. Transient-Protected Outputs
  5. Dual In-Line Plastic Package or Small-Outline IC Package
 

 

 

3.4 OBSTACLE SENSING:

It is important to know whether the robot moves in a obstacle free path. In case a robot is given to encounter an obstacle free path it needs to stop immediately and move at a different angle. In order to detect an obstacle an IR based system is used.
The IR based system transmits a high frequency IR pulse. As sunlight, hot objects and other elements are a source of IR a fair chance of false Detection exists.
The reason for using a pulsed IR instead of continuous IR is to avoid false detection from the surrounding. The receiver detects the reflected IR rays from the obstacle. The output voltage generated at receiver is proportional to intensity of IR radiation. More the intensity, nearer the obstacle.  As output voltage generated from the reverse biased IR receiver is not sufficient a OP-AMP is used to scale the voltage to higher range.

 

3.4.1 IR DETECTION SETUP: OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT10

 

                    FIGURE 3.6 OBSTACLE DETECTION SETUP

 

3.5              DC MOTOR
A direct current (DC) motor is a fairly simple electric motor that uses electricity and a magnetic field to produce torque, which turns the motor. At its most simple, a DC motor requires two magnets of opposite polarity and an electric coil, which acts as an electromagnet. The repellent and attractive electromagnetic forces of the magnets provide the torque that causes the DC motor to turn.
The magnets are polarized, with a positive and a negative side. The attraction between opposite poles and the repulsion of similar poles can easily be felt, even with relatively weak magnets. A DC motor uses these properties to convert electricity into motion. As the magnets within the DC motor attract and repel one another, the motor turns.
 
Electrical current is supplied to the coils of wire on the wheel within the DC motor. This electrical current causes a magnetic force. To make the DC motor turn, the wheel must have be negatively charged on the side with the negative permanent magnet and positively charged on the side with the permanent positive magnet. Because like charges repel and opposite charges attract, the wheel will turn so that its negative side rolls around to the right, where the positive permanent magnet is, and the wheel’s positive side will roll to the left, where the negative permanent magnet is. The magnetic force causes the wheel to turn, and this motion can be used to do work.
 
When the sides of the wheel reach the place of strongest attraction, the electric current is switched, making the wheel change polarity. The side that was positive becomes negative, and the side that was negative becomes positive. The magnetic forces are out of alignment again, and the wheel keeps rotating. As the DC motor spins, it continually changes the flow of electricity to the inner wheel, so the magnetic forces continue to cause the wheel to rotate.
 
DC motors are used for a variety of purposes, including electric razors, electric car windows, and remote control cars. The simple design and reliability of a DC motor makes it a good choice for many different uses, as well as a fascinating way to study the effects of magnetic fields.

 

Also check DC Motor Insight

 

 

3.5.1 FEATURES
            1. 100 rpm 12 v DC motors with gearbox.
            2. 3000 rpm base motor
            3. 6mm shaft diameter with internal hole
            4. 125gm weight
            5. Same size motor available in various rpm
            6. 1.2 kgcm torque
            7. No-load current=60 mA (Max), Load current=300mA(Max)

 

SOFTWARE REQUIREMENTS
3.6 KEIL DEVELOPMENT SOFTWARE
3.6.1 INTRODUCTION
The C programming language is a general-purpose programming language that provides code efficiency, elements of structured programming, and a rich set of operators. C is not a big language and is not designed for any one particular area of application. Its generality combined with its absence of restrictions, makes C a convenient and effective programming solution for a wide variety of software tasks. Many applications can be solved more easily and efficiently with C than with other more specialized languages.
 
The Cx51 Optimizing C Compiler is a complete implementation of the American National Standards Institute (ANSI) standard for the C language. The Cx51 Compiler is not a universal C compiler adapted for the 8051 target. It is a ground-up implementation, dedicated to generating extremely fast and compact code for the 8051 microprocessor. The Cx51 Compiler provides you with the flexibility of programming in C and the code efficiency and speed of assembly language.
 
The C language on its own is not capable of performing operations (such as input and output) that would normally require intervention from the operating system. Instead, these capabilities are provided as part of the standard library. Because these functions are separate from the language itself, C is especially suited for producing code that is portable across a wide number of platforms.
 
Since the Cx51 Compiler is a cross compiler, some aspects of the C programming language and standard libraries are altered or enhanced to address the peculiarities of an embedded target processor. Refer to Language Extensions for more detailed information. OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT11
FIGURE 3.8 OVERVIEW OF KEIL COMPILER
3.6.2 8051 DEVICE SUPPORT
The 8051 Family is one of the fastest growing Microcontroller Architectures. More than 500 device variants from various silicon vendors are available today. New extended 8051 devices, like the Philips 80C51MX architecture, are dedicated for large applications with several megabytes of code and data space.
 
For optimum support of these different 8051 variants, Keil provides several development tools that are listed in the table below. A new output file format (OMF2) allows direct support of up to 16MB code and data space. The CX51 Compiler is a variant of the C51 compiler that is designed for the new Philips 80C51MX architecture.
 
Development Tools
 Supported Microcontrollers
Description
 

 
C51 Compiler,
A51 Macro Assembler,
BL51 Linker/Locater
Classic 8051 Devices.
Supports standard 8051 devices and includes support for 32 x 64K code banks.
 

 

 
C51 Compiler
(with OMF2 Output),
AX51 Macro Assembler,
LX51 Linker/Locater
Classic 8051 Devices,
Extended 8051 Variants,
Dallas 390/52xx/400/41x.
Supports standard and extended 8051 devices. Includes support for code banking and up to 16MB code and xdata memory.
 

 

 
CX51 Compiler,
AX51 Macro Assembler,
LX51 Extended
Linker/Locater
Philips 80C51MX Devices.
Supports Philips 80C51MX devices that provide a linear 16MB address space.
TABLE 3.1 REFERS TO THE ENTIRE LINE OF THE 8051 DEVELOPMENT TOOLS.

 

 

 

 

3.6.3 8051 VARIANT
The classic 8051 provides 4 register banks of 8 registers each. These register banks are mapped into the DATA memory area at address 0 – 0x1F. In addition the CPU provides a 8-bit A (accumulator) and B register and a 16-bit DPTR (data pointer) for addressing XDATA and CODE memory. These registers are also mapped into the SFR space as special function registers. OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT12FIGURE 3.9 8051 VARIANTS
3.6.4 8051-SPECIFIC OPTIMIZATION
AJMP/ACALL MAXIMIZING      (LINKER OPTIMIZATION)           
The linker rearranges code segments to maximize AJMP and ACALL instructions which are shorter than LJMP and LCALL instructions.
 
CASE/SWITCH OPTIMIZING       
Code involving switch and case statements is optimized using jump tables or jump strings.
 
DATA OVERLAYING        
Data and bit segments suitable for static overlay are identified and internally marked. The linker has the capability, through global data flow analysis, of selecting segments which can then be overlaid.
 
EXTENDED ACCESS OPTIMIZING                               
Variables from the IDATA, XDATA, PDATA and CODE areas are directly included in operations. Intermediate registers are frequently unnecessary.
PEEPHOLE OPTIMIZING             
Redundant MOV instructions are removed. This includes unnecessary loading of objects from the memory as well as load operations with constants. Complex operations are replaced by simple operations when memory space or execution time can be saved.

 

 

3.6.5 CREATING AND COMPILING THE C APPLICATION

 

 

This section describes the process to create and compile a sample C application for the DS5250 using Keil’s µVision2 integrated development environment.

 

 

3.6.6 CREATING A NEW PROJECT

In Keil µVision2, select Project -> Create New Project from the menu. Enter the name of your new project. The Select Device for Target dialog will appear as shown below in Figure4.2.UnderDatabase,  select    Dallas Semiconductor and DS5250. Check the boxes for Use Extended Linker and Use Extended Assembler, and then hit OK to continue.
OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT13FIGURE 3.10 SELECTING THE DS5250 FOR A NEW KEIL µVISION2 PROJECT.
A new dialog box will ask, “Copy Dallas 80C390 Startup Code to Project Folder and Add File to Project?” Select YES.

 

3.6.7 SETTING PROJECT OPTIONS
When the project window opens on the left, open up Target 1. Right click on Target 1, and select Options for Target ‘Target 1’. An Option dialog box will appear.
Select the Target tab. Change the settings in this tab as follows (as shown below in Figure 4.3):
  1. Memory Model – Set to Large: Variables in XDATA.
  2. Code ROM Size – Set to Contiguous Mode: 16 MB program.
  3. Set the checkbox for Use multiple DPTR registers.
  4. In the Off-chip Code Memory section of the dialog, set the top two fields to Eprom Start: 0x1400 and Eprom Size: 0x10000.
  5. In the Off-chip Xdata Memory section of the dialog, set the top two fields to Ram Start: 0x80000 and Ram Size: 0x10000.
OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT14FIGURE 3.11 TARGET OPTION DETTINGS FOR THE DS5250.
 
Finally, select the Output tab. In this tab, check the box for Create HEX file and select HEX Format: HEX-386.

 

3.6.8 ADDING THE PROJECT CODE
Open a new file and enter the C code shown in the code tab.

 

3.6.9 COMPILING THE PROJECT

To compile the project, press F7, or select Project -> Build Target from the menu. If no errors occur, messages should appear indicating that compilation completed successfully, as shown in Figure 3.12.
OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT15FIGURE 3.12 COMPILATION OUTPUT FROM KEIL µVISION

 

 

3.6.10 LOADING THE COMPILED APPLICATION WITH THE   MICROCONTROLLER TOOLKIT
Before loading the compiled application on the DS52x0 Evaluation Kit board, the board should be set up as follows:
  1. A 6-9 volt DC power supply (center post positive) should be connected to power plug J1.
  2. A straight-through, DB9 serial cable should be connected from J3 (SERIAL 0) to COM1 on the host PC.
  3. A 22.1184 MHz crystal should be inserted.
  4. All DIP switches should be OFF except for A1-A4, B1, and B2 which should be ON.
To load the application:
  1. Open Microcontroller Tool Kit. In the microcontroller type dialog, select DS5240/50.
  2. Turn power on to the DS52x0 Evaluation Kit Board.
  3. Select Options -> Configure Serial Port. Set the serial port options to COM1 and 9600 baud.
  4. Select Target -> Open COM1 at 9600 baud (or hit Ctrl+O).
  5. Select Target -> Connect to Loader (or hit Ctrl+L).
  6. A loader prompt should appear (DS5250 SECURE LOADER…)
  7. At the loader prompt, type “W MSIZE 12” and hit ENTER.
  8. At the loader prompt, type “W MCON 81” and hit ENTER.
  9. Select File -> Load from the menu (or hit Ctrl+H). Select the compiled application hex file.
  10. Once loading completes, set the DIP switch B1 to the OFF position.
OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT16FIGURE 3.13 OUTPUT FROM MICROCONTROLLER TOOL KIT

 

  

 

CHAPTER 4 

OUTPUT AND RESULTS OF PROJECT

OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT17
 
OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT18
 
OBSTACLE AVOIDANCE AND NAVIGATION OF PATH TRACING MANIPULATOR FOR INDUSTRIAL ROBOT19

 

 4.1 PICK AND PLACE ROBOTIC SYSTEMS:
  1. Increase Efficiency
  2. Decrease Production Costs
  3. Improve Product Quality
  4. Are Ideal for Hazardous Conditions

 

CHAPTER 5
CONCLUSION AND FUTURE SCOPE OF PROJECT
5.1 CONCLUSION:
A real-time obstacle avoidance approach for mobile robots has been developed and implemented. It permits the detection of unknown obstacles to avoid collisions and advance toward the target.
We have made a Pick and place robotic system to take a product from one spot in the manufacturing process and drop it into another location. A good example is a robot picking items off a conveyor belt and placing them in packaging boxes. Some systems are set up with vision guidance to aid in the picking process. The typical pick and place application requires high amounts of   and long hours. This is precisely why pick and place applications are well-suited for robots.

 

5.2 FUTURE SCOPE OF PROJECT:
1.      The robot has a capability of implementing more sensor modules to enable it to operate considering wide range of parameters.
2.      The robot may also be path programmed to strictly follow a definite path.
3.      Night vision monitoring can be added to monitor even in absence of light.
4.      Range of monitoring system can be improved by better wireless transmission.
5.      Possibility of additional manual driving control for the robot.

 

 

5.2.1 FUTURE APPLICATIONS:
  1. Coal mining
  2. Military Operation
  3. Fire fighting Operation
  4. Undersea Robots
  5. Garbage Collection and Waste Disposal Operations

 

 

 

Project Source Code

 

Project Source Code

###


#include <stdio.h>

#include <reg5240.h>  

// Initialize serial port 0 to 9600 baud using 22.1184

MHz

crystal

void serialInit()

{

   PCON |= 0x80;

 

 

   SCON0 = 0x50;

 

 

   TMOD |= 0x21;

 

   TH1    = 0xDC;

 

 

   CKCON |= 0x10;

 

 

 

   TCON   = 0x50;

 

 

   SCON0 |= 0x02;

}

void main()

 

 

 

 

{

 

 

   serialInit();

 

 

 

 

 

   printf('Hello from serial port 0r');

 

while (1) {

 

 

      P0 = 0x55;

 

 

               printf(".");

 

 

      P0 = 0xAA;

 

               printf(".");

 

 

   }

 

 

}

 

 

 

Save this file as main.c. The file will not be automatically added to the project. To add the file, right-click on Source

 

 

 Group 1 and select Add Files to Group 'Source Group 1'. Select main.c and click Add, then click Close.

 

Next, open the file START390.A51 and comment out the following lines (after the STARTUP1 label):;                           

 

 

 

 

 

MOV

 

 

     TA,#0xAA        ; Enable access to P4CNT;    

     MOV     TA,#0x55 ;

P4CNT_VAL EQU (SBCAN SHL 6) OR (PCES SHL 3) OR (P4PF);                           

 

 

MOV     P4CNT,#P4CNT_VAL ;

 

 

;              MOV     TA,#0xAA        ; Enable access to P5CNT;           

 

 

MOV     TA,#0x55

 

 

;P5CNT_VAL EQU (SP1EC SHL 5) OR (CX_IO SHL 3) OR (P5PF);                            

 

 

MOV     P5CNT,#P5CNT_VAL

 

 

 

 

 

Also, change the line

 

 

#include <reg390.h>

 

 

 

 

 

to

 

 

 

 

 

 

#include <reg5240.h> 

###

 



Filed Under: Electronic Projects
Tagged With: obstacle avoidance, robot
 

Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.



Tell Us What You Think!! Cancel reply

You must be logged in to post a comment.

HAVE A QUESTION?

Have a technical question about an article or other engineering questions? Check out our engineering forums EDABoard.com and Electro-Tech-Online.com where you can get those questions asked and answered by your peers!


Featured Tutorials

  • PS2 Keyboard To Store Text In SD Card Using Arduino Circuit Setup On Breadboard
    How To Use PS2 Keyboard To Store Text In SD Card Using Arduino- (Part 42/49)
  • Wireless Path Tracking System Using Mouse, XBee And Arduino Circuit Setup On Breadboard
    How To Make A Wireless Path Tracking System Using Mouse, XBee And Arduino- (Part 43/49)
  • How to Make a Wireless Keyboard Using Xbee with Arduino- (Part 44/49)
  • Making Phone Call From GSM Module Using Arduino Circuit Setup On Breadboard
    How to Make Phonecall From GSM Module Using Arduino- (Part 45/49)
  • How to Make a Call using Keyboard, GSM Module and Arduino
    How To Make A Call Using Keyboard, GSM Module And Arduino- (Part 46/49)
  • Receiving SMS Using GSM Module With Arduino Prototype
    How to Receive SMS Using GSM Module with Arduino- (Part 47/49)

Stay Up To Date

Newsletter Signup

Sign up and receive our weekly newsletter for latest Tech articles, Electronics Projects, Tutorial series and other insightful tech content.

EE Training Center Classrooms

EE Classrooms

Recent Articles

  • Renesas delivers intelligent sensor solutions for IoT applications
  • Microchip Technology releases AVR-IoT Cellular Mini Development Board
  • Qualcomm acquires Cellwize to accelerate 5G adoption and spur infrastructure innovation
  • MediaTek’s chipset offers high-performance option for 5G smartphones
  • Nexperia’s new level translators support legacy and future mobile SIM cards

Most Popular

5G 555 timer circuit 8051 ai Arduino atmega16 automotive avr bluetooth dc motor display Electronic Part Electronic Parts Fujitsu ic infineontechnologies integratedcircuit Intel IoT ir lcd led maximintegratedproducts microchip microchiptechnology Microchip Technology microcontroller microcontrollers mosfet motor powermanagement Raspberry Pi remote renesaselectronics renesaselectronicscorporation Research samsung semiconductor sensor software STMicroelectronics switch Technology vishayintertechnology wireless

RSS EDABOARD.com Discussions

  • SRF04 module measure distance
  • Motherboard - worst case scenario
  • Will Wifi throughput be affected by RSSI (attenuation) in my setup?
  • Adaptive filters fundamental
  • Using LTspice to check Current sense transformer reset?

RSS Electro-Tech-Online.com Discussions

  • Are Cross-wind compensation and Road crown compensation functions inputs to LKA function?
  • Interfacing ZMOD4410 with Arduino UNO
  • Help diagnosing a coffee maker PCB
  • Capacitor to eliminate speaker hum
  • Identify a circuit.
Engineers Garage
  • Analog IC TIps
  • Connector Tips
  • DesignFast
  • EDABoard Forums
  • EE World Online
  • Electro-Tech-Online Forums
  • Microcontroller Tips
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips
  • 5G Technology World
  • About Us
  • Contact Us
  • Advertise

Copyright © 2022 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Projects and Tutorials
    • Electronic Projects
      • 8051
      • Arduino
      • ARM
      • AVR
      • PIC
      • Raspberry pi
      • STM32
    • Tutorials
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Products News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • EE Resources
    • DesignFast
    • LEAP Awards
    • Oscilloscope Product Finder
    • White Papers
    • Webinars
  • EE Learning Center
    • Design Guides
      • WiFi & the IOT Design Guide
      • Microcontrollers Design Guide
      • State of the Art Inductors Design Guide
  • Women in Engineering