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

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


lesson6

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
lesson6 [2020/02/04 12:26]
golikov
lesson6 [2021/10/18 12:45] (текущий)
golikov [Анализ работы программы]
Строка 17: Строка 17:
  if not mgn_result[0]:​ #Если датчик не вернул сообщение об ошибке  if not mgn_result[0]:​ #Если датчик не вернул сообщение об ошибке
  print mgn_result[1],​ mgn_result[2],​ mgn_result[3]  print mgn_result[1],​ mgn_result[2],​ mgn_result[3]
- sleep(0.05) #​Задержка пять сотых секунды+ sleep(0.05) #​Задержка пять сотых секунды
  ​ magnetometer_turn_off(num) #​Выключение магнитометра  ​ magnetometer_turn_off(num) #​Выключение магнитометра
 </​file>​ </​file>​
- +  
-Код на С.+Код на С.  
 <file c raw_data.c>​ <file c raw_data.c>​
 #include <​stdio.h>​ #include <​stdio.h>​
-#include <​stdint.h>​+#include <​stdint.h> ​    ​
    
 void control(void){ //​Основная программа,​ в которой вызываем остальные функции void control(void){ //​Основная программа,​ в которой вызываем остальные функции
Строка 30: Строка 30:
  int16_t mgn_result[] = {0, 0, 0, 0}; //​Инициализируем mgn_result  int16_t mgn_result[] = {0, 0, 0, 0}; //​Инициализируем mgn_result
  uint16_t num = 1;  uint16_t num = 1;
- magnetometer_turn_on(num);​ //​Включаем магнитометр+ magnetometer_turn_on(num);​ //​Включаем магнитометр ​
  mSleep(1000);​  mSleep(1000);​
  int i;  int i;
- for (i = 0; i < 500; i++) //​Выполним 500 измерений+ for (i = 0; i < 500; i++) //​Выполним 500 измерений ​  ​
  {  {
  mgn_result[0] = magnetometer_request_raw(num,​ &​mgn_result[1],&​mgn_result[2],&​mgn_result[3]);​  mgn_result[0] = magnetometer_request_raw(num,​ &​mgn_result[1],&​mgn_result[2],&​mgn_result[3]);​
Строка 43: Строка 43:
  magnetometer_turn_off(num); ​  magnetometer_turn_off(num); ​
 } }
-</​file>​+</​file> ​  ​
  
 Соедините БКУ с СЭП и магнитометром как на прошлом уроке. Не прикрепляйте магнитометр к пластине,​ чтобы его было удобно вращать. Загрузите программу в Орбикрафт и запустите ее. Хаотично вращайте магнитометр,​ чтобы собрать сырые данные со всех возможных направлений. Соедините БКУ с СЭП и магнитометром как на прошлом уроке. Не прикрепляйте магнитометр к пластине,​ чтобы его было удобно вращать. Загрузите программу в Орбикрафт и запустите ее. Хаотично вращайте магнитометр,​ чтобы собрать сырые данные со всех возможных направлений.
Строка 55: Строка 55:
 <code python>​magnetometer_turn_on(num)</​code>​ – функция включения магнитометра,​ где num – это номер магнитометра. <code python>​magnetometer_turn_on(num)</​code>​ – функция включения магнитометра,​ где num – это номер магнитометра.
 <code python>​magnetometer_request_raw(num)</​code>​ – функция возвращающая сырые данные измеренные магнитометром с номером num, представляющие собой список из 4 числовых значений. <code python>​magnetometer_request_raw(num)</​code>​ – функция возвращающая сырые данные измеренные магнитометром с номером num, представляющие собой список из 4 числовых значений.
-Поэтому считанные данные мы помещаем в список mgn_result, состоящий из 4 значений.+Поэтому считанные данные мы помещаем в список mgn_result, состоящий из 4 значений. ​   
 <code python> <code python>
 mgn_result = [0,0,0,0] mgn_result = [0,0,0,0]
 mgn_result = magnetometer_request_raw(num) mgn_result = magnetometer_request_raw(num)
 </​code>​ </​code>​
 +
 Первое значение списка возвращает информацию об ошибке. Если возвращено значение 0, то ошибки нет, если 1, то датчик не соединен,​ если 2, то ошибка в программе. Первое значение списка возвращает информацию об ошибке. Если возвращено значение 0, то ошибки нет, если 1, то датчик не соединен,​ если 2, то ошибка в программе.
  
-В программе использован оператор цикла for i in range(1000) который будет выполнен 1000 раз, соответственно будет выведено 1000 значений.+В программе использован оператор цикла ​**for i in range(1000)** который будет выполнен 1000 раз, соответственно будет выведено 1000 значений.
  
 Эти значения понадобятся на следующем уроке при калибровке магнитометра. Эти значения понадобятся на следующем уроке при калибровке магнитометра.
Строка 141: Строка 142:
  
 {{::​06image020.png?​nolink&​600|}} {{::​06image020.png?​nolink&​600|}}
 +
 +<note important>​
 +Обратите внимание! Три верхних нормировочных коэффициента,​ отвечающие за смещение ноля, вставляются в формулу с обратными знаками,​ в отличие от остальных коэффициентов,​ описывающих искажения эллипсоида.
 +</​note>​
  
 Код на Python. Код на Python.
lesson6.1580808362.txt.gz · Последние изменения: 2020/03/25 16:29 (внешнее изменение)

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