This repository contains the source code and documentation for my obstacle avoidance car project.
Welcome to My Obstacle Avoidance Car project! This project aims to create an autonomous car capable of navigating its environment and avoiding obstacles using a set of sensors. Whether you are a robotics enthusiast, a hobbyist, or a developer interested in autonomous systems, this project provides a hands-on experience in building and customizing an obstacle avoidance car. The project has been done on a very minimalistic way such that it stays beginner friendly.
- Autonomous navigation: The car is designed to operate without direct human control, making decisions based on sensor input and taking its own decisions.
- Obstacle avoidance: The detection of obstacle is mainly done on the basis of Ultrasonic sensor.
- Customizable: The project is open-source and encourages users to customize the code, add new features, or experiment with different sensors and configurations.
Our primary goals for this project include:
- Creating a reliable obstacle detection and avoidance system.
- Providing a user-friendly interface for customization and configuration.
- Building a project that caters as the starting of hardware programming to the beginners.
To get started with the project, check out the Setup section for information on hardware requirements, software installation, and configuration.
Setting up the obstacle avoidance car involves configuring both the hardware and software components. Follow the steps below to ensure a smooth setup process.
Before you begin, make sure you have the following hardware components:
- Microcontroller: I have used Arduino Uno Rev 3 (you can use the cheaper version clone vesion, no effect on processing)
- Motors: 2 3V Hobby Motors, 1 SG-90 Servo Motor, , AdaFruit L293D Motor Driver Shield
- Sensors: Ultrasonic Sensor
- Chassis: I have not used any dedicated chassis rather created it with simple cardboard
- Power Supply: 2* 18650 Li Batteries 3.7V 2000mAh
Ensure you have the necessary software installed on your development machine:
- Arduino IDE: https://www.arduino.cc/en/software
- Any additional dependencies or libraries: <AFMotor.h> , <Servo.h>
Follow these steps to set up the obstacle avoidance car:
- Clone the Repository:
git clone https://github.com/Krishanu-007/Obstacle-Avoidance.git
cd Obstacle-Avoidance
The obstacle avoidance car is ready to use once you have successfully set up the hardware and installed the required software. This section provides instructions on how to run the car in autonomous mode and outlines customization options.
To start the obstacle avoidance car in autonomous mode, follow these steps:
-
Power On:
- Ensure that the obstacle avoidance car is powered on.
-
Place in an Open Area:
- Position the car in an open area with enough space for it to navigate.
-
Start the Program:
- Upload the code and disconnect the usb cable from the arduino and connect the external power supply to the shield and connect the jumper on the shield
-
Observe Autonomous Navigation:
- The car should now navigate autonomously, detecting obstacles and adjusting its path accordingly.
The obstacle avoidance car project is designed to be customizable. Here are some ways you can tailor the project to your preferences:
Adjust parameters in the configuration files to customize the behavior of the car. These may include:
- Sensor sensitivity: Modify the sensitivity of obstacle detection sensors.
- Movement parameters: Tune parameters related to the car's speed, turning radius, etc.
Explore opportunities to enhance the project by adding new features, such as:
- Additional sensors: Integrate new types of sensors for improved obstacle detection.
- LED indicators: Add visual indicators to signal different states of the car.
Feel free to experiment with different hardware configurations:
- Upgrading motors: Swap out motors for higher torque or speed.
- Enhancing power supply: Upgrade the power supply for improved performance.
Congratulations! You have successfully run the obstacle avoidance car in autonomous mode. If you want to contribute or explore advanced features, head over to the Contributing section for guidelines.
We welcome contributions from the community to enhance and improve the obstacle avoidance car project. Whether you're a developer, hobbyist, or enthusiast, your input is valuable. This section outlines ways to contribute, report issues, and submit enhancements.
If you encounter any bugs or unexpected behavior, please help us by reporting it. Follow these steps:
-
Check Existing Issues:
- Before reporting a new issue, check the existing issues to see if the problem has already been reported.
-
Create a New Issue:
- If the issue is not already reported, create a new issue.
- Clearly describe the problem, including steps to reproduce it.
-
Provide Additional Information:
- Include information about your hardware setup, software versions, and any error messages.
If you have ideas for new features or improvements, we encourage you to submit a feature request. Follow these steps:
-
Check Existing Requests:
- Check the existing feature requests to avoid duplicates.
-
Create a New Request:
- If your idea is not already suggested, create a new feature request.
- Provide a detailed description of the proposed feature and its benefits.
We appreciate contributions in the form of pull requests. Follow these steps to submit a pull request:
-
Fork the Repository:
- Fork the repository to your GitHub account.
-
Clone Your Fork:
- Clone your fork to your local machine:
git clone https://github.com/Krishanu-007/Obstacle-Avoidance.git cd Obstacle-Avoidance
- Clone your fork to your local machine:
-
Create a New Branch:
- Create a new branch for your changes:
git checkout -b feature-name
- Create a new branch for your changes:
-
Make Changes:
- Implement your changes and test them thoroughly.
-
Commit Changes:
- Commit your changes with clear, concise commit messages:
git add . git commit -m "Add feature-name"
- Commit your changes with clear, concise commit messages:
-
Push Changes:
- Push your changes to your fork:
git push origin feature-name
- Push your changes to your fork:
-
Submit Pull Request:
- Submit a pull request from your branch to the main repository.
- Provide a detailed description of your changes.
I appreciate your contributions and look forward to making the obstacle avoidance car project even better together!
The obstacle avoidance car project is licensed under the MIT License.