ARDUINO MAZE SOLVER







A Brief Description

Required Equipments

How it works?

Block Diagram

Algorithm

Detailed Pin Diagram

Problems Faced

Group Members Information

Course Teacher






A Brief Description


For this project we have designed an maze solver robot using arduino mega1280. It works in two modes : manual and auto mode.

In manual mode the device is user controlled. The user can see video feedback from the robot in his/her personal comupter and then drive the robot in accordance. The video feedback and user command is transferres using a bluetooth module.

In auto mode the robot sovles the maze itselt using implemented logics. 4 sonar sensors are used in this purpose to determine the positions of the walls. The robot continuously takes reading from the sensors and after analysing them takes decision about which direction to go.






Required Equipments







How it works?


As mentioned earlier this maze solver has two modes. In manual mode the robot is controlled by the user and in auto the robot itself solves the maze. Which mode the robot should execute is sent from the users personal computer using bluetooth module. If manual mode is selected the device constantly receives data from the user by means of bluetooth module. The bluetooth module also gives video feedback to the user for determining the position of the robot. From analyzing the video feedback one can give command about in which direction to go. After the robot has received command from the user it goes that direction. Also the user can move the camera attached for a better view of the maze.

In auto mode the robot solves the maze on its own. In this mode the robot takes decision as per the logic implemented. It takes decision about which direction to go from the sonar sensors. The soner sensors notifies the robot of the distance of any obstackle. We used 4 soner sensors in the 4 directions. The direction right has highest priority. If the robot finds that there is no wall at right it goes go that direction. If not then it checks for any wall up front. If so then it goes to left. If ther is no place to go then it goes reverse. Otherwise it goes forward. It does so until the maze is solved.






Block Diagram




                                                                       pin diagram

                                                                                                                                               fig.1 Block Diagram






Algorithm




       1.Start
              2.Select mode
              3.If automode
                     4.Do
                            5.If right_side clear
                                   6.Go to right
                            7.Else_if front_side not clear
                                   8.If left_side clear
                                          9.Go to left
                                   10.Else go reverse
                            11.Else go foreard
                     12.Until maze is solved
              12.Else_if manual mode
                     13.Do
                            14.If rec_data='F'
                                   15.Go foreard
                            16.If rec_data='L'
                                   17.Go to left
                            18.If rec_data='R'
                                   19.Go to right
                            20.If rec_data='B'
                                   21.Go reverse
                            22.If rec_data='C'
                                   23.Move camera to left
                            24.If rec_data='A'
                                   25.move camera to right
                     26.Until maze is solved
       16.End






Detailed Pin Diagram








                                                                       pin diagram

                                                                                                                           fig.3 Pin Diagram






Problems Faced


  1. We rotate the robot using Dc motor. So we make the robot take 90 degree left or right turn by controlling the speed of Dc motor. But in reality the speed of the motor depends highly on the nature of the surface and voltage it gets from the battery. So in different surface the motor was rotaing at different angles .It causes the robot to devaite from the trajectory it should maintain. As a result the robot often make collision with the wall and cant show the proper attributes.

  2. Speed of the two Dc motors were different. So we have to provide different speed for them even if in time of moving forward. So in different surface it often devaites from the straight line. Although we make the correction by moving the robot a little bit left or right by taking reading from the sensors, but it cannot mitigate the deviation always. So the robot devaited from its trajectory also make inappropiate left or right turns and hit the wall. Morever the robot goes different distance in different intance although it should maintain a constant distance.

  3. The robot take decisions by taking value from the left,right and from sensors and thus detect dead ends, and free paths. If it devaites from the original straight line and then the sensors reading are the diagonal distance from the wall which are not current. So it sometimes thought this distance to be a free path and make turn and thus collide.

  4. The servo motor, when powered up always rotates a little automatically although we made the rotation standstill. Providing VCC to servo using software didnot provide solution in this regard.

  5. The bluetooth module should not be provided more than 5V. We accidently connected it with 9V once and damaged two bluetooth modules.






Group Members Information


Section B1: Group 5






Course Teachers


  1. Md. Aashikur Rahman Azim

  2. Md. Iftekharul Islam Sakib

  3. Tarikul Islam Papon





Youtube Video

Back to top