#acl BecariosGrupo:delete,read,write,admin All:read #format inline_latex Después de una larga búsqueda de sensores, analizando las características y la disponibilidad de estos, se consiguieron los siguientes sensores. == Gyro == === ITG-3200 === Gyro de 3 ejes. [[http://www.sparkfun.com/datasheets/Sensors/Gyro/PS-ITG-3200-00-01.4.pdf | Hoja de datos]] [[http://www.sparkfun.com/commerce/product_info.php?products_id=9801 | Página de SparkFun]] [[http://www.sparkfun.com/datasheets/Sensors/Gyro/IDG-3200-ATmega328-4-30-10.zip | Código de ejemplo]] Este gyro tiene interfaz I2C. ==== Explicación de los Registros ==== ||'''Addr Hex'''||'''Addr Decimal'''||'''Register Name'''||'''R/W'''||'''Bit7'''||'''Bit6'''||'''Bit5'''||'''Bit4'''||'''Bit3'''||'''Bit2'''||'''Bit1'''||'''Bit0'''|| || 0 || 0 || WHO_AM_I || R/W || - |||||||||||| ID || - || || 15 || 21 || SMPLRT_DIV || R/W |||||||||||||||| SMPLRT_DIV || || 16 || 22 || DLPF_FS || R/W || - || - || - |||||| FS_SEL|||||||| DLPF_CFG || || 17 || 23 || INT_CFG || R/W || ACTL || OPEN || LATCH_INT_EN || INT_ANYRD_2CLEAR || - || INT_RDY_EN || - || RAW_RDY_EN || || 1A || 26 || INT_STATUS || R || - || - || - || - || - || ITG_RDY || - || RAW_DATA_RDY || || 1B || 27 || TEMP_OUT_H || R |||||||||||||||| TEMP_OUT_H || || 1C || 28 || TEMP_OUT_L || R |||||||||||||||| TEMP_OUT_L || || 1D || 29 || GYRO_XOUT_H || R |||||||||||||||| GYRO_XOUT_H || || 1E || 30 || GYRO_XOUT_L || R |||||||||||||||| GYRO_XOUT_L || || 1F || 31 || GYRO_YOUT_H || R |||||||||||||||| GYRO_YOUT_H || || 20 || 32 || GYRO_YOUT_L || R |||||||||||||||| GYRO_YOUT_L || || 21 || 33 || GYRO_ZOUT_H || R |||||||||||||||| GYRO_ZOUT_H || || 22 || 34 || GYRO_ZOUT_L || R |||||||||||||||| GYRO_ZOUT_L || || 3E || 62 || PWR_MGM || R/W || H_RESET || SLEEP || STBY_XG || STBY_YG || STBY_ZG |||||| CLK_SEL || {{{#!highlight c #define WHO 0x00 #define SMPL 0x15 #define DLPF 0x16 #define INT_C 0x17 #define INT_S 0x1A #define TMP_H 0x1B #define TMP_L 0x1C #define GX_H 0x1D #define GX_L 0x1E #define GY_H 0x1F #define GY_L 0x20 #define GZ_H 0x21 #define GZ_L 0x22 #define PWR_M 0x3E }}} ==== Configuración para nuestra aplicación ==== * WHO, 0x00, No usado * SMPL, 0x15, Sample rate register, valor = 0 * DLPF, 0x16, DLPF-Full Scale, valor = 00011000b a. FS_SEL = 3 , (+-)2000 [º/s], Full scale selection for gyro sensor data a. DLPF_CFG = 0 , LPF = 256Hz y SampleRate = 8KHz, Digital low pass filter configuration and internal sampling rate configuration * INT_C, 0x17, Control de Interrupción, valor = 0 * PWR_M, 0x3E, Power management, valor = 00000001b a. H_RESET = 0, dispositivo no reseteado a. SLEEP = 0, desactivar modo de bajo consumo a. STBY_XG = 0, gyro eje x en modo normal ( no standby ) a. STBY_YG = 0, gyro eje y en modo normal ( no standby ) a. STBY_ZG = 0, gyro eje z en modo normal ( no standby ) a. CLK_SEL = 001b, clock de referencia eje x ( ver que en código de ejemplo pone 000b ) Los siguientes son de sólo lectura. * INT_S, 0x1A, Estado de la Interrupción * TMP_H, 0x1B, Temperatura bit alto * TMP_L, 0x1C, Temperatura bit bajo * GX_H, 0x1D, Gyro eje x bit alto * GX_L, 0x1E, Gyro eje x bit bajo * GY_H, 0x1F, Gyro eje y bit alto * GY_L, 0x20, Gyro eje y bit bajo * GZ_H, 0x21, Gyro eje z bit alto * GZ_L, 0x22, Gyro eje z bit bajo == Acelerómetro == === ADXL345 === Acelerómetro de 3 ejes. [[http://www.sparkfun.com/datasheets/Sensors/Accelerometer/ADXL345.pdf | Hoja de dato]] [[http://www.sparkfun.com/commerce/product_info.php?products_id=9045 | Página de SparkFun]] === ADXL202 === Acelerómetro de 2 ejes. ==== Cálculo del ancho de banda ==== $$$ F = \frac{5uF}{C(x,y)} $$ Donde C se expresa en uF y F en Hz. Para un ancho de banda de 300Hz, el valor de C es de aproximadamente 16.7uF. ==== Cálculo del período del DCM ==== $$$ T_2=\frac{R_{SET}}{125M\Omega} $$ Elegiremos como frecuencia del DCM una frecuencia 10 veces más grande que el ancho de banda, o sea unos 3kHz. Para esta frecuencia la R es igual a 42k. == Filtros para combinar las mediciones del acelerómetro y el giroscopio == === Filtro Complementario === === Filtro de Kalman === === Direction Cosine Matrix === [[http://vrhome.net/vassilis/2009/12/direction-cosine-matrix-implementation-for-the-chr-6d-imu/ | Direction Cosine Matrix implementation for the CHR-6d IMU]]