完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
上班无聊,贴上一个6g加速度计的程序。大家有兴趣可以讨论以下。
我本意是角度大于30度以上需要告警,可无奈输出的角度数据特凌乱。 我觉着后续我加些滤波会好些。 u8 GMA301_Get_Alarm(void) { u16 uiX_dir,uiY_dir,uiZ_dir; static u16 uiXr,uiYr,uiZr; u16 uiTmp,i; u8 ucTemp[15]; u8 ucAlarmflag = 0; static double dR,dx,dy,dz; if(IT_Get_GMA301_Change()==0) return 0xFF; IT_Reset_GMA301_Change(); if(GMA301_Read(&uiX_dir,&uiY_dir,&uiZ_dir)) { //=================== x ========================// uiXr = GMA301_Get_MoveData(uiX_dir,uiX_old); if(uiXr>32) ucAlarmflag |= 0x01; //=================== y ========================// uiYr = GMA301_Get_MoveData(uiY_dir,uiY_old); if(uiYr>32) ucAlarmflag |= 0x02; //=================== z ========================// uiZr = GMA301_Get_MoveData(uiZ_dir,uiZ_old); if(uiZr>32) ucAlarmflag |= 0x04; //===============加速度转换成角度计算 ==============// dR = sqrt(((double)(uiXr*uiXr))+((double)(uiYr*uiYr))+((double)(uiZr*uiZr))); // R = sqrt(uiXr^2 + uiYr^2 + uiZr^2); if(dR) {//条件是要去除一些极小的震动引起的数据。 if(((uiXr>GMA301_ALVALUE)&&(uiYr>GMA301_ALVALUE)) ||((uiYr>GMA301_ALVALUE)&&(uiZr>GMA301_ALVALUE)) ||((uiZr>GMA301_ALVALUE)&&(uiXr>GMA301_ALVALUE))) { dx = acos(uiXr/dR) * 180 / M_PI; dy = acos(uiYr/dR) * 180 / M_PI; dz = acos(uiZr/dR) * 180 / M_PI; //注释一下,数据得到的角度凌乱。故把所有角度转到45度以下,方法就是90-angle dx= Angle_Trans_Data(dx); dy= Angle_Trans_Data(dy); dz= Angle_Trans_Data(dz); //以下这段是数据输出 ucTemp[2]= dx/100+0x30; ucTemp[3]= dx/10; ucTemp[3]%=10; ucTemp[3]+=0x30; ucTemp[4]=((u16)dx)%10+0x30; ucTemp[5]= ' '; ucTemp[6]= dy/100+0x30; ucTemp[7]= dy/10; ucTemp[7]%=10; ucTemp[7]+=0x30; ucTemp[8]=((u16)dy)%10+0x30; ucTemp[9]= ' '; ucTemp[10]= dz/100+0x30; ucTemp[11]= dz/10; ucTemp[11]%=10; ucTemp[11]+=0x30; ucTemp[12]=((u16)dz)%10+0x30; ucTemp[13]= ' '; } dR = 0; } for(i=0;i<14;i++) { SendChar(ucTemp[i]); } } return ucAlarmflag; } |
|
相关推荐
2 个讨论
|
|
沙发自己坐,看看这个网站人气如何
|
|
|
|
|
|
能简述一下原理思路吗?
|
|
|
|
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
3147 浏览 1 评论
4924 浏览 1 评论
8232 浏览 0 评论
2031 浏览 0 评论
VL53L5CX #高达 8x8 多区域测距和 63°对角线宽视场 飞行时间多区域测距传感器
17463 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-25 04:44 , Processed in 0.671574 second(s), Total 45, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191