简易云台制作记录(内含MPU6050角度的求法)

开发板:STM32F103RCT6最小系统开发板
舵机 :SG90
运动处理传感器 : MPU-6050

云台

云台是安装、固定摄像机的支撑设备,固定云台可以用来调整摄像机的水平和俯仰的角度,电动云台由电动机接受来自控制器的信号精确的定位,可以扫描监视区域。

舵机

舵机是一种位置(角度)伺服的驱动器,适用于需要角度不断变化并可以保持的控制系统。

实现效果

在本项目中,MPU6050与舵机的结合无论处于什么位置,舵机上的扇叶始终保持与地面水平。

舵机处理:

舵机有三条导线:电源、地和控制线。
舵机的控制信号是PWM信号,利用占空比的变化,改变舵机的位置。
本次设计中使用TIM3_CH3输出PWM波形改变舵机的位置。代码的编写还是比较简单的,我首先使用按键控制改变PWM的占空比,观察舵机的而变化,脉冲方波信号的周期为20ms,按键每按下一次,高电平的时间增加0.1ms,测试发现当0.5ms时舵机位置开始变化,每按下一次,位置变化一丢丢,当到2.3的时候回旋转一圈,但没有返回刚开始的位置,并且此时舵机有一种卡住的感觉,当高电平的时间继续增加到2.5ms时,舵机恢复到刚开始的位置,具体的原因我还没有搞清楚。
这里还有一个需要注意的问题,可能也是我习惯不好,刚开始我搞了一会儿发现舵机的变化极其不规律,因为我平常只使用烧录器给开发板供电。而舵机需要的电压在4-6V,虽然插在了5V的引脚上,但供电仍然不够,之后使用USB线给开发板供电之后才测试出来了这些结果。

MPU-6050分析

RA是要读或写的寄存器的地址。
IIC协议:
IIC协议
IIC
本项目使用软件模拟I2C的电平变化传输数据。需要编写出起始信号、终止信号、应答、非应答、传或接收一个字节、传输或接受多个字节的函数,这些函数网上很多,也并不复杂,因此不在赘述。
当MPU6050做从机时,当AD0为低电平时,MPU6050的地址为0x68,为高电平时为0x69。也可以通过读WHO_AM_I寄存器得到器件ID,
下面列出一下常用的MPU6050寄存器的地址

/***********************************************************************/
//寄存器地址
#define MPU6050_PWR                 0x6b    //电源
#define MPU6050_SMPLRT_DIV          0x19    //取样时钟
#define MPU6050_CONFIG              0x1a    //低通滤波
#define MPU6050_GYRO_CONFIG		    0x1b    //陀螺仪量程(bit3,4)(0-250,1-500,2-1000,3-2000)
#
  • 6
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值