This project is a Computer Aided Design (CAD) project where we designed and controlled a one degree-of-freedom (1 DOF) Vertical Take-Off and Landing (VTOL) benchmark. We made the mechanical design using Solidworks and we built the physical model using cardboard and designed a circuit on Proteus ISIS that connects two mini motors and a gyroscope to an ESP32 microcontroller. The ESP32 acts as a Wi-Fi server and sends the acquired data over TCP to LabVIEW, where the received data is visualized, PID is calculated, and the motors are controlled. We have a manual mode without the use of PID, and we manually tuned the PID coefficients to achieve a good step response.
demo.mp4
Note: The detailed diagrams can be found in the diagrams/
directory.
To build and run this project, you will need the following:
- Solidworks for CAD design
- Proteus ISIS for circuit design
- ESP32 microcontroller
- LabVIEW for data visualization and control
To install and run the project, follow these steps:
- Clone this repository to your local machine
- Open the ESP32 code in PlatformIO IDE, replace the
ssid
andpassword
with your ssid and password then upload the code to your ESP32 and make sure that it connects the the WiFi, that the gyro is recognized and the motors are working (Motor 1 should spin then Motor 2 for a bit when the code starts running if everything is in order). - Open the LabVIEW VI and replace the IP Adress with your ESP32 IP adress (It's possible to make the IP adress static using the
STATIC_IP
flag) then run the VI. - If everything is setup correctly, The data should start streaming to the LabVIEW VI, where it can be visualized and controlled
- (Optional) Reset the ESP32 when you need to calibrate the gyro.
This repository contains the following files and directories:
ESP32_code/
: Contains the code for the ESP32 microcontrollerLabVIEW_VI/
: Contains the LabVIEW VI used for data visualization and controlvideo/
: Contains the video of the benchmark showing the step response
To run the project, follow the steps in the Installation section. Once the ESP32 and LabVIEW VI are running and connected, you can use the LabVIEW VI to visualize the data and control the system.
We welcome contributions from everyone! Please see our CONTRIBUTING.md
file for details (will be updated soon).
If you have any questions or need help figuring out something, you can contact us anytime:
- Moemen Ben Hamad: LinkedIn | moemen.benhamad@insat.ucar.tn
- Bilel Bekalti: LinkedIn | bilel.bekalti@insat.ucar.tn
- Khalil El Amine: LinkedIn | khalil.elamine@insat.ucar.tn
- Yassine Fendi: LinkedIn | yassine.fendi@insat.ucar.tn
This project is licensed under the MIT License - see the LICENSE.md
file for details.