This project leverages the STM32F103C8T6 Bluepill microcontroller and the libopencm3 library to create an advanced conveyor belt system with adjustable speed and height-based object detection.
In this project, the development of a conveyor belt will be carried out. It will be developed on a STM32, and will also be implemented in practice. This one, by means of its peripherals, will be in charge of managing the speed of the belt, stop by means of a sensor, among other things.
To achieve the correct functioning of the conveyor belt.
Implement the project by means of modules.
Get the modules themselves to run correctly.
Join modules that are already running.
Create a readable and easy to understand code.
As you can see from the issue assignments, everyone has personal assignments, as you can also see issue more than one to work on and move forward together.
We will work with defined meetings to have a feedback and progress of each one, generate new ideas, help if necessary, raise new steps and tasks for each one. Having this feedback helps us to move forward with clarity, to be in constant communication and to achieve our objectives.
Functional requirements:
The system must control the conveyor belt speed using a motor with closed-loop PID control.
A potentiometer must be used to set the speed setpoint, and its value must be read by the STM32 ADC.
The actual speed of the motor must be measured using an encoder connected to an external interrupt (EXTI) of the STM32.
The PWM generated by the STM32 must control the power delivered to the motor, allowing the belt speed to be adjusted according to the setpoint defined.
The system shall use an ultrasonic sensor, connected to the timer capture function of the STM32, to measure the height of the objects passing through the conveyor.
It shall take 10 samples of the object height, calculate their average and store the value in a buffer.
If the average object height exceeds a predefined limit, the system should stop the conveyor and show a ‘REJECTED’ message on the display.
A 16x2 LCD display, controlled via the I2C protocol, shall be shown in the first row:
The measured height of the object in real time, or the message ‘WAITING’ if there is no object.
In the second row of the display, it must show:
‘PASS’ for 3 seconds if the measured height is within the allowed limit.
‘REJECTED’ if the measured height exceeds the limit.
The data transfer to the display shall use DMA to reduce the workload on the main processor of the STM32.
Non-functional requirements:
The system must employ DMA for data transfer to the display, thus optimising the use of the STM32 processor and minimising unnecessary interruptions.
Head measurements must be performed in real time without affecting motor and PID control.
The PID algorithm must be optimised to ensure motor speed accuracy, responding appropriately to setpoint changes and compensating for speed fluctuations.
The ultrasonic sensor readings must be stable, so the average of 10 samples must provide a reliable value of the object height.
The system must have a fast response time in both height measurement and belt speed adjustment, ensuring smooth and continuous operation.
The system must stop the conveyor safely if an object with a height outside the permitted limit is detected, ensuring that operation is interrupted in potentially dangerous situations.
The LCD display must show information clearly, with accurate status messages and adequate display times to avoid confusion for the system operator.
FreeRTOs will be sought in the implementation of the work.
Project Plan
In this project, the development of a conveyor belt will be carried out. It will be developed on a STM32, and will also be implemented in practice. This one, by means of its peripherals, will be in charge of managing the speed of the belt, stop by means of a sensor, among other things.
As you can see from the issue assignments, everyone has personal assignments, as you can also see issue more than one to work on and move forward together.
We will work with defined meetings to have a feedback and progress of each one, generate new ideas, help if necessary, raise new steps and tasks for each one. Having this feedback helps us to move forward with clarity, to be in constant communication and to achieve our objectives.
Functional requirements:
Non-functional requirements: