User Tools

Translations of this page:

Site Tools


en:w_subsys

This is an old revision of the document!


Angular velocity sensor

Virtual power draw: 40 mA

 ДУС

The angular velocity sensor (AVS) enables measurement of momentary angular velocities of orbiter rotation around three axes. Depending on sensor location, one of these indications, namely the speed of rotation around the thread, will be critically important for controlling the orbiter, while the other two can be used to track oscillations of its mass center relative to the local vertical thus also providing aids for control.

Readings of angular velocity provided by the sensor are scaled at 0.00875 deg/s per RAW unit (see hyro_request_raw in the function library).

Sample C Test Code for the Angular Velocity Sensor

hyro_test.c
#include "libschsat.h"
 
int control(){
	uint16_t num = 1;  	// Номер Датчика угловой скорости
	int16_t hyro_result[] = {0, 0, 0, 0};
	printf("Enable angular velocity sensor № %d", num); 
	hyro_turn_on(num); 						// Включаем ДУС
	Sleep (1);							//Ждем включения 1 секунду
	printf("\nGet RAW data from angular velocity sensor\n");
 
	int i;
	for (i = 0; i < 10; i++) { 		//Считываем показания 10 раз 
	hyro_result[0] = hyro_request_raw(num,& hyro_result[1],& hyro_result[2],& hyro_result[3]);
 
	if (!hyro_result[0])
		{
			printf("state: %d", i);
			printf(" x_raw = %d", hyro_result[1]);
			printf(" y_raw = %d", hyro_result[2]);
			printf(" z_raw = %d\n", hyro_result[3]);
 
		}
		else if (hyro_result[0] == 1)
		{
			printf("Fail because of access error, check the connection");
		}
		else if (hyro_result[0] == 2)
		{
			printf("Fail because of interface error, check your code");
		}
		Sleep(1);
 
	}	
	printf("\nDisable angular velocity sensor № %d\n", num);
	hyro_turn_off(num);	
	return 0;
}
en/w_subsys.1579501282.txt.gz · Last modified: 2020/03/25 16:29 (external edit)