aditsachde / ece4180finalproject

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ece4180finalproject

By Micaiah Adeoba(A), Lindsey Lubin (A), Adit Sachde (A)

About

Centralized AHRS System

We were tasked with designing a project utilizing the skills and knowledge taught in ECE 4180 Embedded Systems.

Our project is based loosely on the Georgia Tech Experimental Rocketry (GTXR) team's flight computers, which utilize a ethernet network onboard the rocket. This network is also connected to the ground network while on the launch pad.

Our implementation uses IMU and an ethernet connection to display the real time attitude of the mbed device on a website, and provides an API to allow other devices to query and use the current attitude. Many systems require access to the attitude of the launch vehicle, however the IMUs used are very expensive. This setup allows a single IMU to be used without sacrificing access to data.

Features

  • Obtains the orientation of the device, using a Madgwick to fuse the various sensors on the LSM9DS1 chip and get better data.

  • Displays the website over an ethernet link between a PC and the mbed. This website displays the orientation of the mbed as calculated by the Madgwick filter. It also has a refresh mechanism to ensure that the orientation is automatically updated without requiring user interaction.

  • Provides an API, used by the example terminal based project in the api_demo folder.

Hardware

  • MBED Microcontroller LPC1768

image

image

image

image

image

Schematic and Final Design

image

image

Software

  • Madgwick Filter
    • This filter is implemented with C++ classes, making it far easier to integrate into other programs.
  • HTTP server
    • The server implements both GET and POST requests.
    • GET is used to serve the website
    • POST is used to provide the realtime API
  • Remote Access
    • Utilizes Cloudflare tunnel, running on a PC with network access to the mbed as a bridge.
    • This solution also allows the website to be accessed with a url (https://aprs.koven.dev) instead of an IP address.

Website Demo

image

Results

  • The filter provides accurate data for pitch and yaw
    • The filter does not integrate the magnetometer, resulting in an inaccurate roll axis. This is because the axis is perpendicular to the gravity vector.
    • The filter lags slightly. It stabilizes to the correct attitude, but could stablize faster if it was better tuned to the particular hardware.
  • API is simple and easy to use
    • It does not use the most appropriate HTTP method, but is an acceptable tradeoff for simplicity of implementation.

About


Languages

Language:C++ 57.0%Language:Rust 34.8%Language:C 8.2%