制作应变式推力采集卡(SD卡记录)
这一直是一个比较沉重的话题。
火箭发动机的推力曲线是检验设计的重要依据,也是计算火箭升空运动轨迹所必不可少之数据,因此,测量火箭发动机的推力曲线,是每一个火箭爱好者都将面临的问题。
然而采集推力之系统之设计,所需的电子专业知识较多,并非一般爱好者所能掌握。


作为USB推力计(https://www.kechuang.org/t/58561)的设计者,我收到最多的用户反馈就是:“能不能提供SD卡记录的版本?我怕我的电脑放在旁边被炸烂了。”
然而,任何电子产品的设计,都是要花一番功夫的,因为用户大多不懂电子,设计者需要考虑许多因素,以防止用户在使用过程中遇到无法自行解决的问题。加之我并不是电子专业的学生,有更多重要的事情等着我去浪费时间。于是便一拖再拖。


另一方面,虽然USB推力计65元的售价,以零件成本来看简直是房地产一般的暴利,但我仍然不太愿意接订单,因为每次出货都要焊接一堆线,我毕竟不是专业焊板师傅,这又花掉不少宝贵时间。每个人的时间都很值钱!这是许多更为年轻的学生所无法体会的。


因此我决定授人以渔,教大家做推力计。读完这个帖子,你一定能自己做一个推力计,让它记录你的火箭发动机的工作过程。这也是我所希望的:我可以节省许多时间;而大家不仅可以获得一个廉价推力计,还可以享受动手的乐趣。


===================


原理


称重传感器在受到外力时,会发生形变,引起其中的应变电阻片的阻值变化。具体参见维基百科:http://zh.wikipedia.org/wiki/%E6%83%A0%E6%96%AF%E7%99%BB%E9%9B%BB%E6%A9%8B
http://zh.wikipedia.org/wiki/%E5%BA%94%E5%8F%98%E7%89%87
最终引致输出电压变化。这个输出电压的变化很微弱,需要用hx711这一类专用芯片实现放大与采集。


arduino上的avr单片机与hx711通信,读取hx711通过测量称重传感器内的应变电阻桥所获取的电压数据,并存储到SD卡里。稍后可以将SD卡插入电脑,用excel等软件处理之前记录的数据。


===================


材料


1)基于ATMega328p 的 Arduino Uno 或者 Arduino Pro Mini(后者仅限懂折腾人士!)
237343
237344


2)SD卡模块
237345


3)杜邦线一排
4)HX711模块
237342


5)称重传感器
237347

237346


以上都是可以从淘宝买到的。除了称重传感器,其他基本上一家可以买全。价格也都非常便宜。如果你床底下有Arduino,把它拿出来吧。

===================================================


准备工作


市售的一部分绿色pcb的HX711模块存在严重bug,见 https://www.kechuang.org/t/68311
解决方法是:
1)把HX711用风枪或者别的方式拆下来,会发现芯片第14和15脚之间有一条线(藏在芯片底部,不拆下来看不到),用刀将其彻底割断。然后把芯片焊回去,并把15和16脚用焊锡连起来。这样可将采样频率提高到100Hz。
2)从E-到GND飞一条线,这样可以提高信躁比。


由于各位一般没有风枪,可以这样:
1)用烙铁加热15脚,将其挑起后折弯,靠在16脚上,用焊锡连接。不要再让15脚接触到原来15脚所在的焊盘。
2)从E-到GND飞一条线。


或者更简单:不要购买有问题的hx711模块。


所用的SD卡内如果不是FAT文件系统,需要首先格式化为FAT文件系统。方法过于简单,请诸君自行百度。
不一定支持所有SD卡。建议使用容量较小的卡。


================================================


连接


*通常情况下,我们将Arduino用USB线连接到电脑以便于测试。但也可使用锂电池或者5号电池,配合升压电路,向Arduino提供5V电源,便于在室外使用。由于具体动手过程过于简单,本篇文章不加赘述,各位读者可自行解决。


arduino 到 hx711模块:
5V --- VCC
2 --- DT
3 --- SCK
GND --- GND


arduino 到 SD卡模块:
5V --- 5V
11 --- MOSI
12 --- MISO
13 --- SCK或者CLK
4 --- CS
GND --- GND


*之所以采用4脚作为SD卡的chip select信号,是为了对应 Ethernet Shield 上面的SD脚位。但spi外设的10脚依然被征用,因此请不要改动程序中10脚的模式或状态。


hx711到称重传感器:


E+/E- :电阻桥对称的两端
A+/A- :电阻桥剩下的两端


任一对反接,会导致输出数据之正负变化颠倒,但对测量精度无影响。
称重传感器不同颜色引线所对应的桥臂,应参考商家资料。


连接完成如下图。


237349




黑色是一个改进版的arduino,有排针,便于使用杜邦线。
蓝色是SD卡模块。
红色是2GB SD卡。
绿色是HX711模块。
白色是传感器。

========================


程序


安装arduino 1.0.5或者1.0.6。给arduino刷入程序的步骤,网上教程过多,在此不赘述。


必须将整个文件夹从压缩包中解压至硬盘,再打开ino后缀的arduino文件,因为arduino IDE要求文件被包含在同名文件夹中。






=====================================

使用方法


如果系统通电前不连接SD卡,则仅向串口输出数据,数据可使用mvmeterPC软件,通过USB串口的方式采集。见 https://www.kechuang.org/t/65777
如果系统通电前已插入SD卡,则在向串口输出数据的同时,也将数据写入SD卡。


将Arduino的8号脚,用杜邦线连接至GND,即开始记录,可看到板子上的TX灯闪烁;将8脚的连接断开,即停止记录。也可以用一个自锁开关来代替杜邦线,控制开始与停止。


在系统断电前一定要断开8脚以停止记录!否则文件无法正常保存到SD卡内,可能引起文件系统错误(这和电脑强制关机会导致文件损坏的原理相同)。


保存文件名默认为datalog.csv,如果该文件不存在,它将会被创建;如果该文件已存在,新的数据将会被附加到原文件的末尾。


=====================================


测试

在称重传感器受力方向来回施加压力与拉力,利用excel对采集到的数据作折线图,应得到类似正弦波的波浪线。
来自 喷气推进
 
2
2015-2-25 03:22:16
novakon(作者)
1楼
写一个教程不容易。虽然它不是一款完整耐用的产品,但它是一个简单高效的设计。

它的诞生,离不开kc的几位火箭兼电子爱好者(包括warmonkey与liushang100在内)所作出的重要贡献。因此,我建议称这个设计为“KC推力计”。
以后有谁还问推力怎么测,大家就请他来看“KC推力计”。
折叠评论
加载评论中,请稍候...
折叠评论
2楼
采集到的数据的单位怎么办?
是否使用前应该用砝码等东西校准,得到施加单位大小的力所代表的数据,以便处理采集到的推力数据
折叠评论
加载评论中,请稍候...
折叠评论
3楼
做的不错呀。
折叠评论
加载评论中,请稍候...
折叠评论
4楼
对于我这种入门级的选手...  感觉有点难,希望楼主给出更详尽的解释!
折叠评论
加载评论中,请稍候...
折叠评论
5楼
感谢主席的教程
折叠评论
加载评论中,请稍候...
折叠评论
6楼
要是能做出手机控制的就非常完美了,我不会抱着笔记本去测试的。太危险了。
折叠评论
加载评论中,请稍候...
折叠评论
7楼
有没问题的hx711链接吗,谢谢
折叠评论
加载评论中,请稍候...
折叠评论
8楼
去打一批711的板回来自己弄吧,或者把推力计做成套件的形式弄到论坛里卖,买家自己焊接
折叠评论
加载评论中,请稍候...
折叠评论
9楼
引用 cccyl:
去打一批711的板回来自己弄吧,或者把推力计做成套件的形式弄到论坛里卖,买家自己焊接
https://www.kechuang.org/t/40770

已经有现成的方案了
现在升级到了V1.2 功能完善 工作稳定 支持大容量SD卡
有兴趣批量的朋友可以联系我
折叠评论
加载评论中,请稍候...
折叠评论
10楼
受教了
折叠评论
加载评论中,请稍候...
折叠评论
11楼
终于不用10m的网线了……
折叠评论
加载评论中,请稍候...
折叠评论
12楼
pro mini 下载是一个问题,要有USB转ttl。上次应为这个搞了半天。
折叠评论
加载评论中,请稍候...
折叠评论
13楼
怎么判断hx711有无问题呢,如果不小心买的没有问题的可不可以这样处理呢?
折叠评论
加载评论中,请稍候...
折叠评论
14楼
表示有欲望购买主楼的套件.[s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
2015-2-26 00:41:58
15楼
关于对推力校准的,我有一个想法,先把试机台组装好,开始记录,然后在发动机上放个砝码(两三秒就行),然后,发动机点火,最后分析数据时,先把发动机质量除去,然后以砝码质量作为参考,把推理数据整理一下,就行
折叠评论
加载评论中,请稍候...
折叠评论
16楼
引用 novakon:
写一个教程不容易。虽然它不是一款完整耐用的产品,但它是一个简单高效的设计。

它的诞生,离不开kc的几位火箭兼电子爱好者(包括warmonkey与liushang100在内)所作出的重要贡献。因此,我建议称这个设计为“KC推力计”。
...
对于我这种入门级的选手...  感觉有点难,希望楼主给出更详尽的解释!
折叠评论
加载评论中,请稍候...
折叠评论
17楼
引用 novakon:
写一个教程不容易。虽然它不是一款完整耐用的产品,但它是一个简单高效的设计。

它的诞生,离不开kc的几位火箭兼电子爱好者(包括warmonkey与liushang100在内)所作出的重要贡献。因此,我建议称这个设计为“KC推力计”。
...
有没问题的hx711链接吗,谢谢
折叠评论
加载评论中,请稍候...
折叠评论
18楼
引用 小火龙:
有没问题的hx711链接吗,谢谢
hx711的价格就在几块钱的样子,可以先不管有没有问题的hx711,把系统搭起来先做.
有问题的信噪比和采样率会有差别,但不影响系统搭建和使用的.
折叠评论
加载评论中,请稍候...
折叠评论
novakon(作者)
19楼
解答几个问题。

1)虽然图少了点,但我的帖子是完整的。有些概念可能一时搞不懂——这是正常的,如果你第一眼就全都能搞明白,那你恐怕也不需要看这个帖子。所采用的部件都非常便宜,直接买回来组装就是了。
2)凡是跟图中那个hx711样子一模一样的,都是有问题的。有一家专门卖称重传感器的店,它们卖的一款红色pcb、带屏蔽罩的hx711模块,是正常的,而且提供了改RATE脚位的焊桥,非常方便。但是贵几倍。
3)没错我确实可以画板打板焊接etc,而且可以按照成本价的3倍卖掉,但是它的前身,也就是USB推力计,到今天为止我只卖掉了10套左右。其实设计很简单,论坛的好多位菜鸟大神都做过类似的东西。因此,与其把它做成赚不了半个钱的产品(当然我也可以做成很高端的东西,卖500一套,但我想这里没有人会买),不如教大家动手做。
折叠评论
加载评论中,请稍候...
折叠评论
novakon(作者)
20楼
4)HX711芯片的输出速率有10Hz和100(80)Hz两种,靠RATE引脚(也就是15脚)电平选择,具体可见HX711的datasheet。如果看不懂,没关系,这是电子专业的事情,不可能人人都看得懂;照做就行了。如果没有烙铁……那就联系卖家,跟他说要他预先帮你改好rate脚。
5)采集到的数值,是与推力值成线性关系的。因此,怎么校准、怎么确定单位、数据怎么处理等等,不属于这个帖子的讨论范畴
6)不要问我怎么给arduino刷程序,不要问我arduino是什么,这些应该属于KC爱好者必备技能。程序已经由我本人写好了,刷进去就能用,已经最大限度节省各位时间了,毕竟程序才是精华。
7)动手永远比买成品收获大。如果这么简单的diy都不敢尝试(总共才几个模块),将来遇到更大的困难怎么办
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-21 20:19:58
2015-3-21 20:19:58
21楼
引用 novakon:
写一个教程不容易。虽然它不是一款完整耐用的产品,但它是一个简单高效的设计。

它的诞生,离不开kc的几位火箭兼电子爱好者(包括warmonkey与liushang100在内)所作出的重要贡献。因此,我建议称这个设计为“KC推力计”。
...
请问:我想做一个“应变式推力采集卡”但没有买到sd...只有micro sd卡模块,不知道行不行。所以冒昧地问一下,谢谢!
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-22 00:46:41
22楼
引用 小火龙:
请问:我想做一个“应变式推力采集卡”但没有买到sd...只有micro sd卡模块,不知道行不行。所以冒昧地问一下,谢谢!
淘宝上多的是啊。。。。
折叠评论
加载评论中,请稍候...
折叠评论
2015-3-29 16:53:18
2015-3-29 16:53:18
23楼
我觉得电源问题,用上那个USB插口,插上充电宝就行了,充电宝也是5V,跟连电脑应该没差。
折叠评论
加载评论中,请稍候...
折叠评论
2015-4-12 17:14:22
2015-4-12 17:14:22
24楼
遇到了一点问题,我把以上程序烧进去,接电脑(没插SD卡)后,板上的TX等并没有闪烁(用其他程序检验工作正常的推理计),而是RX闪了两下,就灭了。mvmeterPC上机软件也没反应,示数一直为零。想知道怎么解决...
折叠评论
加载评论中,请稍候...
折叠评论
2016-2-14 19:25:19
2016-2-14 19:25:19
25楼
@novakon @虎哥  @FROZEN巨擘 @liushang100 @法式油炸薯条 @法式油炸薯条 求助:推力计中的传感器用圆的压力传感器可否?如右网址:https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.4.EurNkz&id=43186349012
折叠评论
加载评论中,请稍候...
折叠评论
26楼
引用 chemistry02:
@novakon @虎哥  @FROZEN巨擘 @liushang100 @法式油炸薯条 @法式油炸薯条 求助:推力计中的传感器用圆的压力传感器可否?如右网址:https://item.taobao.com/item.htm?spm=a1z...
@落叶兄
折叠评论
加载评论中,请稍候...
折叠评论
27楼
引用 chemistry02:
@落叶兄
你at了一堆人,估计除了frozen没人回答你,因为他们都很忙,都没时间回复




自己都没有思考,也不去查资料,就会一个劲的问,谁会帮助你?
因为大家的时间都不充足,都不想浪费时间,都得互相体谅下  







分割下,下面是回答

可以
折叠评论
加载评论中,请稍候...
折叠评论
28楼
画块pcb吧,一劳永逸
折叠评论
加载评论中,请稍候...
折叠评论
2016-2-15 11:36:20
29楼
引用 h13:
你at了一堆人,估计除了frozen没人回答你,因为他们都很忙,都没时间回复




自己都没有思考,也不去查资料,就会一个劲的问,谁会帮助你?
因为大家的时间都不充足,都不想浪费时间,都得互相体谅下  





...
ok,谢谢,因为真的不知道而且上面没有提到圆形的传感器。以后我会尽量避免这种情况的。
折叠评论
加载评论中,请稍候...
折叠评论
30楼
引用 fuwen0202:
画块pcb吧,一劳永逸
一般一块pcb多少钱
折叠评论
加载评论中,请稍候...
折叠评论
31楼
引用 h13:
一般一块pcb多少钱
打样的话,10*10cm 双层 10片50块钱
折叠评论
加载评论中,请稍候...
折叠评论
32楼
引用 fuwen0202:
打样的话,10*10cm 双层 10片50块钱
好便宜...
折叠评论
加载评论中,请稍候...
折叠评论
2016-2-16 21:09:01
33楼
科创里的又一个进步!辛苦你了!
折叠评论
加载评论中,请稍候...
折叠评论
2016-4-21 21:32:37
2016-4-21 21:32:37
34楼
hx711模块的驱动程序:

sbit ADDO = P1^5;
sbit ADSK = P0^0;
unsigned long ReadCount(void)
{
unsigned long Count;
unsigned char i;
ADSK=0; // 使能 AD ( PD_SCK  置低)
Count=0;
while(ADDO); //AD 转换未结束则等待,否则开始读取
for (i=0;i<24;i++)
{
ADSK=1; //PD_SCK  置高(发送脉冲)
Count=Count<<1; // 下降沿来时变量 Count 左移一位,右侧补零
ADSK=0; //PD_SCK  置低
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;// 第 25 个脉冲下降沿来时,转换数据
ADSK=0;
return(Count);
}
请问如何通过这个函数得到数据呢
折叠评论
加载评论中,请稍候...
折叠评论
2016-4-23 21:28:44
2016-4-23 21:28:44
35楼
受教!受教![s::lol]
折叠评论
加载评论中,请稍候...
折叠评论
2019-7-19 01:50:32
2019-7-19 01:50:32
36楼

有一个问题,不知道hx711在准备输出数据的那10ms内(工作在100Hz时),到底是将哪个时间段的模拟信号转化成数字信号,是10ms内的某一时刻?还是类似于做积分运算一样算了10ms内的某一时间段的总“冲量”然后取平均?

折叠评论
加载评论中,请稍候...
折叠评论
37楼
引用 有一个WC 发表于 36 楼的内容:
有一个问题,不知道hx711在准备输出数据的那10ms内(工作在100Hz时),到底是将哪个时间段的.....

HX711是一个delta-sigma ADC,它的实际采样率是11.0592M左右,分辨率1bit。通过数字滤波恢复出24位采样结果。可以认为它采集到的是10ms内的平均值,而不是某个瞬间的值。

折叠评论
加载评论中,请稍候...
折叠评论
2019-7-20 20:50:01
2019-7-20 20:50:01
38楼
引用 warmonkey 发表于 37 楼的内容:
HX711是一个delta-sigma ADC,它的实际采样率是11.0592M左右,分辨率1bit.....

明白了!💪

折叠评论
加载评论中,请稍候...
折叠评论
2019-8-8 13:34:20
2019-8-8 13:34:20
39楼

如果追求小体积的话可以用arduino nano

lz说的 arduino pro mini 的确是很折腾人,串口烧写模块要手动焊接 上传代码很玄学。 我后面又买了arduino nano 用的Mico USB 数据线与电脑连接。 才解决了上传的问题

折叠评论
1
加载评论中,请稍候...
折叠评论
2019-10-4 11:04:47
2019-10-4 11:04:47
40楼

我做时,不知道出了什么问题,请楼主解答一下吧,程序已烧入,用的是1.0.5.连接上位机时,上位机显示如上图。这里先谢谢各位大神了。🙏


折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png