各种传感器的demo
最近有假期有空整理了一些传感器的使用方式
激光测距
激光测距是我在完成电磁炮项目用的模块,大家也可以去借鉴我以前的文章,使用起来也是方便,当时涂方便,利用的是串口接收。相应的文件链接,我会放在文章的最后面。
uint16_t GetData(unsigned char *ucCMD)
{
unsigned int uiData;
USART2_Send(ucCMD,8);
Time=0;
while((Time<100)&&(ucRxFinish==0))
{ Delay_rx();}
if(ucRxFinish==1)
{
uiData=ucRxData[3]<<8|ucRxData[4];
printf("Sensor %d Data:%d\r\n",ucRxData[0],uiData);
}
ucRxFinish=0;
return uiData;
}
我选用的是tof激光测距,根据开发文档,CMD传入参数是
unsigned char CMD_1[8]={0x01,0x03,0x00,0x10,0x00,0x01,0x85,0xcf};
unsigned char CMD_2[8]={0x02,0x03,0x00,0x10,0x00,0x01,0x85,0xfc};
unsigned char CMD_3[8]={0x03,0x03,0x00,0x10,0x00,0x01,0x84,0x2d};
陀螺仪
陀螺仪在使用也是挺平凡的,mpu6050陀螺仪也是比较实惠的一款陀螺仪,在是用过程中,也有许多的问题,比如dmp初始化的问题,相信很多人都碰到初始化不通过的问题,我总结一下,有可能是电压不够或者电压不稳,但是更多的情况是应该陀螺仪放置不稳,导致摇晃,摇晃很有可能初始化不过,还有注意线的长度,最好不要超过50cm,超过1m的话,建立更改上拉电阻,模块给的是4.7K的电阻,要增加通讯长度,需要降低上拉电阻,上拉电阻建议不要太小,最好在1K以上,电阻越小功耗越大,而且容易烧IIC接口。
将dmp文件夹添加到工程当中,keil记得添加路径 使用时注意,要初始化dmp和mpu6050. MPU6050_initialize(); //=====MPU6050初始化 DMP_Init(); 读取数据有两种 Read_DMP(); Pitch; Roll; Yaw; 全局变量可以直接用; 和通过结构体接收 mpu_dmp_get_data((mpu6050_data_t*)&med_data.mpu6050_data); 有两种接收数据的方式,为了方便,写了一些用结构体去接收。
太多了改天再写其他的
有任何的疑问都可以QQ联系我 QQ488628560
|