这一直是一个比较沉重的话题。
火箭发动机的推力曲线是检验设计的重要依据,也是计算火箭升空运动轨迹所必不可少之数据,因此,测量火箭发动机的推力曲线,是每一个火箭爱好者都将面临的问题。
然而采集推力之系统之设计,所需的电子专业知识较多,并非一般爱好者所能掌握。
作为USB推力计(
XXXXXXXXXXXXXXXXXXXXXXXX/t/58561)的设计者,我收到最多的用户反馈就是:“能不能提供SD卡记录的版本?我怕我的电脑放在旁边被炸烂了。”
然而,任何电子产品的设计,都是要花一番功夫的,因为用户大多不懂电子,设计者需要考虑许多因素,以防止用户在使用过程中遇到无法自行解决的问题。加之我并不是电子专业的学生,有更多重要的事情等着我去浪费时间。于是便一拖再拖。
另一方面,虽然USB推力计65元的售价,以零件成本来看简直是房地产一般的暴利,但我仍然不太愿意接订单,因为每次出货都要焊接一堆线,我毕竟不是专业焊板师傅,这又花掉不少宝贵时间。每个人的时间都很值钱!这是许多更为年轻的学生所无法体会的。
因此我决定授人以渔,教大家做推力计。读完这个帖子,你一定能自己做一个推力计,让它记录你的火箭发动机的工作过程。这也是我所希望的:我可以节省许多时间;而大家不仅可以获得一个廉价推力计,还可以享受动手的乐趣。
===================
原理
称重传感器在受到外力时,会发生形变,引起其中的应变电阻片的阻值变化。具体参见维基百科:
XXXXXXXXXXXXXXXXXXXXXXX/wiki/%E6%83%A0%E6%96%AF%E7%99%BB%E9%9B%BB%E6%A9%8B
XXXXXXXXXXXXXXXXXXXXXXX/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(后者仅限懂折腾人士!)
2)SD卡模块
3)杜邦线一排
4)HX711模块
5)称重传感器
以上都是可以从淘宝买到的。除了称重传感器,其他基本上一家可以买全。价格也都非常便宜。如果你床底下有Arduino,把它拿出来吧。
===================================================
准备工作
市售的一部分绿色pcb的HX711模块存在严重bug,见
XXXXXXXXXXXXXXXXXXXXXXXX/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- :电阻桥剩下的两端
任一对反接,会导致输出数据之正负变化颠倒,但对测量精度无影响。
称重传感器不同颜色引线所对应的桥臂,应参考商家资料。
连接完成如下图。
黑色是一个改进版的arduino,有排针,便于使用杜邦线。
蓝色是SD卡模块。
红色是2GB SD卡。
绿色是HX711模块。
白色是传感器。
========================
程序
安装arduino 1.0.5或者1.0.6。给arduino刷入程序的步骤,网上教程过多,在此不赘述。
必须将整个文件夹从压缩包中解压至硬盘,再打开ino后缀的arduino文件,因为arduino IDE要求文件被包含在同名文件夹中。
thrust_logger.zip
3.83KB
ZIP
610次下载
=====================================
使用方法
如果系统通电前不连接SD卡,则仅向串口输出数据,数据可使用mvmeterPC软件,通过USB串口的方式采集。见
XXXXXXXXXXXXXXXXXXXXXXXX/t/65777
如果系统通电前已插入SD卡,则在向串口输出数据的同时,也将数据写入SD卡。
将Arduino的8号脚,用杜邦线连接至GND,即开始记录,可看到板子上的TX灯闪烁;将8脚的连接断开,即停止记录。也可以用一个自锁开关来代替杜邦线,控制开始与停止。
在系统断电前一定要断开8脚以停止记录!否则文件无法正常保存到SD卡内,可能引起文件系统错误(这和电脑强制关机会导致文件损坏的原理相同)。
保存文件名默认为datalog.csv,如果该文件不存在,它将会被创建;如果该文件已存在,新的数据将会被附加到原文件的末尾。
=====================================
测试
在称重传感器受力方向来回施加压力与拉力,利用excel对采集到的数据作折线图,应得到类似正弦波的波浪线。
200字以内,仅用于支线交流,主线讨论请采用回复功能。