Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helmholtz Cage Functionality #16

Open
andrewgreenberg opened this issue Nov 7, 2023 · 0 comments · Fixed by #20 or #19
Open

Helmholtz Cage Functionality #16

andrewgreenberg opened this issue Nov 7, 2023 · 0 comments · Fixed by #20 or #19
Assignees
Labels
enhancement New feature or request

Comments

@andrewgreenberg
Copy link
Member

andrewgreenberg commented Nov 7, 2023

Here is the proposed functionality that we're going to need for the Helmholtz Cage (HC) to work.

Overview

The Basilisk Astrodynamics Simulator is going to simulator OreSat0.5 in low earth orbit. It's going to simulate the position and attitude of the satellite. From position and attitude, we can come up with a magnetic field strength and direction that we can apply to OreSat0.5 inside the HC. The magnetometers can then measure this field, and deduce the orientation. We hope down to a degree or so. Then OreSat0.5 can fire up its magnetorquers (MTs) and torque against this field, which we hope to measure using a sensitive torque meter. This will demonstrate end-to-end operation of our magnetic attitude control. We can perhaps get more complicated later by simulating the torque in Basilisk, or by actually rotating the satellite on an air bearing.

Proposed Steps to get there

  1. Control the current in the coils
    1. Identify the serial ports for each power supply so we can identify which is the X, Y, and Z power supplies.
    2. Talk to each power supply and set the voltage and current, and on/off state, for each supply.
    3. Reverse the supply current by talking to the Arduino Nano that runs the X, Y, and Z H bridges.
    4. Now turn this into a driver or function that takes in a current, and runs the power supplies and H bridges correctly
  2. Get the data from the Magnetometer (MAG)
    1. The three axis magnetometer is read by the Arduino nano and thrown out the serial port. Grab this data.
  3. Calibrate the coils
    1. Write a calibration script that enables us to calibrate the relationship between coils in the wire and the magnetic field in the cage. For example: with the coils off, read and average the local magnetic from the magnetometer. Then ramp each coil from -1A to +1A in steps of 100 mA and read the magnetometer at each point. Use scipi to fit a line to this ramp, and solve for the Y=AX+B ramp for the transfer function between current (X) and measured magnetic field (Y), including the local magnetic field offset (B).
  4. Control the HC magnetic field
    1. Use this calibration to set the magnetic field inside the cage to any arbitrary value given by a set of magnetic field strengths (e.g., X,Y,Z).
  5. Let Basilisk run the HC
    1. Work with the Basilisk wranglers to get the magnetic field strength (X,Y,Z fields) from basilisk. Probably over the network, but it doesn't matter how it gets there. We can use the Raspi, or we can even plug the system right into the MDC. Don't care.
    2. Continuously run the HC based off of the Basilisk data.
@andrewgreenberg andrewgreenberg added the enhancement New feature or request label Nov 7, 2023
@andrewgreenberg andrewgreenberg changed the title Next steps on the HC. Helmholtz Cage Functionality Mar 7, 2024
@danielkm-ee danielkm-ee self-assigned this Sep 29, 2024
This was linked to pull requests Sep 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

4 participants