les08 [ОрбиКрафт 3D]

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


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

Назначение ОрбиКрафт 3D

Сборка ОрбиКрафт 3D

Интерфейсы конструктора ОрбиКрафт 3D

Работа с ОрбиКрафт 3D по УКВ

Работа с ОрбиКрафт 3D по Wi-Fi

Работа с ОрбиКрафт 3D через WEB-интерфейс

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

ОрбиКрафт 3D (трехосный) на стенде полунатурного моделирования

Среда разработки

РЭ Houston Control Center

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

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

les08

07 Урок. Калибровка датчика угловой скорости (ДУСа)

По умолчанию ДУС не откалиброван и выдает неточные значения.

Более подробно ознакомиться с работой датчика угловой скорости (ДУС) вы можете по ссылке: 02 Урок. Знакомство с датчиками.

Для его калибровки и дальнейшей точной работы можно воспользоваться программой ниже.

Код на C++.

gyro_calib.c
#include <stdio.h>
#include <stdint.h>
#include "libschsat.h"
 
void control(void){
 
    float gyro_x = 0, gyro_y = 0, gyro_z = 0;
    uint16_t tmp=0;
 
    Sleep(1);    
    gyro_set_offset(tmp, gyro_x, gyro_y, gyro_z);
    Sleep(1);
    gyro_request_raw(tmp, &gyro_x, &gyro_y, &gyro_z);
    printf("Before fix:\n %f %f %f", gyro_x, gyro_y, gyro_z);
    Sleep(1);
    gyro_set_offset(tmp, gyro_x, gyro_y, gyro_z);
    Sleep(1);
    gyro_request_raw(tmp, &gyro_x, &gyro_y, &gyro_z);
    printf("\nAfter fix:\n %f %f %f \n", gyro_x, gyro_y, gyro_z);
    uint8_t data[0];
    send_unican_message(25, 2656, data, 0);
}

Код на Python

gyro_calib.py
from libschsat import Libschsat
import time
 
lib=Libschsat()
 
time.Sleep(1)
lib.gyroSetOffset(0, 0, 0)
time.Sleep(1)
gyro_x, gyro_y, gyro_z=lib.gyroRequestRaw(2)
print('Before fix' + str(gyro_x) + ';' + str(gyro_y) + ';' + str(gyro_z))
lib.gyroSetOffset(gyro_x, gyro_y, gyro_z)
time.Sleep(1)
lib.gyroRequestRaw(gyro_x, gyro_y, gyro_z)
print('After fix' + str(gyro_x) + ';' + str(gyro_y) + ';' + str(gyro_z))
lib.sendMsgAndWaitAnswer('0xA60','0xF','0x19',0,[],'0x118')
les08.txt · Последние изменения: 2023/03/10 14:33 — maria.milkina

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