Инструменты пользователя

Перевод этой страницы:

Инструменты сайта


Боковая панель

Для чего нужен ОрбиКрафт

Подсистемы конструктора

Инструкции по работе с ОрбиКрафт

Уроки

Лабораторная оснастка

Знакомство с Arduino

Полезная нагрузка на базе Arduino

Обратная связь

Новости

w_subsys

Датчик угловой скорости

Виртуальное потребление - 40мА

 ДУС

Рисунок 1. Датчик угловой скорости

Датчик угловой скорости (ДУС) позволяет измерять текущие угловые скорости аппарата по трем осям (рисунок 1). В зависимости от места установки датчика одно из этих показаний, а именно - скорость вращения вокруг нити - будет критически важным для управления аппаратом, а два других помогут оценить колебания его центра масс относительно местной вертикали, что также может быть использовано в управлении.

Угловая скорость, определяемая датчиком, равняется 0.00875 градусам/секунду на одну единицу RAW (см. библиотеку функций, hyro_request_raw).

Пример кода проверки датчика угловой скорости на языке C

  #include "libschsat.h"
 
  /*
  ** Lab 3: get a raw data from a hyro
  */
  void control(void)
  {
  	int i;
  	const int num = 1;	/* hyro #1 */
  	printf("Enable hyro #%d\n", num);
  	hyro_turn_on(num);
      	Sleep(1);
  	printf("Get RAW data from hyro #%d\n", num);
  	for (i = 0; i < 10; i++) {
  		int16_t x, y, z;
  		if (LSS_OK == hyro_request_raw(num, &x, &y, &z)) {
  			printf("%d: x=%d y=%d z=%d\n", i, x, y, z);
  		} else {
  			puts("Fail!");
  		}
    		Sleep(1);
  	}
  	printf("Disable hyro #%d\n", num);
  	hyro_turn_off(num);
  }

Пример кода проверки датчика угловой скорости на языке Python

  def control(): # Основная функция программы, в которой нужно вызывать остальные функции
	  hyro_result = [0,0,0,0] # Инициализируем hyro_result
	  num = 1 # Номер ДУС
	  print "Enable angular velocity sensor №", num 
	  hyro_turn_on(num) # Включаем ДУС
	  sleep(1) # Ждем включения 1 секунду
	  print "Get RAW data from angular velocity sensor"  
	  for i in range(10):  #Считываем показания 10 раз
		  hyro_result = hyro_request_raw(num) #записываем ответ функции hyro_request_raw в переменную hyro_result
		  if not hyro_result[0]: # если датчик не вернул сообщение об ошибке,
			  print "state:", hyro_result[0], "x_raw =", hyro_result[1], "y_raw =", hyro_result[2], "z_raw =", hyro_result[3] # Выводим данные
		  elif hyro_result[0] == 1: # если датчик вернул сообщение об ошибке 1
			  print "Fail because of access error, check the connection"
		  elif hyro_result[0] == 2: # если датчик вернул сообщение об ошибке 2
			  print "Fail because of interface error, check your code"
		  sleep(1) # Показания считываются раз в секунду
 
	  print "Disable angular velocity sensor №", num
	  hyro_turn_off(num)   # Выключаем ДУС
w_subsys.txt · Последние изменения: 2022/03/15 14:06 — ekaterina.manucharova

Инструменты страницы