This project focuses on designing a smart factory system that automates the sorting of objects based on their shape, specifically targeting recycling processes. The system consists of two main subsystems: a conveyor belt system and a smart robot. The conveyor belt system sorts objects using a camera and IR sensors, while the smart robot transports sorted objects to designated locations.
- Project Idea
- Project Tasks
- Project Goals
- Problem Description
- Components
- System 1: Conveyor Belt System
- System 2: Smart Robot
- Hardware Realization
- Project demo
- OpenCV Algorithm
- Schematics and Signal Response
- Code
- Data Acquisition
- Bonus Images
- References
The project aims to automate the sorting of objects in a factory setting, particularly for recycling purposes. The system uses a conveyor belt with a camera to detect object shapes and IR sensors to sort objects into different categories. A smart robot is used to transport sorted objects to their designated locations.
- Create a conveyor belt system with two belts.
- Develop a program to control the conveyor belt movement.
- Implement a camera program to recognize object shapes and IR sensors.
- Design a smart robot with a 7-segment display for object transportation.
- Familiarize with System-on-Chip (SoC) integrated circuits and FPGA platforms.
- Explore the Raspberry Pi microprocessor and its applications.
- Solve real-world problems related to object sorting and recycling.
The system sorts objects based on their shape using a camera and IR sensors. Objects are placed on a conveyor belt, and the camera detects their shape. If the object is a bottle, it is sent to the right belt for recycling. Otherwise, it is sent to the left belt for disposal. A smart robot transports the sorted objects to their designated locations.
- 2 DC Motors
- 2 IR Sensors
- Raspberry Pi Camera Module 2
- Raspberry Pi Board
- 7-Segment Display
- Ultrasonic Sensor
- FPGA Cyclone V
- Parallax Boe-Bot Robot
- Ultrasonic Sensor
- 3 TCRT5000 IR Sensors
- Micro Servo 590 Motor
- 2 Parallax Continuous Rotation Servo Motors
- The camera detects the object shape.
- If the object is a bottle, it is sent to the right belt for recycling.
- If the object is not a bottle, it is sent to the left belt for disposal.
- The 7-segment display shows the number of sorted bottles.
- The system stops if the robot is not in the correct position.
- Camera: Detects object shapes.
- IR Sensors: Detect objects on the conveyor belt.
- DC Motors: Control the conveyor belt movement.
- 7-Segment Display: Shows the number of sorted bottles.
- Ultrasonic Sensor: Detects the robot's position.
- The robot waits for the ultrasonic sensor to detect an object.
- The robot follows a line using IR sensors to transport the object.
- The robot unloads the object and returns to its original position.
- IR Sensors: Detect the line for navigation.
- Ultrasonic Sensor: Detects objects in the robot's container.
- Servo Motors: Control the robot's movement and unloading mechanism.
The hardware setup includes the conveyor belt system and the smart robot. The conveyor belt system is controlled by a Raspberry Pi, while the smart robot is controlled by an FPGA Cyclone V.
Check out the demo video below:
The OpenCV algorithm is used for object detection. The system uses a pre-trained Deep Neural Network (DNN) model to detect objects such as bottles and cups. The camera captures images, and the DNN model processes them to identify objects.
- Schematic: The conveyor belt system is connected to the Raspberry Pi, with IR sensors and DC motors controlling the belt movement.
- Signal Response: The system's response to IR sensor inputs is visualized using MATLAB.
- Schematic: The smart robot is connected to the FPGA Cyclone V, with IR sensors and servo motors controlling its movement.
- Signal Response: The robot's movement and sensor responses are visualized using Arduino's serial plotter.

The code for the conveyor belt system is written in Python and runs on the Raspberry Pi. It controls the camera, IR sensors, and DC motors.
The code for the smart robot is written in Verilog and runs on the FPGA Cyclone V. It controls the IR sensors and servo motors.
Data acquisition is performed using MATLAB for the conveyor belt system and Arduino's serial plotter for the smart robot. The data includes IR sensor readings and motor responses.
The project includes several images showing the system in action, including the terminal output and camera feed.

- Intel Cyclone V FPGA
- Raspberry Pi Documentation
- OpenCV Documentation
- Parallax Boe-Bot Robot
- TCRT5000 IR Sensor
This README provides an overview of the Smart Factory project, including its components, logic, and implementation. For more details, refer to the full project documentation.

