- Juan Torres
- Cielo Anahel Torres
- William Summerlin
- Daniel Martin
- Abygail Kapunan
- Alex Irimie
- Joshua Kaplan
The goal of this project is to develop a compact and accessible experiment platform capable of simulating microgravity conditions for short periods of time. The use cases for this product include research within aerospace, electronic components, medicine, physics, chemistry, and other fields where the behavior or characteristics of the test subject need to be studied under microgravity conditions. Current solutions for simulating microgravity include drop towers, parabolic flights using an airplane or small rocket, or launching the experiment into space on a satellite. These solutions are very expensive, time consuming, and may be out of reach for research operating under a limited budget.
- Must have a raspberry pi (we used a pi 5) hosting a local network
- Code from this repository must be running on the raspberry pi
- !! WILL put something here about connecting via flight planner
main.py - This file contains the main freefall and data logging code
server.py - This file runs a local http server on the raspberry pi on port 8000 which lets you easily pull data files from it without using shell commands
fix.sh - This file ensures that the filesystem is read/write. This file should be run if you get an error when running main.py menioning a "read-only file system"
clear_csv.sh - This file clears the csv folder, deleting all flight log data.
Run using sudo python main.py. This file establishes a mavlink connection to the flight controller of the drone, pulls IMU and GPS data from the drone as well as monitoring the freefall trigger channel from the RC receiver. When the freefall trigger is reached, the freefall sequence begins which shuts off the motors, waits for a set delay time, and then turns the motors back on.
This code has some known issues/inconveniences.
- There is some unwanted delay on motor startup after freefall sequence. We determine experimentally that there is a ~2 second startup delay from the anticipated motor start time to when they actually spin up. This means that motors start up after they should and has lead to crashes.
- The naming of output csv data files might be random-like. The names of the output files come from the onboard date and time on the raspberry pi which, when not connected to wifi, can (and likely is) innacurate. Therefore, keeping track of the most relevant data files can be challenging.
Run using sudo python server.py. This file creates a locally hosted server to provide easy access downloads for data files created during flights. This server is hosted on port 8000 of the network and can be accessed at {rpi_ip_addr}:8000
There are two main shell scripts we created to assist in running the raspberry pi code.
- fix.sh
- clear_csv.sh
Occasionally, the filesystem on our raspberry pi would revert to read-only which would prevent main.py from creating and editing csv files. This shell script changes the filesystem to read-write. Running this won't break anything so if you're unsure, just run it anyways. It can be run using sh fix.sh
Due to the quirk mentioned in the main.py section, it can be beneficial to clear the csv folder regularly. This script clears the csv folder for you. It can be run by using sh clear_csv.sh
sh fix.shsh clear_csv.shsudo python main.pysudo python server.py(after flight)