欢迎光临散文网 会员登陆 & 注册

F3K&F5J 电子重心称制作

2023-08-27 16:02 作者:最强的青蛙  | 我要投稿

      F3K&F5J 电子重心称制作

-----这是我2020年初发表在微信订阅号的一篇帖子,今天转发到这里来。

-----

原创 永远的新萌 蛙蛙  2020-04-13 19:20

成品图


大概2年前(2018年)在github上看到作者奥拉夫·卡尔霍夫德Olav Kallhovd发布的一款基于Arduino的开源,适用于F3X滑翔机的CG重心秤。该CG重心秤可用于绝大多数F3K/ F5B/F5J滑翔机CG重心点测量。

GitHub上Olav的CG重心称项目介绍


自己作为一名菜鸟滑翔机爱好者,一直有想做一台的想法。工作原因搁置一年多。最近因为疫情期间有相对长闲暇时间,让做一台Olav的CG称有了时间上的前置条件。


开始制作之前需要先评估一下方案。我注意到当Olav发布了他的这台CG称项目后,引起了很多爱好者和开发者共鸣,我们可以在开源平台上看到基于Olav方案的各种演化版本,在这里有必要对几个代表性的演化方案做优缺点评估来确定最终方案的选择。


一、具有代表性演化方案内容介绍:


演化方案A:  使用最近几年流行的8266WIFI物联网模块作为主控,可WIFI连接调参与显示。


演化方案B:增加外置键盘按钮设置传感器分辨率调整、


演化方案C:设置3个传感器,可实现外形更大更重机型的CG测量


二、方案优缺点评估:


演化方案A:基于wifi调参与显示计算结果。F3K CG称应用场景很单一,使用者只需要把自己心爱的小飞机放上去查看重心与重心数值即可,跟在家里使用厨房电子秤一样,假设家里厨房电子称每次使用的时候还把手机拿出来连上让称连上wifi,整个过程感觉还是有点不便,所以这个方案就否掉。


演化方案B:增加外置键盘按钮用于调整传感器分辨率与支架尺寸。基于Olav代码,校准CG称的时候需要对传感器分辨率和支架尺寸设置。这个新增的改进功能看似很好的实现脱机调参,但是在使用过程中它并没有预想中的那么好。这里详细说下调参场景,Olav使用Serial口连接Arduino IDE调参,压力传感器要调校的比较准需要好几秒的线性稳定,这种线性稳定需要返回的AD值在刷新率很快的屏幕上显示。Arduino IDE自带的Serial监视器窗口可以很好的做到。而基于演化方案b,却很难把这个线性反应到1602lcd 或者0.96OLED显示屏上。这也是周围朋友用这种方案感觉称比较难调准的原因之一。


演化方案C:我目前玩的都是较轻的小飞机,所以无需使用到3个或者更多传感器,所以这个方案也不考虑。


上面提到的三种演化方案,,其核心算法都还是使用的Olav代码,那我们不妨在回过头来看看Olav的代码,一百多行代码,没有多余的逻辑判断,没有臃肿的扩展,简洁高效,所以这次制作我个人还是选Olav原版方案。


第一步方案选定后,第二步就准备材料了。项目包里有全部材料的BOM清单,以及外壳架子的3D打印文件,直接切片打印即可。Olav使用的是arduino mini主控板,我手上的mini板是3.3v电压的版本,但是项目包里使用的传感器是5v采样电压。所以我把mini主控板换成了5v 电压的nano主控板,清单里的材料都是容易买到的。


接下来就是组装与调试。先说组装,为了把烙铁焊接导线数降低到最少,用AD画个PCB母板,把所有器件都封装到上面这样就只需要的导线只有传感器上的几根即方便也相对规范,先画原理图。

原理图

原理图画好后就可以画PCB了

PCB图

传给PCB工厂打样,一周后得到实物。

立创PCB

Olav项目包里显示屏是没有支架的,就像这样,只有导线连接显示屏。

导线无支架

Olav的代码里显示屏使用的是i2c 协议 1602 LCD,此显示屏优点是稳定性与可靠性相对比较高,成本便宜也容易买到。待机功耗比较低,但是当背光点亮的情况下功耗相对就不低了,毕竟这台CG称使用电池作为电源,这算是缺点之一。


最近几年,极客们流行使用一种尺寸为0.96的OLED显示屏,这种自发光显示屏优点是没有单独背光光源,每个像素点都可以自发光。当所有像素点都被点亮才是该显示屏的最大功率,价格也相对1602要贵一些。在Olav的代码上只需要把原本调用1602的驱动库替换成OLDE的驱动库即可。我在淘宝上购买了的OLED是1.3寸的,因为总感觉0.96小了那么一点点。在淘宝上购买OLED屏的时候一定要注意,很多这个oled屏排线都是手工焊接的,价格也便宜很多。周围朋友在使用一段时间后大概率会出现花屏黑屏啥的。

升级1.3寸屏

这是1.3跟0.96的实物对比


显示屏选好以后还需要给显示屏画个屏外框跟支架,,这个不是太难。绘图完成后使用500元的3D打印机搞定外框与支架。

1.3寸平外壳与支架


升级1.3寸平成品

所有的材料都准备好以后就可以开始组装啦。因为有PCB母板,组装过程没啥难度,组装过程我就用图来略过。

主板和传感器1

图片主板和传感器2

图片主板和传感器3
装入壳体

还算清爽

接下来我说下重点,代码调试与传感器校准。前面说到,Olav代码是调用的1602驱动库,在这里我们只需要注释掉即可。调用新的库文件,注意你买的oled屏有可能是sh1106或 ssd1306两种不同驱动的,调用驱动库文件的时候注意对应就行。我买的是SSD1306驱动的OLED,在arduino ide里面我选了Adafruit的驱动库,测试了下稳定性还不错,开机复位之后有LOGO显示,此LOGO可自定义编辑,适合geek们。

在源代码里加入1.3寸屏的驱动库文件

组装好以后,需要先注释掉代码里LCD显示的代码,使用IDE里提供的SERIAL监视器校准传感器,这一步很重要,称准不准就看这一步是否耐心了。拿出砝码套娃,哈哈哈。

校准砝码

校准的注意:arduino ide里serial 输出是0.01精度,刷新率也比较快,这样容易通过肉眼发现起相对稳定曲线,传感器稳定与否可以通过红框刷新数值跳变大还是小来判断,校准尽量做到跳变的数值在0.10之内。


校准中1

每个砝码的校准值尽量校准在0.10之内。基于传感器物理特性,最小砝码与最大砝码中间可能是条曲线,尽量把这条曲线调直,越直称的精度就越高。砝码校传感器的时候可以做下图黄色这种砝码小托盘辅助小工具,这种小托盘能帮助砝码受力点在秤盘的轴点上,这样尽可能保证误差最小。


校准中2‍


砝码校准后,还需要第二步,设定前后支架上托盘轴点的距离以及前轴点到机翼前缘标杆的距离,这两个距离的数据在代码里都是可以精确到4位数,所以我们必须用游标测量到4位数的轴距。只有做到上面2步骤后,CG数据的计算才能有准确的前提。

设置参数

经过上面2步的校准后,就可以把之前代码里注释掉的LCD释放,重启之后就可以了。



翻出宜家买的软质小脚垫,稍加休整后粘在小托盘上。哈哈!一台F3K&F5J的CG重心称就制作并调试完成了。在这里让我们为Olav Kallhovd点赞,谢谢你Olav!

完成品1
完成品2
完成品3



F3K&F5J 电子重心称制作的评论 (共 条)

分享到微博请遵守国家法律