An open API service indexing awesome lists of open source software.

https://github.com/ferasaljoudi/elevatorcontrolsystem

This project was a lab assignment for ENSE 452 class
https://github.com/ferasaljoudi/elevatorcontrolsystem

c freertos-task gpio stm32cubeide stm32f103rbt6 usart

Last synced: about 2 months ago
JSON representation

This project was a lab assignment for ENSE 452 class

Awesome Lists containing this project

README

        


Elevator Control System


This project was a lab assignment for ENSE 452 class




Description


The goal of this project is to design an elevator control system using the STM32 Cortex-M3 board with FreeRTOS and hardware interrupts. The system includes a CLI for user interaction to control elevator operations such as floor selection, door opening, door closing, and maintenance mode activation.




Technologies Used




C


Stm32


STM32Cube




Objectives


- Using the STM32 Cortex-M3 hardware peripherals (GPIO, USART2, Timer2).
- Implement a multitasking environment with FreeRTOS.
- Enable inter-task and ISR-task communication via FreeRTOS queues.
- Provide a user-friendly CLI for runtime control and testing.




Features


1. CLI Commands:

- `1`, `2`, `3`, `4`: Select floors.
- `o`, `c`: Open and close doors.
- `M`: Activate maintenance mode.

2. Tasks:

- `StatusWindowTask` Increase the time per seconds and update the status window (Top side of terminal).
- `ProcessUserInputTask` Handles user input via CLI.
- `StartDefaultTask` Manages emergency button states.

3. Interrupts:

- `Emergency Button` Triggered by EXTI0_IRQHandler to enter emergency mode.
- `UART Communication` Processes user commands.




Resources

### [Milestone.pdf](./Milestone.pdf) outlines the completed work in the first phase and future tasks for the final phase.

### [ElevatorProject.pdf](./ElevatorProject.pdf) outlines the completed work in the final phase.