Skip to content

SikandarAman/ShadowHawk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Udan Khatola

This project is being coordinated by the Aeromodelling Club, Indian Institute of Technology Ropar. The aim of this project is to design and build an RC plane from scratch. This documentation might not be up-to-date with the code for some time till the project has been successfully completed.

For this project, we are using the ESP32 Dev board as our flight controller. We implemented I2C communication for obtaining accelerometer data from the MPU6050 Module. This data was used to turn the servos for ailerons and elevators appropriately in order to correct the pitch and roll caused by external factors. The servos also employ a PID controller to regulate these values.

This project is based on our submission for a competition organized by the Aeromodelling Club, Indian Institute of Technology Ropar from December 2023 to January 2024. The submission has been preserved in another branch of its own. To view the submission code and documentation, check out the submission branch.

File Structure

The root folder of the project consists of the following files:

  • .vscode/arduino.json: Configuration for the Arduino extension on VS Code.
  • docs: References
  • lib:
    • Gyrosensor.h: Abstraction layer for using the MPU6050 Accelerometer/Gyroscope module.
    • Kalman.h: The kalman filter.
    • PID.h: Custom implementation of PID Controller.
  • model:
    • Model.blend: Blender model for the skeletal structure of our RC Plane design.
    • Model.png: A rendered image of the design.
  • .gitignore: A list of files to exclude from git. These are just VS Code configuration files.
  • TODO.md: The task planning and distribution.
  • Udan-Khatola.ino: The main code for running on the ESP32 board.

Code explanation

The code is very intuitive and well commented so that it is easy to understand. Here's a summary of the code and workflow:

lib/GyroSensor.h

gyrosensor

lib/PID.h

pid

Udan Khatola.ino

arduino

Third Party Libraries used

The code uses mostly the standard arduino library for all its tasks, but a few features could be better implemented using libraries available on arduino's library manager.

  • The communication with the MPU6050 module has been established through the inbuilt Wire.h library.
  • Servo motors are controlled using the ESP32Servo.h library by John K. Bennett, Kevin Harrington.

The Team

The team consisted of first year undergraduate students at Indian Institute of Technology Ropar:

And a previous contributor:

About

Just Learning

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 100.0%