{"version":3,"sources":["jsdelivr-header.js","/npm/@chirimen/mpu6500@1.0.3/index.js"],"names":[],"mappings":"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","file":"/npm/@chirimen/mpu6500@1.0.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@chirimen/mpu6500@1.0.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.MPU6500 = factory());\n}(this, (function () { 'use strict';\n\n\t// @ts-check\n\t// MPU 6500 driver\n\t// Ported from\n\t// https://raw.githubusercontent.com/tuupola/micropython-mpu9250/master/mpu6500.py\n\t// https://github.com/tuupola/micropython-mpu9250/blob/master/mpu6500.py\n\t// https://www.invensense.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf\n\t// https://github.com/MomsFriendlyRobotCompany/mpu9250/blob/master/mpu9250/mpu9250.py\n\t// By Satoru Takagi\n\n\t// Note: MPU9250 ( or MPU9255(almost equal to 9250))  is a chip in which MPU 6500 and AK8963 are integrated.\n\t// When initializing the MPU6500 first, AK8963 with address 0x0C appears on the I2C bus.\n\n\tvar MPU6500 = function(i2cPort,slaveAddress){\n\t\tthis.devConst={\n\t\t\t_GYRO_CONFIG : 0x1b,\n\t\t\t_ACCEL_CONFIG : 0x1c,\n\t\t\t_ACCEL_CONFIG2 : 0x1d,\n\t\t\t_INT_PIN_CFG : 0x37,\n\t\t\t_ACCEL_XOUT_H : 0x3b,\n\t\t\t_ACCEL_XOUT_L : 0x3c,\n\t\t\t_ACCEL_YOUT_H : 0x3d,\n\t\t\t_ACCEL_YOUT_L : 0x3e,\n\t\t\t_ACCEL_ZOUT_H : 0x3f,\n\t\t\t_ACCEL_ZOUT_L: 0x40,\n\t\t\t_TEMP_OUT_H : 0x41,\n\t\t\t_TEMP_OUT_L : 0x42,\n\t\t\t_GYRO_XOUT_H : 0x43,\n\t\t\t_GYRO_XOUT_L : 0x44,\n\t\t\t_GYRO_YOUT_H : 0x45,\n\t\t\t_GYRO_YOUT_L : 0x46,\n\t\t\t_GYRO_ZOUT_H : 0x47,\n\t\t\t_GYRO_ZOUT_L : 0x48,\n\t\t\t_WHO_AM_I : 0x75,\n\n\t\t//\t#_ACCEL_FS_MASK : 0b00011000,\n\t\t\tACCEL_FS_SEL_2G : 0b00000000,\n\t\t\tACCEL_FS_SEL_4G : 0b00001000,\n\t\t\tACCEL_FS_SEL_8G : 0b00010000,\n\t\t\tACCEL_FS_SEL_16G : 0b00011000,\n\n\t\t\t_ACCEL_SO_2G : 16384, // 1 / 16384 ie. 0.061 mg / digit\n\t\t\t_ACCEL_SO_4G : 8192, // 1 / 8192 ie. 0.122 mg / digit\n\t\t\t_ACCEL_SO_8G : 4096, // 1 / 4096 ie. 0.244 mg / digit\n\t\t\t_ACCEL_SO_16G : 2048, // 1 / 2048 ie. 0.488 mg / digit\n\n\t\t//\t#_GYRO_FS_MASK : 0b00011000,\n\t\t\tGYRO_FS_SEL_250DPS : 0b00000000,\n\t\t\tGYRO_FS_SEL_500DPS : 0b00001000,\n\t\t\tGYRO_FS_SEL_1000DPS : 0b00010000,\n\t\t\tGYRO_FS_SEL_2000DPS : 0b00011000,\n\n\t\t\t_GYRO_SO_250DPS : 131,\n\t\t\t_GYRO_SO_500DPS : 62.5,\n\t\t\t_GYRO_SO_1000DPS : 32.8,\n\t\t\t_GYRO_SO_2000DPS : 16.4,\n\n\t\t\t_TEMP_SO : 333.87,\n\t\t\t_TEMP_OFFSET : 21,\n\n\t\t//\t# Used for enablind and disabling the i2c bypass access\n\t\t\t_I2C_BYPASS_MASK : 0b00000010,\n\t\t\t_I2C_BYPASS_EN : 0b00000010,\n\t\t\t_I2C_BYPASS_DIS : 0b00000000,\n\n\t\t\tSF_G : 1,\n\t\t\tSF_M_S2 : 9.80665,// # 1 g : 9.80665 m/s2 ie. standard gravity\n\t\t\tSF_DEG_S : 1,\n\t\t\tSF_RAD_S : 57.295779578552// # 1 rad/s is 57.295779578552 deg/s\n\t\t};\n\n\t\tthis.i2cPort = i2cPort;\n\t\tthis.i2cSlave = null;\n\t\tif ( slaveAddress ){\n\t\t\tthis.slaveAddress = slaveAddress;\n\t\t} else {\n\t\t\tthis.slaveAddress =  0x68;\n\t\t}\n\t};\n\n\tMPU6500.prototype = {\n\t\tinit: async function(accel_fs,gyro_fs,accel_sf,gyro_sf){\n\t\t\tvar cs = this.devConst;\n\t\t\tif  ( !accel_fs){\n\t\t\t\taccel_fs=cs.ACCEL_FS_SEL_2G;\n\t\t\t}\n\t\t\tif ( !gyro_fs){\n\t\t\t\tgyro_fs=cs.GYRO_FS_SEL_250DPS;\n\t\t\t}\n\t\t\tif ( !accel_sf ){\n\t\t\t\taccel_sf=cs.SF_M_S2;\n\t\t\t}\n\t\t\tif ( !gyro_sf){\n\t\t\t\tgyro_sf=cs.SF_RAD_S;\n\t\t\t}\n\n\t\t\tthis.i2cSlave = await this.i2cPort.open(this.slaveAddress);\n\t\t\tvar whoamiVal = await this.i2cSlave.read8(cs._WHO_AM_I);\n\t\t\tif (whoamiVal == 0x70) ; else if (whoamiVal == 0x71) ; else if (whoamiVal == 0x73) ; else {\n\t\t\t\tconsole.error(\"This device is NOT Supported...\");\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tcs._accel_so = await this._accel_fs(accel_fs);\n\t\t\tcs._gyro_so = await this._gyro_fs(gyro_fs);\n\t\t\tcs._accel_sf = accel_sf;\n\t\t\tcs._gyro_sf = gyro_sf;\n\n\t\t\t// # Enable I2C bypass to access for MPU9250 magnetometer access.\n\t\t\tvar chr = await this.i2cSlave.read8(cs._INT_PIN_CFG);\n\t\t\tchr &= ~cs._I2C_BYPASS_MASK; //# clear I2C bits\n\t\t\tchr |= cs._I2C_BYPASS_EN;\n\t\t\tawait this.i2cSlave.write8(cs._INT_PIN_CFG, chr);\n\t\t},\n\n\t\t_accel_fs: async function(value){\n\t\t\tvar cs = this.devConst;\n\t\t\tawait this.i2cSlave.write8(cs._ACCEL_CONFIG, value);\n\t\t\t//# Return the sensitivity divider\n\t\t\tif (cs.ACCEL_FS_SEL_2G == value){\n\t\t\t\treturn cs._ACCEL_SO_2G;\n\t\t\t} else if (cs.ACCEL_FS_SEL_4G == value){\n\t\t\t\treturn cs._ACCEL_SO_4G;\n\t\t\t} else if (cs.ACCEL_FS_SEL_8G == value){\n\t\t\t\treturn cs._ACCEL_SO_8G;\n\t\t\t} else if (cs.ACCEL_FS_SEL_16G == value){\n\t\t\t\treturn cs._ACCEL_SO_16G;\n\t\t\t}\n\t\t},\n\n\t\t_gyro_fs: async function( value){\n\t\t\tvar cs = this.devConst;\n\t\t\tawait this.i2cSlave.write8(cs._GYRO_CONFIG, value);\n\n\t\t\t//# Return the sensitivity divider\n\t\t\tif (cs.GYRO_FS_SEL_250DPS == value){\n\t\t\t\treturn cs._GYRO_SO_250DPS;\n\t\t\t} else if (cs.GYRO_FS_SEL_500DPS == value){\n\t\t\t\treturn cs._GYRO_SO_500DPS;\n\t\t\t} else if (cs.GYRO_FS_SEL_1000DPS == value){\n\t\t\t\treturn cs._GYRO_SO_1000DPS;\n\t\t\t} else if (cs.GYRO_FS_SEL_2000DPS == value){\n\t\t\t\treturn cs._GYRO_SO_2000DPS;\n\t\t\t}\n\t\t},\n\n\t\tgetAcceleration: async function () {\n\t\t\t/**\n\t\t\tAcceleration measured by the sensor. By default will return a\n\t\t\t3-tuple of X, Y, Z axis acceleration values in m/s^2 as floats. Will\n\t\t\treturn values in g if constructor was provided `accel_sf=SF_M_S2`\n\t\t\tparameter.\n\t\t\t**/\n\t\t\tvar cs = this.devConst;\n\t\t\tvar so = cs._accel_so;\n\t\t\tvar sf = cs._accel_sf;\n\n\t\t\tvar x = this.getVal(await this.i2cSlave.read16(cs._ACCEL_XOUT_H));\n\t\t\tvar y = this.getVal(await this.i2cSlave.read16(cs._ACCEL_YOUT_H));\n\t\t\tvar z = this.getVal(await this.i2cSlave.read16(cs._ACCEL_ZOUT_H));\n\t\t\treturn {\n\t\t\t\tx: x / so * sf,\n\t\t\t\ty: y / so * sf,\n\t\t\t\tz: z / so * sf\n\t\t\t}\n\t\t},\n\n\t\tgetGyro: async function () {\n\t\t\t/**\n\t\t\tX, Y, Z radians per second as floats.\n\t\t\t**/\n\t\t\tvar cs = this.devConst;\n\t\t\tvar so = cs._gyro_so;\n\t\t\tvar sf = cs._gyro_sf;\n\n\t\t\tvar x = this.getVal(await this.i2cSlave.read16(cs._GYRO_XOUT_H));\n\t\t\tvar y = this.getVal(await this.i2cSlave.read16(cs._GYRO_YOUT_H));\n\t\t\tvar z = this.getVal(await this.i2cSlave.read16(cs._GYRO_ZOUT_H));\n\t\t\treturn {\n\t\t\t\tx: x / so * sf,\n\t\t\t\ty: y / so * sf,\n\t\t\t\tz: z / so * sf\n\t\t\t}\n\t\t},\n\n\t\tgetTemperature: async function () {\n\t\t\t// temperature in celcius as a float.\n\t\t\tvar cs = this.devConst;\n\t\t\tvar temp = this.getVal(await this.i2cSlave.read16(cs._TEMP_OUT_H));\n\t\t\ttemp = ((temp - cs._TEMP_OFFSET) / cs._TEMP_SO) + cs._TEMP_OFFSET;\n\t\t\treturn ( temp );\n\t\t},\n\n\t\tgetVal: function (w) {\n\t\t\tvar l = w >>> 8;\n\t\t\tvar b = w & 0xff;\n\t\t\tvar v = l + ( b << 8 );\n\t\t\treturn new Int16Array([v])[0];\n\t\t}\n\t};\n\n\treturn MPU6500;\n\n})));\n"]}