打造属于Phyphox的力传感器

有次偶然看到国外的一个视频,用Phyphox演示牛顿第三定律,还是挺巧妙的。两部完全一样的手机,同时运行Phyphox,打开加速度测量,脸对脸贴一起,中间夹一签字笔中的弹簧,用橡皮筋系好,剪刀突然剪开,观察两部手机中加速度曲线的变化,几乎是一样的。

电阻应变片是可以直接作为力传感器来使用的。淘来的电阻应变片有各种不同的样子,去找一些现成的测量代码来用,多数会建议只作为数字量使用,不要期望产生模拟量,即受力或不受力、变形或不变形。

事实上不是这样。经过测量,比如用示波器观察,能够看到模拟量的产生,而且绝大多数产品级的力传感器,都是电阻应变片,为什么不能拿来测力呢?

那些Arduino学习套件里的电阻应变片没有作为力传感器来使用,我猜测可能出于两方面的原因:一是没有使用应变桥,也就是单用了应变片作为一只电阻,仅考虑了简单的分压而没有“比较”的色彩,而一旦使用电阻桥,那么输出的电压就与电桥平衡与否和偏离平衡的程度直接相关,一切与稳态做比较的状态都比较好控制,就象有了数字0,说啥都好说,如果没有数字0,1和2谁大?常说1<2,但1比2大的情形比比皆是,一哥就比二哥大。如果3是稳态,则1大2小;0是稳态,则2大1小。第二个原因,可能是电压测量的分辨率不够,很多Arduino套件都是让Arduino直接测电压,这个电压只能测正电压,且只有10位,即0~5V对应0~2^10即0~1024,ESP32也没强多少,12位,把0~3.3V对应到0~4096(即2^10)。所以综合各项指标,在能允许的情况下,模数转换精度越高,对电压变化的测量就越准。

HX711是便宜且常见的24位ADC,专用于应变桥电压测量。但有专业人员说HX711温漂严重,于是就又购置了ADS1220(24位ADC)和MCP3421(18位ADC),以便于替换下来HX711。然而……我似乎把ADS1220搞坏了,已经无论如何不输出,难道精密的器件就应该脆弱吗?“从来如此,便对么?”(狂人日记)ADS1220确实太贵了,烧不起。

但总之MCP3421把力传感器的电压解析了。

实验图:

效果图,SSCom里面的调试数据,其中第4列才是我们要采集的数据,它是力传感器输出的电压的1000倍!以便于观察它在第几位上出现变化:

可见小数点之后的第2、第3位都可以认为是可信的,这已经在微伏以下了。这个变化,仅仅是在力传感器上夹了一根鳄鱼线。

以学生自主创作(创新)的科学实践活动,早有国内威名远播的前辈和资质超群的新秀们点点滴滴的各路线上行走着。我自应为一个学习者。

读书的时候,对误差理论就突然有一种醍醐灌顶的感受,精确precise与准确accurate竟然不一样!后来老师们(当然有我)常见的一个讲“精确”和“准确”的例子,是打靶,枪枪都是10环,既准确,又精确;枪枪都打到别人的靶上10环,精确不准确;打了10发子弹找不到弹痕何处,不准确也不精确。如果有可能,让区分不开这两个词意的人,制作一次力传感器便好,我们能知道施力和施微小力时传感器的电压变化,却不知道那准确的是多大的力,也就是,某个单位制下的某个量的绝对的值,到底有什么意义呢?

再后来的时候,牵扯到有效数字和小数位数。忘记是从什么时候起,看到一篇文章,好象作者是宁波效实中学姜水根先生,内容被我发挥来使用。某个时刻,地球上的人类只剩下最后一个,他长舒了一口气,他把人类的全部文明史都记录在一把尺子上。我们知道,信息是可以编成编码的,于是这个人为了记载他所处的人类文明,把人类历史全部进行了编码。他发现十进制的1234567890就够用了。编码得到199001292008....共10^2021位数字。于是他在这数字前加上一个0.,数字变成了0.199001292008...小数点后共10^2021位。他找出一把直尺,以左端为零,按全长为1,它在这把尺的0.199001292008...的位置上刻下了一个点儿。这个点儿就是人类文明的全部编码。

不知多少风沙雪雨,多少晨昏年岁,又一个文明的人类发现了这把尺子,他们企图从这个点儿上看到前一个文明的全部。然而,当他们去测量的时候,发现,测量的精度只到有限的小数点后12位,再向后,仪器已经测不到了。于是前一个文明就这样被记录而不为所知。

ADS1220是足够精确的,但是,即使我们能得到精确的结果,我们更希望得到准确的样子。

(0)

相关推荐