Skip to content

This project is a line follower and maze solver robot that uses a PID algorithm to navigate through a black line on a white surface. the robot is provided with a mobile application that scans the top view of the line print and adjusts the robot's speed accordingly.

License

Notifications You must be signed in to change notification settings

norhanreda/maze-solver-and-line-follower

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Table Of Contents

About The Project

This project is a line follower and maze solver robot that uses a PID algorithm to navigate through a black line on a white surface. The robot is also equipped with sensors to navigate through a printed maze on a white surface. In addition, the robot is provided with a mobile application that scans the top view of the line print and adjusts the robot's speed accordingly.

Our team, Ninja, developed this project as part of our Embedded Systems course at Faculty of Engineering, Cairo Univerity. We used an Arduino Uno board to control the robot's motors and sensors and programmed it using the Arduino IDE. The mobile application was developed using Python.

Features

  • Line following: The robot uses a PID algorithm to follow a black line on a white surface.
  • Mobile application: The robot is provided with a mobile application that scans the top view of the line print and adjusts the robot's speed accordingly.
  • Maze solving: The robot can navigate through a printed maze on a white surface using its sensors and PID algorithm.

Schematic Design

Capture_1

Capture_2

Speed Control APP

the aim of this application is to control the speed of the car here we connect our application with Bluttooh if we detect the car and the car is on the staright line our Application sends '1' to the hardware so the hardware increase the speed and if we detect the can on the curve we send '0' so the hardware decrease the speed we used image processing techniques to control the speed which are

  • 1- using Hough transform to detect lines
  • 2-apply dilation on hough transform results so the lines becomes wider
  • 3-detect the car (red color) to make it easy for us and to make the aplication faster we assumed that the car is always a red color detection
  • 4-then we check if the car is on the line so increase the speed else decrease
  • 5-we have added some check conditons so it will send '1' or '0' if the state have changed not all the time
  • here is an example of our application detection if the car is on the straight line you will find a white circle inside the object image

    Demo

    Line Follower

    Line.mp4

    Maze [ Scanning ]:

    Maza.mp4

    Contributing

    Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

    • If you have suggestions for adding or removing features, feel free to open an issue to discuss it.

    License

    • The project is open source and released under the MIT License.

    Contributers

    Abdalham Edemad
    Abdalham Edemad
    MUSTAFA Hamzawy
    MUSTAFA Hamzawy
    Abdelrahman Ashraf
    Abdelrahman Ashraf
    Karim Saqer
    Karim Saqer
    Khaled Farahat
    Khaled Farahat
    Rufaida Kassem
    Rufaida Kassem
    Doaa Magdy
    Doaa Magdy
    Asmaa Adel
    Asmaa Adel
    Samaa Hazem
    Samaa Hazem
    Norhan Reda
    Norhan Reda
    Hoda Gamal
    Hoda Gamal

    About

    This project is a line follower and maze solver robot that uses a PID algorithm to navigate through a black line on a white surface. the robot is provided with a mobile application that scans the top view of the line print and adjusts the robot's speed accordingly.

    Resources

    License

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Languages

    • C++ 56.5%
    • Python 43.5%