Robotics NIBM Project - A sophisticated automated sorting and delivery system featuring a smart conveyor belt and a mobile delivery robot.
The Automated Delivery System is designed to streamline the process of measuring, categorizing, and delivering packages based on their physical dimensions. The project consists of two primary modules:
- Conveyor Sender Module: Detects incoming boxes, measures their width and height using ultrasonic sensors, categorizes them, and moves them forward.
- Robot Receiver Module: (Work in Progress) Receives the categorized items and delivers them to their designated destinations.
- Automatic Box Detection: Uses IR sensors to detect when a box enters the measurement zone.
- Precision Measurement: Dual HC-SR04 Ultrasonic sensors for horizontal and vertical dimension calculation.
- Smart Categorization:
- Small (Type A):
<= 3cm - Medium (Type B):
<= 6cm - Large (Type C):
<= 8cm
- Small (Type A):
- Real-time Feedback: I2C LCD (16x2) displays current status, measurements, and box type.
- Industrial Control: PWM-based motor speed control for smooth conveyor operation.
| Component | Purpose |
|---|---|
| Arduino Uno / Nano | Central Control Unit |
| HC-SR04 (x2) | Ultrasonic Distance Measurement |
| IR Obstacle Sensor | Box Detection Trigger |
| L298N Motor Driver | Conveyor Belt Speed & Direction Control |
| I2C LCD (16x2) | Status & Measurement Display |
| DC Gear Motor | Conveyor Belt Power |
| Sensor/Actuator | Arduino Pin |
|---|---|
| IR Sensor | Pin 2 |
| Ultrasonic 1 (Trig) | Pin 4 |
| Ultrasonic 1 (Echo) | Pin 3 |
| Ultrasonic 2 (Trig) | Pin 6 |
| Ultrasonic 2 (Echo) | Pin 5 |
| Motor Speed (ENB) | Pin 9 |
| Motor IN3 | Pin 10 |
| Motor IN4 | Pin A0 |
| LCD I2C | SDA (A4), SCL (A5) |
- Arduino IDE installed.
- Required Libraries:
Wire.h(Built-in)LiquidCrystal_I2C.h
- Clone the repository:
git clone https://github.com/adeshasur/Automated-Delivery-System.git
- Open
Conveyor_Sender/Conveyor_Sender.inoin Arduino IDE. - Select your board and port, then click Upload.
You can adjust the measurement thresholds and empty space values in the Conveyor_Sender.ino file:
int emptySpaceWidth = 9; // Distance to the side wall (cm)
int emptySpaceHeight = 12; // Distance to the top sensor (cm)
int smallBox = 3;
int mediumBox = 6;
int largeBox = 8;- Initial Conveyor logic implementation.
- Box categorization system.
- Implement
Robot_Receivercommunication logic. - Add line-following or obstacle avoidance for the delivery robot.
- Battery level monitoring for the receiver module.
Contributions are welcome! Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed by Adheesha Sooriyaarachchi
