资讯详情

通过加速计和地磁传感器实现方位角

定义六个变量接收加速计x y z和地磁传感器xy z

  var ax = 0;   var ay = 0;   var az = 0;   var mx = 0;   var my = 0;   var mz = 0;

开发平台用的是Apicloud因此,加速计和地磁传感器的参数是通过平台获得的

地磁传感器

function a() {         api.startSensor({             type: 'magnetic_field'         }, function (ret, err) {             if (ret && ret.status) {                 mx=ret.x                 my=ret.y                  mz=ret.z             } else {              }         });     }

加速计传感器

function b() {         api.startSensor({             type: 'accelerometer'         }, function (ret, err) {             if (ret && ret.status) {                 ax = ret.x                 ay = ret.y                 az = ret.z             } else {              }         });     } 

计算方位角

 function c() {         var accVals = [ax, ay, az];         var magVals = [mx, my, mz];         ftemp = getYaw(accVals, magVals) * 180.0 / 3.141593;         if (ftemp > 0) ftemp = -180.0   (ftemp - 180.0);         ftemp = 0.0 - ftemp;         ftemp  = 90.0;         ftemp  = -2.0; ///补偿磁偏角,不同的地区会有所不同         if (ftemp > 360.0) { ftemp -= 360.0 };         console.log(ftemp);     }
function getYaw(accVals, magVals) {         roll = Math.atan2(accVals[0], accVals[2]);         pitch = -Math.atan(accVals[1] / (accVals[0] * Math.sin(roll)   accVals[2] * Math.sin(roll)));         yaw = Math.atan2(magVals[0] * Math.sin(roll) * Math.sin(pitch)   magVals[2] * Math.cos(roll) * Math.sin(pitch)   magVals[1] * Math.cos(pitch),             magVals[0] * Math.cos(roll) - magVals[2] * Math.sin(roll));         return yaw;     }

标签: 8fu传感器传感器地磁传感器能反正吗彭水低误报地磁传感器原理

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台