How to make a Line Follower Robot

37,951 views

Published on

These slides have been made by the members of roboVITics club - The Official Robotics Club of VIT. It deals with the basic concepts related to making a Line Follower Robot.

For details, visit http://maxEmbedded.com/
http://robovitics.in/

Published in: Business, Technology
13 Comments
110 Likes
Statistics
Notes
No Downloads
Views
Total views
37,951
On SlideShare
0
From Embeds
0
Number of Embeds
1,317
Actions
Shares
0
Downloads
0
Comments
13
Likes
110
Embeds 0
No embeds

No notes for slide
  • (c) Copyright, Mayank Prasad, 2012
  • (c) Copyright, Mayank Prasad, 2012
  • How to make a Line Follower Robot

    1. 1. How to make a line follower
    2. 2. Introduction What is a line follower?• Line follower is a robot that can follow a path. The path can be visible like a black line on a white surface (or vice-versa). (c) Copyright, roboVITics club 2012 2
    3. 3. Hardware Components• IR Sensors• DC Geared Motors• Robot Chasis• Microcontroller development board• Atmega 8 Microcontroller• USB Programmer (c) Copyright, roboVITics club 2012 3
    4. 4. IR Sensor(c) Copyright, roboVITics club 2012 4
    5. 5. Block Diagram Every sensor has three terminals VCC •VCC – to power up the sensor •GND – to provide a fixed negative reference PhysicalParameters Sensor OUTPU •OUTPUT – analog T output of the sensor GND (c) Copyright, roboVITics club 2012 5
    6. 6. Working• IR sensor works on the principle of emitting IR rays and receiving the reflected ray by a receiver (Photo Diode) (c) Copyright, roboVITics club 2012 6
    7. 7. IR Sensor circuit (c) Copyright, roboVITics club 2012 7
    8. 8. Types of resistor• Fixed type resistor• Variable type resistor (c) Copyright, roboVITics club 2012 8
    9. 9. LM358• The LM358 IC consists of two independent operational amplifiers which were designed specifically to operate from a single power supply over a wide range of voltages.• It have two op-amp• Single power supply (c) Copyright, roboVITics club 2012 9
    10. 10. LM358 IC(c) Copyright, roboVITics club 2012 10
    11. 11. Internal circuit (c) Copyright, roboVITics club 2012 11
    12. 12. DC geared motors • Motors having external gear arrangement attached with motor. • It has a gearbox that increases torque and decreases speed. • Most commonly used in robotics as they are having considerable torque. (c) Copyright, roboVITics club 2012 12
    13. 13. DC Motors• Motors which works on dc current and gives a rotating motion as an output.• In robotics applications, they are preferred over AC motors as the motor and the complete circuit require same kind of supply i.e. DC supply. (c) Copyright, roboVITics club 2012 13
    14. 14. Chasis• Provides a base to the robot.• Wheels, sensors and controller board are attached to it. (c) Copyright, roboVITics club 2012 14
    15. 15. IC’s• L293D• LM358• IC 7805(voltage controlled) (c) Copyright, roboVITics club 2012 15
    16. 16. IC 7805• It is a voltage regulator integrated circuit.• It designed to automatically maintain a constant voltage level (c) Copyright, roboVITics club 2012 16
    17. 17. Features• Output current range up to 1A• Output voltage 5V• Input voltage range up to 12V• Short circuit protection (c) Copyright, roboVITics club 2012 17
    18. 18. Transistor• Transistor are of two types: 1-> n-p-n A straight switch 2-> p-n-p A inverted switch (c) Copyright, roboVITics club 2012 18
    19. 19. n-p-n as a switch• When base of n-p-n is connected with logic high voltage then it short circuit emitter and collector (SWITCH ON).• When base of n-p-n is connected with logic low voltage then it open circuit both emitter and collector (SWITCH OFF). (c) Copyright, roboVITics club 2012 19
    20. 20. Circuit diagram to show a switching VCC Logic transisto Motor r 0 off stop 1 on run Logic 1 or RB Logic 0 M GND (c) Copyright, roboVITics club 2012 20
    21. 21. p-n-p as an inverted switch• When base of p-n-p is connected with logic high voltage then it open circuit emitter and collector (SWITCH OFF).• When base of p-n-p is connected with logic low voltage then it short circuit both emitter and collector (SWITCH ON). (c) Copyright, roboVITics club 2012 21
    22. 22. Controlling Motor Using H-Bridge• Switches settings for rotation:  S1&S4: ON and S2&S3: OFF (for one direction).  S2&S3: ON and S1&S4: OFF (for other direction).• S1-S2: ON or S3&S4: ON (can be used to stop the motor). (c) Copyright, roboVITics club 2012 22
    23. 23. H-Bridge OperationA B o/p0 0 Stop0 1 Clock wise1 0 Counter clock wise1 1 Stop (c) Copyright, roboVITics club 2012 23
    24. 24. L293D IC EN1 EN1 Vcc 12V EN2 12V(c) Copyright, roboVITics club 2012 24
    25. 25. Conti….• L293D is a dual H-Bridge motor driver.• So with one IC we can interface two DC motors which can be controlled in both clockwise and counter clockwise direction• If you have motor with fix direction of motion then you can make use of all the four I/Os to connect up to four DC motors.• L293D has output current of 600mA.• Moreover for protection of circuit from back EMF output diodes are included within the IC. (c) Copyright, roboVITics club 2012 25
    26. 26. Dual H-Bridge Motor Driver IC: L293DFeatures: • Capable of driving 2 motors at a time in clockwise and anti- clockwise direction separately. • Works as an interface for controlling motors using lower voltage (5V) and running motors on higher voltage. (c) Copyright, roboVITics club 2012 26
    27. 27. Interface motor with IC L293D EN1 VCC 12V EN2 (c) Copyright, roboVITics club 2012 27
    28. 28. What is a Microcontroller? A microcontroller (sometimes abbreviated µC or MCU) is a small computer on a single IC containing a processor core, memory, and programmable input/output peripherals. It is a decision making device used widely in embedded systems and all intelligent devices. (c) Copyright, roboVITics club 2012 28
    29. 29. Difference between Microcontroller and Microprocessor Microcontroller has I/O ports, Memory, timers etc all integrated on chip itself In Microprocessors, I/O ports, memory, timer etc are to be connected externally (c) Copyright, roboVITics club 2012 29
    30. 30. Microcontrollers Microprocessors• Full fledged PC! • Separated units• ROM, RAM, Flash, • Higher resources CPU, ALU, on-chip • MCU – (everything in peripherals point 2)• Lower resources (c) Copyright, roboVITics club 2012 30
    31. 31. Typical MCU based solutionMicrowave Oven (c) Copyright, roboVITics club 2012 31
    32. 32. MCU Ports• Ports contains pins of the MCU• Can be turned ON or OFF by the program – ON = 1 (in TTL 5V) – OFF = 0 (in TTL 0V)• Input mode – values can be read – Above threshold = ON – Below threshold = OFF (c) Copyright, roboVITics club 2012 32
    33. 33. AVR ATmega8 Microcontroller (c) Copyright, roboVITics club 2012 33
    34. 34. How AVR ATmega8 got its name? It was developed by Atmel Corporation AVR implies it belongs to AVR family. ‘8’ in Atmega8 means this microcontroller has 8Kb of flash memory (c) Copyright, roboVITics club 2012 34
    35. 35. TYPES OF PACKAGES 28-lead PDIP (Plastic Dual In-line Package) 32-lead TQFP (Thin Quad film Package) (c) Copyright, roboVITics club 2012 35
    36. 36. How ATmega8 PDIP Package looks like? (c) Copyright, roboVITics club 2012 36
    37. 37. How ATmega8 TQFP Package looks like? (c) Copyright, roboVITics club 2012 37
    38. 38. Pinout of ATmega8 (c) Copyright, roboVITics club 2012 38
    39. 39. PORT B(PB7-PB0) It is a 8-bit bi-directional I/O port. It can be used either as a input port or as output port ( direction must be specified in programming). (c) Copyright, roboVITics club 2012 39
    40. 40. PORT C(PC6-PC0) It is a 7-bit bi-directional I/O port. It can be used either as a input port or as output port ( direction must be specified in programming). (c) Copyright, roboVITics club 2012 40
    41. 41. PORTD(PD7-PD0) It is a 8-bit bi-directional I/O port. It can be used either as a input port or as output port ( direction must be specified in programming). (c) Copyright, roboVITics club 2012 41
    42. 42. Microcontroller development board• Used to interface motors, sensors and various other devices with microcontroller.• Components like resistors, capacitors, power supply are attached to the microcontroller via development board for its working. (c) Copyright, roboVITics club 2012 42
    43. 43. USB Programmer• Used to burn code from laptop to memory of microcontroller. (c) Copyright, roboVITics club 2012 43
    44. 44. Two sensor line follower Left Right Directi Left RightSensor Sensor on Motor Motor 0 0 Forwar +12V +12V d 0 1 Copyright, roboVITics club 2012 (c) Left -12V +12V 44
    45. 45. (c) Copyright, roboVITics club 2012 45
    46. 46. (c) Copyright, roboVITics club 2012 46
    47. 47. (c) Copyright, roboVITics club 2012 47
    48. 48. (c) Copyright, roboVITics club 2012 48
    49. 49. Getting StartedSelecting Hardware Selecting Software• PC / Mac • OS – Windows / Mac• In-System OS / Linux Programmer (ISP) • “Free” Compiler• Target Board (MCU • “Free” Programmer Dev Board) Software• Lastly, a MCU!! (c) Copyright, roboVITics club 2012 49
    50. 50. Softwares needed• AVR Studio – for programming• Compiler – for compiling the code• eXtreme Burner or avrloader – for buring code generated to microcontroller. (c) Copyright, roboVITics club 2012 50
    51. 51. Step 1(c) Copyright, roboVITics club 2012 51
    52. 52. Step 2(c) Copyright, roboVITics club 2012 52
    53. 53. Datasheet• Manufacturer gives information regarding the product to its users• Data given is in detail• Features, Technical Specs, Design, Register Summary, Expected Usage, Troubleshooting, Pin details, etc.• Best source of info!!• All electronic components have a datasheet for them• Google them out!! (c) Copyright, roboVITics club 2012 53
    54. 54. Pin ConfigurationsAtmega8 (c) Copyright, roboVITics club 2012 Atmega16/32 54
    55. 55. AVR Studio• Most popular C compiler for AVR• Its official!• Unlike other compilers/emulators, its totally free• The code written will be common to all AVR mcu’s• AVR Studio 4 has been used• AVR Studio 5 beta and AVR Studio 6 has been released (c) Copyright, roboVITics club 2012 55
    56. 56. INTRODUCTION TO EMBEDDED SYSTEM AND EMBEDDED C (c) Copyright, roboVITics club 2012 56
    57. 57. What is Embedded C?• Embedded C is nothing but a subset of C language which is compatible with certain microcontrollers.• Some features are added using header files like <avr/io.h>, <util/delay.h>.• scanf() and printf() are removed as the inputs are scanned from the sensors and outputs are given to the ports.• Control structures remain the same like if- statement, for loop, do-while etc. (c) Copyright, roboVITics club 2012 57
    58. 58. Development process of Embedded C projects• Write C programs in AVR Studio IDE(Integrated Development Environment)• Compile them into a .hex file using the AVR-GCC compiler (which integrates into AVR Studio)• Simulate the target AVR program and debug the code within AVR Studio• Program the actual chip using the USBasp device, which is attached to our target board with a special 6-pin cable• Once programmed, the chip runs the program in your circuit (c) Copyright, roboVITics club 2012 58
    59. 59. Registers to Communicate with I/O Ports To communicate with the ports of Atmega8, we use three registers: PINx PORTx DDRxWhere x would be either B,C or D. (c) Copyright, roboVITics club 2012 59
    60. 60. DDRx Register It stands for Data Direction Register. It is used to define Port as Input or Output. In order to make Port as Input Port: DDRx=0x00 (In Hexadecimal) DDRx=0b00000000(In Binary) In order to make Port as output Port: DDRx=0xFF (In Hexadecimal) DDRx=0b11111111(In Binary) (c) Copyright, roboVITics club 2012 60
    61. 61. PORTx Register If DDRx=0xFF(Output port) Writing logic 1 to PORTx will make output high i.e 5v for that particular pin. Writing 0 to PORTx will make output low i.e 0v for that particular pin. (c) Copyright, roboVITics club 2012 61
    62. 62. Continued.. If DDRx=Ox00(Input port): If corresponding PORTx bit is set to 1, Internal pull up resistors are enabled i.e if we do not connect this pin to anything it still reads as 1. If corresponding PORTx bit is set to 0, internal pull up resistors are disabled i.e the pin will enter a high impedance state and will become unpredictable. (c) Copyright, roboVITics club 2012 62
    63. 63. PINx Register It reads data from the port pins. If any/all bits of DDRx is set to 0(input)for a particular pin, we can read data from PINx If any/all bits of DDRx is set to 1(output), then reading PINx register gives the same data which has been output on that particular pin. (c) Copyright, roboVITics club 2012 63
    64. 64. For Details, visit maxEmbedded.com A guide to robotics and embedded electronics AVR Guide and TutorialsBasics of Microcontrollers, Sensors, Timers, ADC, Serial Communication, etc (c) Copyright, roboVITics club 2012 65
    65. 65. maxEmbedded blog (c) Copyright, roboVITics club 2012 66
    66. 66. Online Stores• store.extremeelectronics.co.in• nex-robotics.com• embeddedmarket.com• rhydolabz.com• thinklabs.in• sparkfun.com (c) Copyright, roboVITics club 2012 67
    67. 67. Suggestions and Doubts are welcome That’s all for today Thank you24 hour helpline9566758862P.S. Its not toll-free! For more info, visit Mayank’s blog maxEmbedded. com (c) Copyright, roboVITics club 2012 © maxEmbedded68 2012

    ×