OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8255|回复: 7

mpu6050陀螺仪鼠标

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-4-6
在线时间
0 小时
发表于 2014-4-6 17:59:41 | 显示全部楼层 |阅读模式
在网上找了一个基于mpu6050的陀螺仪鼠标的程序,测试了一下效果还不错。程序有点不懂的地方,希望大神帮忙。
这个鼠标采用的是usb接口。单片机给电脑发送4个字节的数据,
void Joystick_Send(u8 buf0,u8 buf1,u8 buf2,u8 buf3)
{
  u8 Mouse_Buffer[4] = {0, 0, 0, 0};
    
  /* prepare buffer to send */
  Mouse_Buffer[0]=buf0;
  Mouse_Buffer[1]=buf1;
  Mouse_Buffer[2]=buf2;
  Mouse_Buffer[3]=buf3;

  /*copy mouse position info in ENDP1 Tx Packet Memory Area*/
  UserToPMABufferCopy(Mouse_Buffer, GetEPTxAddr(ENDP1), 4);
  /* enable endpoint for transmission */
  SetEPTxValid(ENDP1);
}
主函数中调用Joystick_Send(keysta,x0,y0,0);keysta为按键指令,x0和y0是发送到电脑端的坐标值。程序中
x0=getGyroX()>>7;
y0=-getGyroY()>>7;
getGyroX()是这样定义的
short getGyroX(void)
{
short GyroX = 0;
char GyroXH = 0 , GyroXL = 0; 
GyroXH = Single_Read_IIC( SLAVEADRESS , GYRO_XOUT_H );
GyroXL = Single_Read_IIC( SLAVEADRESS , GYRO_XOUT_L );
GyroX = (GyroXH<<8)|GyroXL;
return GyroX;
}
问题来了getGyroX()读出来的不是角速度吗?程序中没有做别的处理直接把getGyroX()付给了x0,。这个怎么理解啊?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2014-4-6 19:39:53 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-4-6
在线时间
0 小时
 楼主| 发表于 2014-4-6 19:48:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
程序框架用的就是正点原子的触控USB鼠标 实验  的程序    我刚接触陀螺仪不久,这个问题想了好几天了!
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2014-4-6
在线时间
0 小时
 楼主| 发表于 2014-4-6 20:21:56 | 显示全部楼层
回复【楼主位】电脑:
---------------------------------
我好像有点明白了  这个x0和y0应该是相对坐标值,而不是绝对坐标。这样这个问题就好理解了,只要陀螺仪有角速度鼠标就会向相应的方向移动。
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-4-9 15:25:45 | 显示全部楼层
回复【楼主位】电脑:
---------------------------------
效果怎么样??上传一个效果的演示视频呀?
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-4-9 15:28:49 | 显示全部楼层
回复【4楼】电脑:
---------------------------------
楼主在吗?我QQ1523137902,加我找你讨论讨论啊
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-4-16 22:28:12 | 显示全部楼层
回复【楼主位】电脑:
---------------------------------
你就不能分享下完整的代码吗     怎么逛个论坛就跑了
合肥-文盲
回复 支持 反对

使用道具 举报

86

主题

983

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1848
金钱
1848
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-4-17 23:06:51 | 显示全部楼层
回复【4楼】电脑:
---------------------------------
你确定这方法还不错???我现在也用陀螺仪角速度作为输出,现在光标斜着走呀,而且漂移
合肥-文盲
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-10 03:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表