AUST.019 Student Name: Fatema-E-Jannat Student ID: 12.05.01.01. Obstacle Detecting Line Follower Robot Group No: 08 Group Name: Gear It Forward Group Members Student Name: Zarin Tasnim Student ID: 12. Abid Bin Farid.01.05.Hasib Md.05.011 Student Name: Noshin Tasnim Student ID: 12. .05.01.05. Assistant Professor.021 Student Name: Nahian Fairuz Student ID: 12.040 Submitted to: Mr.022 Student Name: Sadia Nazneen Student ID: 12.01. 2 5. Receiver . Motor Driver IC L293D 1 8. LCD Screen 16X2 1 14. It is a vehicle which follows the line and detects the obstacle. Breadboard Mini. The main intension of the robot is to aware the owner about the obstacle in LCD screen.Abstract: Our robot is an autonomous Obstacle detecting line follower robot in the age of modern growth of computer and hardware. Gear motor DC 2 3.Large 2 9. Then it transmits the distance of obstacle from robot in the LCD screen. Transmitter . Arduino Uno 2 4. Introduction: The autonomous robot for path finding and obstacle evasion is able to follow a control strip is sketched on the surface where it is placed. Arduino Cable . Resistance 10K 6 13. Ultrasonic Sensor HC-SR04 1 10. 2 7. Equipments List: Serial No Equipments Specification Quantity 1. 1 2. Connecting Wires Male to Male As required Male to Female . Battery 6V. Battery Holder . 1 15. The presented robot captures line position with IR Sensors. Male Connector . 1 11. Here we made the sensor with IR transmitter and IR Receiver Diode. Magician Chassis . while these sensors are escalated at the front of our robot. 1 12.9V 3 6. CircuitDiagram: Fig: LCD screen and RF Receiver with arduino . Fig: Transmitter. Ultrasonic sensor and IR sensor with arduino . Fig: : Motor Driver Circuit with arduino . Motor Driving Circuit: The DC gear motor is used in the robot.. 2. It is connected using male to male jumper.It is a 16 pin chip called L293D. We used two Arduinos in our project. We connected the IC with arduino uno. The programming is done in this part.By the following figure the IC is naratively described: . Then we programmed it as per it is required.But in the circuit we used L293D IC. The Arduino board is the brain of the robot.To build the motor drive circuit first we chose LM324 and L293D. Arduino board: There are many classifications of arduino. as it will be running the software that will control all the other parts.Working Principal: 1. It can drive 2 DC motors. It is microcontroller. But we didn’t control the speed manually rather we did it by programming in microcontroller. Obstacle sensor: To sense the obstacle or define any object we have used the ultrasonic sensor.So that the photodiode could receive the ray properly. The speed of the rigt and left motor is to be nearly same. So we made the right motor speed 255 and left motor speed 235. We used this little device to prevent the .The figure is given: As per the figure we can see it has 4 pins. 4. We have placed the circuit as given in the above picture on a mini breadboard. The Photodiode was kept 1 mm above the LED.Then we checked the sensor part using the connecting with the arduino.So Our sensor was ready to use. Depending on how long the signal takes to bounce back the approximated distance to an obstacle can be calculated. Line Following Sensor: We have made the sensor part using IR Transmitter (LED) and IR Receiver Diode(Photodiode). When we hold a black tape on any sensor then it was giving the accurate reading. We used 10K resistance also. The main function of the sensor is to detect the line and follow the path.Distance sensors send an ultrasonic signal forward and then wait to receive a bounced signal. 3. Here two potentiometers are used. A 9V battery is used to give power in the motor driver circuit also.robot from other obstacles in its way. Another arduino is supplied with a constant DC of 5V. There are rectangles for each character on the display and the pixels that make up each character.The display has an LED backlight and can display two rows with up to 16 characters on each row. The receiver is connected in one breadboard along with an arduino. lCD Screen: The purpose of using the LCD screen is to show the distance of the obstracle from the robot.As a result it can detect any obstacle within its range. They can easily fit into a breadboard and work well with microcontrollers to create a very simple wireless data link. The data pin of transmitter is connected to 4 no pin of digital part of arduino. The display is just white on blue and is intended for showing text.One is to adjust the brightness and the other is to adjust the contrast. . These modules are indiscriminate and will receive a fair amount of noise. Transmitter and Receiver Part: The wireless transmitter and receiver pair operate at 315 MHz.The Trig and echo pin is connected to the 7 and 6 no pin of arduino. 6. ` There are 16 pin which is added with the LCD to connect with arduino. The data pin is connected at the 13 no pin of arduino on digital part. 5. 7. Power supply: We have used 6V battery with a connector in arduino. Troubleshooting: To create a project every person has to follow some trouble. Coding of transmitter and receiver: We did the transmitter and receiver with the help of coding. . At first we used the LDR and White LED as sensor. Some instruments were really new for us to operate. After that problem we used 9v supply to the circuit and 6V in the arduino. We made change in the code of arduino and fixed it. 5.But it was not. The motors had to be of same speed. In LCD connection pots are used: Some circuits were there in which we didn’t find any pot for the LCD screen connection. As one is used to vary the contrast and another one is used to vary the brightness. But later on by gathering more information we selected the suitable and cost effective circuit. Selection of circuit: It was almost a new project for us.But while coding the software was creating problem. On the other hand the Photodiode and Infrared LED gave a good value. But the sensor monitor did not give the accurate value. But we learned how to manage it. But later on we added two pots. 3. In the project we also faced some problem. 2. We were selecting bigger circuit and that was not so much cost- effective.So we had to make it almost same through programming.But it was very difficult to give power supply in motors. Lack of power supply: Firstly in our project we used a 6V battery for the power supply . arduino and distance sensor combined. Making sensor With the LDR and LED: Basically in the circuit we used sensor made of Photodiode and Infrared LED. Some other troubleshooting are explained below: 1. Another 5V is used in the other arduino which is holding the receiver. Controlling the motor speed: It was very necessary for us to fix the speed of the left and right gear motors almost equally. But we also overcame it. 4. 6. Due to some irrelevant problem it took so much time to be corrected. so we chose this one as our line following sensor. Project Image: The motor driver circuit IR sensor: . LCD Screen with Receiver: Overall Images of Robot: . h> #define TRIGGER_PIN 6 #define ECHO_PIN 7 #define MAX_DISTANCE 200 const int transmit_pin = 3. const int dangerThresh = 10. MAX_DISTANCE). // Left Motor Controls # define LeftMotorForward 8 // ip B` .The arduino code is: #include <NewPing.Code used in microcontroller: Two arduinos are used in the project. One aruino is connected to the chasis and also connected with receiver. NewPing DistanceSensor(TRIGGER_PIN. ECHO_PIN.h> #include <VirtualWire. OUTPUT).begin(9600). OUTPUT).# define LeftMotorReverse 9 // ip A # define El 10 // Right Motor Controls # define RightMotorForward 12 // ip A # define RightMotorReverse 13 // ip B # define Er 11 // Grid Sensors // holding the bot with gripper oriented outwards # define Rs A0 # define Ms A1 # define Ls A2 void setup() { // put your setup code here to run once: Serial.235). INPUT). OUTPUT). pinMode (El. pinMode (RightMotorForward. analogWrite (Er. pinMode (Rs. INPUT). pinMode (RightMotorReverse. pinMode (Er. OUTPUT). pinMode (LeftMotorForward. vw_setup(2000). pinMode (LeftMotorReverse. OUTPUT). INPUT). OUTPUT). // A0 pinMode (Ms. // A1 pinMode (Ls. // A2 vw_set_tx_pin(transmit_pin). } . analogWrite (El.255). } else { send("Obstacle detected! ").1).235). } } } void MotorControl(int driveL. send("Turning Left").0). send("Turning Right"). break. digitalWrite (LeftMotorReverse.} } else if (analogRead(Rs)<analogRead(Ms) && analogRead(Rs)<analogRead(Ls)) { MotorControl(1. int driveR) { switch (driveL) { case 0: // lft STOP digitalWrite (LeftMotorReverse.void loop() { unsigned int DistanceObs = DistanceSensor.0). MotorControl(0. case 1: // lft FORWARD digitalWrite (LeftMotorForward. send("Danger Alert! All stop!").0). send("Running Forward"). case 2: // lft REVERSE .0). { if ( analogRead(Ms)<analogRead(Rs) && analogRead(Ms)<analogRead(Ls)) { if (DistanceObs>dangerThresh) {MotorControl(1.0). break.1).ping_cm(). } else if (analogRead(Ls)<analogRead(Rs) && analogRead(Ls)<analogRead(Ms)) { MotorControl(0. digitalWrite (LeftMotorForward. break. default:break. digitalWrite (LeftMotorReverse. break. case 2: // rgt REVERSE digitalWrite (RightMotorReverse.0). digitalWrite (RightMotorForward. digitalWrite (RightMotorForward.235). digitalWrite (LeftMotorForward.0). break. default:break. } switch (driveR) { case 0: // rgt STOP digitalWrite (RightMotorReverse. } } void send (char *message) { vw_send((uint8_t *)message. case 1: // rgt FORWARD digitalWrite (RightMotorReverse.255).0).The arduino code is given below: . // Wait until the whole message is gone } Another arduino is connected with LCD and Receiver. break. strlen(message)).0). digitalWrite (RightMotorForward. vw_wait_tx().255).0). 4 lines of 20 characters each. setCursor ( 0 . // the cursor is placed on the top of the screen. int pos = 0 . else { pos = 0 . setCursor ( 0 . pos ) . // Global Variables: char ch [ 100 ] . 5. lcd .#include <VirtualWire. . } void loop ( ) { byte buf [ VW_MAX_MESSAGE_LEN ] . vw_setup ( 2000 ) . 2 ) . 7 ) . // bits per second (baud) for communication is indicated. void setup ( ) { lcd . vw_rx_start ( ) . & buflen ) ) { if ( pos < 2 ) lcd . int i . if ( vw_get_message ( buf . clear ( ) . 6. 0 ) . byte buflen = VW_MAX_MESSAGE_LEN . // Setting the LCD. begin ( 16. lcd . 9. // the reception starts. 4.h> #include <LiquidCrystal // Instantiation of the LCD: LiquidCrystal lcd ( 8. } // Prints per screen componentwise array until it reaches the end. Again it can be upgraded by adding many features also. BYTE). Some Valuable things could stick there or any person can stuck. // Lcd. // Other ways to print: // Lcd.write (buf [i]). The robot will then detect the fallen concretes or any obstacle and then it would be easier to the helpers to remove obstacle easily. print ( buf [ i ] ) .print ((char) buf [i]). } } } Application of the project in along with the future work: In this project of obstacle. // Lcd. Detecting obstacle in damaged place: Sometimes large buildings collapse due to their improper construction. 2. Mainly it can be used in many effective sector s of our life. In many cases it becomes really tough for a few nurses to maintain a large number of patients. for ( i = 0 . Future Works: . Application: 1. But the robot can make it easy. pos ++ . i < buflen .As it can carry medicines to the patients. 3. It can take small things like papers from one to another person. Then the robot can help them by transportation. In corporate sector: In offices due to lack of peon it becomes hard to work fast. there are several ways to apply it in different field of our daily life.print (buf [i]. Medical Sector: In medical sector the obstacle detecting line follower robot is really a useful one . i++ ) { lcd . http://playwithrobots. It can be used in road for cleaning.instructables. Again it will start its work. Then it will be more easy to remove obstacle from way. Total distance of obstacle: Our project is about showing distance of obstacle from the robot. It was great scope for us to take the technology a little bit far. Abid Bin Farid.com/ . Mr. https://code.buildcircuit. Conclusion We made the robot named Obstacle detecting Line follower robot. Using component to remove object: It can also be improved by adding a part which will detect and remove the object from its way.com/p/arduino-new-ping/ 5. On the other hand owner will have the LCD to catch the information.So that the owner can easily be aware about the size of the obstacle. 2. Through this hardware project we have learnt about many new projects and we have also developed our skill in programming. In the modern era of science and technology it is necessary to reduce the manpower and increase the uses of instrument.AUST. http://www.Hasib Md. 3.google.Assitant Professor.com/id/How-To-Make-an-Obstacle-Avoiding-Arduino-Robot/ 4.com/ 6. 2. http://aust-eee-2211-project. But we can improve it by adding a feature to detect the distance of obstacle from the owner. Adding Camera: By adding an camera module it can show also the picture of obstacle.com/make-it-form-scratch/advance-line-follower-robot 3.1. http://www. It would be easier to be more conscious.webnode. References: 1.
Report "Obstacle Detecting Line Follower Robot .pdf"