从零开始做手机云台/稳定器

最近完成手机云台/稳定器的产品化,特意记录整个手机云台的开发过程 (内容持续细化中...)

一. 电机驱动篇

硬件描述: 直流无刷电机,7对极,控制板mcu为stm32f0。

驱动方式: FOC 控制,驱动板采样两路电流,并配置有编码器。

网上针对FOC的控制文章较多,做起来也不难,在这里主要记录驱动编写的过程及关键点。

1. 首先是编码器的问题,手头的AS5600 编码器,采用SPI接口,1k HZ的频率读取物理角度,在驱动电机过程发现及其不稳定,有噪音,转动速度越快越不稳定。经过分析数据,终于找到原因:驱动过程相位角在变化,而1KHZ的更新速率(PWM更新频率是30K)无法及时跟随到最新的位置。 解决办法:插值,根据物理角度变化速度计算最新相位角。

2. 控制PWM问题,由于采用7段式SVPWM控制,所以定时器一定要采用中央对齐模式,也即三角波。这方面可以参考:https://wenku.baidu.com/view/9d420682bceb19e8b8f6ba9d.html,说的很详细。还有matlab 仿真。

3. 力矩控制问题,基本流程是,根据采样电流,通过Clarke变化和Park变换(记得是电流变换,不是电压变换),计算得出当前的磁链和力矩(绝对值没意义,相对值才有意义)。这时候可以使用pid反馈控制,计算输出 电压和磁链。然后再经过反Park变换和反Clarke变换就可以得出三相输出电压,然后转PWM波即可。整个过程的关键是PID控制参数的选择,一般都直接采用PI控制即可。参数调整需要实践慢慢实验。

4. 关于电流采样的问题,其实可以不要电流采样,理论上来说依然是FOC 控制。首先,采用电流环控制确实有它的优点,力矩响应肯定要快速,能耗也要低一些(动态),但缺点也明显,控制复杂度增加,电流环的PI控制参数要根据实际电路/电机调整,而且积分容易饱和,电流采样时序也要把握好。其次,在更换电机过程中,电流环控制容易出现各种异常现象,都是电流采样引起的。 由于云台属于慢控制系统,对动态力矩响应要求并不高,所以在实际使用中可以去掉电流环(个人意见)。

处理好以上几个问题,电机驱动基本上就完成了。反正我没遇到其他大问题,至于说电气角度的校准之类的问题都是小问题。顺便说下,之前也试过不用编码器,直接使用两个线性霍尔传感器计算物理角度。遇到几个麻烦问题:1.安装精确度要求高,两个传感器必须垂直90度,误差不能超过该4度,否则力矩明显减少。2. 需要做温度补偿。 3. 磁环位置和强度要求配合。总之效果不怎么好,由于时间关系没有继续采用这种方案做,后面再投入一些时间研究下。

最近需要电机发声(省的安装蜂鸣器了),同时云台需要正常运转,找了一些资料看,都没有好的简单的办法,突然想到,直接再控制力矩上增加高频载波是否可行?写了几行测试代码,果然可以发出不同频率的声音,简单搞定。

二. 云台坐标系篇

根绝云台的结构以及控制情况,整个云台包含三个坐标系:

a. 参考坐标系(地球坐标系),手机根据陀螺仪计算出来的欧拉角就属于该坐标系。

b. 机体坐标系, 陀螺仪传感器输出的角速度属于该坐标系。

c. 电机坐标系,电机物理角度及控制力矩属于该坐标系。

各坐标系之间的关系公式推导:

1. 欧拉角坐标系旋转矩阵

2. 欧拉角变化率与机体坐标系的角速度关系

这里有个地方要注意,由于欧拉角俯仰的范围是正负90度,在俯仰接近90度时横滚值会完全不准。但云台的俯仰姿态大于90度的情况很多,所以解决的办法是在计算欧拉的时候把横滚和俯仰调换位置。在这种情况下,该公式就不适合了,根据坐标映射法,推导出的公式是:

经过matlab仿真,可以使用,注意:该公式只适合Roll在正负60度区间,俯仰可以正负180度。

3. 机体坐标系到电机坐标系

基于以上公式,可以完成云台的所有坐标系转换。

实际在使用过程中发现,俯仰(Y) 的角速度(机体坐标系到电机坐标系)这部分可以不要,否则再某些角度容易引起震动。

三. 控制篇

全部控制采用PID 控制,控制环境主要包括:

1. PID 速度环

姿态err = 目标姿态 - 当前姿态

目标速度_e = 姿态err×Kp

整个速度环PID参数,积分和微分参数设置为0即可。

2. PID力矩控制环

目标速度 _b = 参考坐标系转机体坐标系(目标速度 _e)

速度Err_b = 目标速度 _b - 陀螺仪角速度

速度Err_m = 机体坐标系转电机坐标系(速度Err_b)

输出力矩 = PID(速度Err_m)

3. 横拍竖拍模式

竖拍模式,即手机竖直拍摄,但横滚电机角度到达限定值,云台就直接切换为竖拍模式,在竖拍模式下,手机实际姿态是:横滚90度(或负90度),俯仰正负45度。

4. 航向跟随模式

实现方式很简单:

a. 确定手柄姿态(是否手电筒模式),确定控制航向是原航向电机还是横滚电机

b. 计算电机当前位置与目标位置err, 目标航向 = 当前航向 + err*KP

四. 通信篇

1. 三轴间通信

三轴间通信结构图:

俯仰为主机,横滚和航向为从机,通信速率为1M,主机没500us 发起一次通信。主机发送控制命令,从机将电机位置,控制板状态等信息作为返回。

2.  云台对外接口通讯

由于俯仰作为云台主控端没有直接对外提供串口(不是没有,是硬件不方面,接线麻烦),所以只能通过航向板转发了,通讯又不能影响原本三轴通讯,所以采用的办法是再原来三轴通讯协议上附带转发数据,这样不影响原有流程正常运行。实际运行效果还不错,在不影响云台正常运行的情况下,可以通过PC软件直接设置参数,查看运行曲线。

 

 

 

 

 

 

介绍 这是使用Digilent Zybo Zynq-7000开发板为GoPro创建3轴手持照相机稳定装备的指南。此项目是为CPE实时操作系统课程(CPE 439)开发的。稳定器使用三个伺服器和一个IMU来纠正用户的运动,以保持相机的水平。 项目所需的部件 Digilent Zybo Zynq-7000开发板 Sparkfun IMU Breakout - MPU 9250 2 HiTec HS-5485HB伺服(购买180度的运动或程序从90到180度) 1台HiTec HS-5685MH伺服(购买90度到180度的180度运动或程序) 2个标准伺服支架 1面包板 15根 male-to-male 跳线 4对male-to-female跳线 热胶 手柄或手柄 直径5毫米的木制销钉 GoPro或其他相机和安装硬件 能够输出5V的电源。 访问3D打印机 步骤1:Vivado硬件设置让我们开始为项目创建底层的块设计。 打开Vivado 2016.2,点击“Create New Project”图标,然后点击“Next>”。 命名您的项目,然后点击“下一步>”。 选择RTL项目,然后点击“下一步>”。 键入到搜索栏xc7z010clg400-1,然后选择部分,然后点击“下一步>”和“完成”。 第2步:设置模块设计(相关文件见附件)现在我们将开始通过添加和设置Zynq IP模块来生成模块设计。 在左侧面板的IP Integrator下,单击“创建块设计”,然后单击“确定”。 右键单击“图表”选项卡,然后选择“添加IP ...”。 键入“ZYNQ7处理系统”并单击选择。 双击出现的Zynq块。 点击“导入XPS设置”,导入提供的“ZYBO_zynq_def.xml”文件。 转到“MIO配置”,选择“应用处理器单元”,并启用定时器0和看门狗定时器。 在“I / O外围设备”下的同一个选项卡中,选择ENET 0(并将下拉菜单更改为“MIO 16 .. 27”,USB 0,SD 0,UART 1,I2C 0。 在“GPIO”下,检查GPIO MIO,ENET复位,USB复位和I2C复位。 现在导航到“时钟配置”。在PL结构时钟下选择FCLK_CLK0。然后,点击“确定”。 第3步:创建自定义PWM IP模块(相关文件见附件)这个IP模块允许电路板发送一个PWM信号来控制舵机的运动。增加了逻辑来减慢时钟,使脉冲以正确的速率输出。该块取0到180之间的一个数字,并将其转换成一个750-2150的usec脉冲。 现在,在左上角附近的工具选项卡下,点击“创建和打包IP ...”,然后点击下一步。 然后选择“创建一个新的AXI4外设”并点击下一步。 命名您的PWM IP块(我们将其命名为pwm_core),然后单击下一步,然后单击下一页上的下一步。 现在点击“编辑IP”,然后点击完成。这将打开一个新窗口来编辑pwm块。 在“Sources”选项卡和“Design Sources”下,展开“pwm_core_v1_0”(用您的名称替换pwm_core ),然后打开变得可见的文件。 将“pwm_core_v1_0_S00_AXI.v”下提供的代码复制并粘贴到项目底部的zip文件中。按Ctrl + Shift + R,用你的名字替换“pwm_core” 。 接下来打开“name_v1_0”,并在文件“pwm_core_v1_0.v”中提供的代码中复制。按Ctrl + Shift + R并用名称替换“pwm_core” 。 现在导航到“Package IP -name”选项卡并选择“Customization Parameters”。 在这个标签中,顶部会有一个黄色的条形文字。选择此项,“隐藏参数”将显示在框中。 现在进入“Customization GUI”,右键点击Pwm Counter Max,选择“Edit Parameter ...”。 选中“在自定义GUI中可见”和“指定范围”框。 将“类型:”下拉菜单更改为整数范围,并将最小值设置为0,最大值设置为65535,然后选中“显示范围”框。现在点击OK。 在“Page 0”树下拖动Pwm Counter Max。现在转到“查看和打包”并点击“重新打包IP”按钮。 第4步:添加PWM IP模块进行设计我们将IP块添加到块设计中,以允许用户通过处理器访问PWM IP块。 右键单击图表选项卡,然后单击“IP设置...”。导航到“资源库管理器”选项卡。 点击绿色加号按钮并选择它。现在在文件管理器中找到ip_repo并将其添加到项目中。然后点击应用,然后确定。 右键单击图表选项卡,然后单击“添加IP ...”。输入您的PWM IP块名称并选择它。 在屏幕顶部应该有一个绿色的条,首先选择“运行连接自动化”,然后单击确
三轴防抖云台是一种用于摄影、拍摄等领域的专业设备,可以帮助用户在运动或者颠簸的情况下保持相机或者摄像机的稳定性,避免拍摄出现抖动或者模糊的情况。以下是三轴防抖云台的应用推广方案: 一、明确目标用户 三轴防抖云台的主要用户群体包括摄影师、摄像师、博主、自媒体人等专业人士和有高品质视频拍摄需求的普通用户。在推广时需要精准定位目标用户,根据其需求制定相应的宣传策略。 二、制作宣传视频 针对目标用户,制作一段精美的宣传视频,展示三轴防抖云台的优点和特点。视频可以突出稳定性、易操作性、适用范围广等特点,同时搭配背景音乐、美景等元素,让用户能够直观感受到使用三轴防抖云台的魅力。 三、社交媒体宣传 社交媒体是目前最主流的宣传方式之一,可以通过微博、微信公众号、抖音、快手等社交媒体平台进行推广。通过发布宣传视频、图片等形式,吸引用户的注意力,同时可以通过推送、投放广告等方式提高宣传效果。 四、参加行业展览 参加行业展览是一种较为传统的推广方式,可以让更多的目标用户了解三轴防抖云台的性能和优势。通过展示实物、演示、互动等方式,让用户深入了解产品,提高品牌知名度和美誉度。 五、与知名摄影师合作 找到知名摄影师或摄像师合作,让其在社交媒体、博客等平台上分享三轴防抖云台的使用体验和拍摄作品,提高产品的可信度和吸引力。同时可以邀请这些专业人士参加推广活动、拍摄宣传片等,进一步扩大品牌影响力。 六、优化售后服务 在推广产品的同时,也要注意售后服务。提供良好的售后服务可以增加用户的满意度和忠诚度,进而促进产品的销售。可以通过提供售后服务热线、在线客服等方式,让用户获得及时
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值