Skip to content

Gojodzojo/cansat-control-panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CanSat Control Panel

CanSat Control Panel (CSCP) is an application prepared for the 2021 CanSat competition. It was made in order to control the satellite, receive or generate data with simulator and to save it. This data can be displayed in a 3D environment, in a graph or in the form of a table in real time during simulation or satellite flight. It is also possible to open any number of windows displaying this data. During the cansat flight we could use the laptop’s screen to control the satellite and on an additional, bigger monitor we could display all of its parameters.

Application modes

The application can work in the following modes

  1. The simulation mode:

    In this mode, it is possible to simulate a cansata flight in order to be able to improve its control algorithms in a virtual environment, without a need of testing with the use of an actual satellite, It is possible to adjust the weather conditions like, wind force, wind direction or atmospheric pressure. Video: https://youtu.be/wQS2Nhe1ypg

  2. The ground station mode:

    In this mode, the application connects via serial communication with the microcontroller of the ground station, which receives data from the satellite using an antenna and sends it to the computer. Then, the data will be processed and used in the software. It is also possible to send commands to the satellite telling it to change the operating mode and add points or azimuth to which the satellite is to be directed. Video: https://youtu.be/yi5yU3P8Hdk

  3. The player mode:

    In this mode it is possible to playback previous flights from data received by the ground station, saved on a SD card by satellite or generated by simulator.

Used technologies

The simulation part is built with the C language and compiled to WebAssembly, which made it easier to integrate with the frontend part while maintaining high efficiency. Data from the transceiver is received with Web Serial API. The satellite steering algorithm can be compiled directly from the satellite code. Thanks to that we do not need to write it for satellite and simulator separately.

The user interface is made with React.js framework, TypeScript language compiled to javascript and Sass compiled to css. Graphs are made with the react-vis library. We thought we had to replace it with another one based on HTML5 canvas element, as the current one is based on SVG graphics, which makes updating the chart with new data very slow with large amounts of data, however it was only a problem in simulation mode when the application received data in short intervals of time (less than one second). It is not a case in station mode, because it receives data once a second.

3D environment, in which satellite is displayed with the help of Unity Engine along with C# language. It is compiled to WebGL version and used in the React app.