5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 6157|回复: 30
打印 上一主题 下一主题

发个贴,再混个脸熟,Deviation编译环境搭建以及devo遥控器显示电压校准方法

[复制链接]
跳转到指定楼层
楼主
发表于 2017-7-10 16:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
之前发过个修Devo7E的帖子《发个贴,混个脸熟,小修Devo7E。现在有素材给大家讲讲故事了~!!!
里面涉及到Deviation固件的编译
最近又有人问起Devo10的刷Deviation固件后电压显示有偏差,要怎么校准,这又涉及到Deviotion固件的编译。
其实在之前帖子里已经给过了Deviation编译环境搭建方式的连接了:http://www.deviationtx.com/wiki/development/docker
不过貌似大家都不喜欢看英文
今天就发个装逼贴,呃,不对,不是装逼贴,是教学贴,我是来授人与渔的。。。
今天就图文并茂的讲一下编译环境的搭建和校准电压的方式吧。
英文好的可以直接看Deviation官网的wiki,不用看我在这装逼
首先讲下要哪些家伙:
1、电脑一台,必须装64位系统,必须支持Virtualization,Virtualization必须在BIOS里面启用了。
     这里只讲windows下编译环境的搭建
     linux、mac用户也不用看我在这装逼
     呃,不对,是因为华科尔的刷机工具是windows上安装的,在windows下编译完直接刷机方便~!
2、Docker的安装包,下载地址:https://download.docker.com/win/stable/DockerToolbox.exe
     我是win7 64位系统,装DockerToolbox。Win10好像有专门的DockerInstaller


有这两样家伙就可以开搞了。
首先是安装Docker,这玩意你就当它是个虚拟机就好。
先打开你下载好的DockerToolbox.exe
先是询问你如果发生问题是否愿意帮忙匿名提交数据帮助Docker改进
勾上吧,都用了人家免费软件了,不帮帮人家不厚道

然后安装路径的选项,爱改就改吧,反正我用默认

然后是安装组件的选项,记得Git for windows勾上。
Git就是一个版本控制系统,你就当作是下载deviation的工具好了。

然后是额外的一些鸟玩意

然后就是叫你确认下,直接点install就开始安装了

安装过程中会修改注册表,如果装了360什么什么的软件的话会有提示,记得点允许
还会有windows安全提示,提示有Oracle的一些软在安装,记得点安装

等待安装完了,你桌面就会出现个“Docker Quickstart Terminal”的图标了




欢迎继续阅读楼主其他信息

沙发
 楼主| 发表于 2017-7-10 16:50 | 只看该作者
Docker安装完了就开始搭建Deviation的编译环境了。
首先当然是双击“Docker Quickstart Terminal”这个图标了。
双击后就会打开一个黑漆漆的窗口。
会初始化default这台虚拟机。
初始化成功的话就会跳出一条大鲸鱼,然后提示你已经设置好IP了

如果没看到这个界面,那么就可能出了两种问题。
1、你电脑没启用虚拟化,去bios里面开启吧。
2、更新一个iso文件失败。看提示吧,按提示里面的连接用迅雷之类的下载工具下载回来,直接放到提示的那个目录里面去就好了。
然后输入“docker pull deviationtx/deviation-docker”去拉取一些文件回来

因为这些下载的东西,服务器在过外,所以这很可能是一个漫长的过程。
如果你不想干等的话,可以去吃个饭、洗个澡、撸个管什么什么的,反正时间是你的你爱干嘛干嘛
如果出现下图这个样子的话,就说明下载完成了。

解下来就是输入“mkdir ~/devo && mkdir ~/devo/builds”
这里实际上是两个命令,在home目录下新建一个devo文件夹,在devo里面再建一个builds文件夹,只不写到一行了而已

这个home目录在哪里呢?
一般情况下这个home目录就是你当前用户文件夹。
特殊情况下可能不是。
你可以在“计算机——》属性——》高级系统设置——》环境变量”里面看到这个home目录的具体位置

现在去这个目录看一下,你会发现,这个目录里面已经多了个devo文件夹,而且这个文件夹里面还有个builds文件夹。
对了这就是你刚刚在Docker里创建的

记住这个目录的位置,最后生成的刷机固件就会出现在这个目录里面。
然后输入“docker create -it -v ~/devo/builds:/release -v ~/devo:/git --name deviation_build deviationtx/deviation-docker"

这是设置一下固件生成的位置和源码的位置。
到这里编译环境就搭建完成了


162649thi5iwwldiw2q4vc.jpg (47.34 KB, 下载次数: 98)

162649thi5iwwldiw2q4vc.jpg
3
 楼主| 发表于 2017-7-10 16:58 | 只看该作者
接下来,就是下载源码和开始编译了。
输入“docker start -i deviation_build”按回车。
这个时候开始下deviation的源码,
这可能又是一个漫长的等待,
可以再撸一管

源码下载完变成下面这个样子了
这个界面用键盘上的方向键和空格键可以选择你想编译的内容。
直接build的话将编译所有的固件。

build完之后,去刚刚你创建的bulids文件夹找你编译出来的固件吧。


4
 楼主| 发表于 2017-7-10 17:05 | 只看该作者
stylecheng 发表于 2017-7-10 16:58
接下来,就是下载源码和开始编译了。
输入“docker start -i deviation_build”按回车。
这个时候开始下d ...

最后就简单说一下显示电压的校准方法。
第一次编译完成后,在刚才创建的devo文件夹下面会多一个deviation文件夹。
里面src文件夹内就是源码了
在src/target/devo10/目录下有个target_defs.h文件。(这是D10的位置,响应的D7E在src/target/devo7e/下面)
里面定义了VOLTAGE_NUMERATOR和VOLTAGE_OFFSET两个宏。
VOLTAGE_NUMERATOR是个系数,与电压采样那里两个分压电阻的比值有关。
VOLTAGE_OFFSE是偏移值,因为电池到采样点之间有个二极管,会有压降。
显示电压=VOLTAGE_NUMERATOR*ADC采样值+VOLTAGE_OFFSET。
更改这两个宏的数值可以校正显示电压。
可以根据高电压和低电压时候电池实际电压与D10显示电压去求出这两值多大合适,解二元一次方程组而已。

5
发表于 2017-7-10 17:08 | 只看该作者
不错值得收藏
6
发表于 2017-7-10 17:13 | 只看该作者
技术贴,对我来说难度太大
来自安卓客户端来自安卓客户端
7
发表于 2017-7-10 17:49 | 只看该作者
stylecheng 发表于 2017-7-10 17:05
最后就简单说一下显示电压的校准方法。
第一次编译完成后,在刚才创建的devo文件夹下面会多一个deviatio ...

快用自由门,外网下载不撸管!

8
发表于 2017-7-10 22:25 ——“来自手机” | 只看该作者
感谢楼主,这贴简直是为我量身定制,可惜我最近抽不出空,回头再弄吧。
9
发表于 2017-7-11 16:14 | 只看该作者
楼主出个12s刷 deviation的教程贴
来自苹果客户端来自苹果客户端
10
发表于 2017-8-4 23:23 | 只看该作者
stylecheng 发表于 2017-7-10 17:05
最后就简单说一下显示电压的校准方法。
第一次编译完成后,在刚才创建的devo文件夹下面会多一个deviatio ...

我对编程不太懂,我想问一下,这个校准显示电压的两个宏是要在编译之前就进行修改吗?能不能在固件的界面上增加这个校准显示电压的地方呢?或者再来一个简单的,就是能不能有一个直接修改编译好的固件进行校准显示电压的方法.说得直接一点就是对固件的某一个文件的其中哪些字节进行什么修改,当然是用WINHEX一类的编辑软件进行修改,这样就不用搭建编译环境了.

11
 楼主| 发表于 2017-8-18 11:53 | 只看该作者
sunstar126 发表于 2017-8-4 23:23
我对编程不太懂,我想问一下,这个校准显示电压的两个宏是要在编译之前就进行修改吗?能不能在固件的界面上 ...

修改后再编译一次,在界面上增加校准显示电压的地方可以,但也需要改完源码后重新编译,而且要改更多。用winhex修改固件,理论上可以,但我没试过。最省事的方法就是修改那两个宏的赋值,重新编译了。

12
 楼主| 发表于 2017-8-18 11:57 | 只看该作者
snowynight 发表于 2017-7-10 17:49
快用自由门,外网下载不撸管!

自由门只是个傻瓜式的fan qiang软件,你上个黄网,用浏览器下载个小电影可以用。但对于Docker里面要下载的那些文件,自由门有个卵用。

13
发表于 2017-8-19 21:06 | 只看该作者
stylecheng 发表于 2017-8-18 11:53
修改后再编译一次,在界面上增加校准显示电压的地方可以,但也需要改完源码后重新编译,而且要改更多。用 ...

你有那个编译环境,是不是能把那两个宏改一下后再编译一下,看编译好的固件改了那些地方,这样是不是可以用WINHEX进行修改?或者你帮我编译一个修改过的?

14
发表于 2017-8-20 23:19 | 只看该作者
膜拜,最近刚换futaba,才知道原来d固件有多么牛逼,说实话,如果不是华控这个摇杆行程太大,我都想换回去,简直了,又简单又好用,比这小日本设计的牛逼太多了
来自安卓客户端来自安卓客户端
15
 楼主| 发表于 2017-8-22 10:07 | 只看该作者
sunstar126 发表于 2017-8-19 21:06
你有那个编译环境,是不是能把那两个宏改一下后再编译一下,看编译好的固件改了那些地方,这样是不是可以 ...

两者之间的差异,话说搭建个编译环境真有那么难么。。。


16
发表于 2017-8-29 00:50 | 只看该作者
stylecheng 发表于 2017-8-22 10:07
两者之间的差异,话说搭建个编译环境真有那么难么。。。

难是不难,不过好象要用64位系统,我的是32位的啊,重装系统想到头就大了

17
发表于 2017-10-10 16:38 | 只看该作者
如果可以增加个电量微调就好了,哈哈哈哈
来自安卓客户端来自安卓客户端
18
发表于 2017-11-1 14:32 | 只看该作者
过程好漫长!

另外能否稍微解答下:
显示电压=VOLTAGE_NUMERATOR*ADC采样值+VOLTAGE_OFFSET
其中ADC采样值是未知而且变化的,咋计算?
假设ADC采样值和真实电压是线性的?

谢谢!
19
发表于 2017-11-1 20:40 | 只看该作者
改好了,目前电压比较准了。

是根据软件里那两个值,反推出ADC采样值,
然后根据两个真实值再列方程,把VOLTAGE_NUMERATOR和VOLTAGE_OFFSET给算出来

控默认计算公式是:Compute voltage from y = 0.003246x + 0.4208

谢谢楼主!

20
 楼主| 发表于 2017-11-3 11:21 | 只看该作者
本帖最后由 stylecheng 于 2017-11-3 11:37 编辑
yanjian 发表于 2017-11-1 20:40
改好了,目前电压比较准了。

是根据软件里那两个值,反推出ADC采样值,

是的,你的方法是对的。我前面说的不够详细。
以D10为例,源码中默认的VOLTAGE_NUMERATOR和VOLTAGE_OFFSET赋值是324和421
详细的做法是准备两块不同电压的电池。比如一块12.6V 一块11.1V。
先接12.6V电池上去,读出D10上面显示的电压Vh。
那么可计算出12.6V的时候ADC采样值ADCh=(Vh-0.421)/0.00324
(源码中有注释“Compute voltage from y = 0.003246x + 0.4208”实际应该参考342和421这两个值,用0.421和0.00324去算)
同样方式,算出11.1V时候ADC采样值ADCl
这样就可以得出下面这个二元一次方程组了:
12.6=VOLTAGE_NUMERATOR*ADCh+VOLTAGE_OFFSET
11.1=VOLTAGE_NUMERATOR*ADCl+VOLTAGE_OFFSET
然后解方程组得出VOLTAGE_NUMERATOR和VOLTAGE_OFFSET的值然后取3位整数就好了



您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

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