发作品签到
专业版

#第九届立创电赛#粮食水分仪

工程标签

4.5k
0
0
10

简介

简易粮食水分仪

简介:简易粮食水分仪
复刻成本:50

开源协议

GPL 3.0

创建时间:2024-08-03 18:18:06更新时间:2024-10-21 14:14:04

描述

 1、项目功能介绍


 

收获的粮食需要到水泥地面摊晒,晒粮总是不知道晒到了多少水分,我们这主要种植小麦和玉米,小麦靠牙咬判断水分,玉米靠手指甲掐来判断水分,因为没有具体数字,基本就靠感觉和经验来判断,这导致晒粮时候没底,有的时候收购粮食的流动商贩以水分大砍价,还有的时候天气不好多摊晒一天可能遭遇降雨导致粮食发霉长牙,家里储存的粮食也有的时候水分大导致生虫和发霉,市面上最便宜的快速粮食水分仪差不多要200元,大多数农民都不舍得买,于是想自制个简易粮食水分仪来分享,因没有称重和温度测量部分,测量比较麻烦,测量准确度不高,因为还需要烤箱和准确的电子称所以内部设置了四种农作物,虽然只有四种实际只做了玉米的校准,经过对比测试发现和成品水分仪误差比较大,不怎么实用,成品水分仪是介电常数、密度、温度三种变量的模型。

 

*2、项目属性


本项目首次公开

 

* 3、开源协议


GPL 3.0   软硬件100%开源  高频信号部分参考NanoVNA开源网络分析仪电路

 

*4、硬件部分

 

电源采用18650供电,U6锂电池充电管理芯片,通过TYPE-C充电,U8单节锂电池保护芯片,U7 3.3V稳压芯片,U9升压芯片,升压到4.5V给SA612供电。

 


 

显示采用COG12864,主控ST7567

 

单片机电路,时间有限U1未焊接和写相关程序。

采用CW32F030C8T6单片机,si5351a CLK2给单片机提供时钟,PA3 PA4 I2C口用来控制SI5351A,PA0 PA1两个ADC口采集1KHZ交流信号,两个按键设置功能。

 

 

高频信号部分

采用25MHZ晶振,SI5351A输出三路方波CLK0 = 148999000HZ 衰减后进混频器,CLK1=149000000HZ 激励信号,两路信号差频为1KHZ,CLK2给单片机提供时钟

 

 

阻抗测量电路原理

 

S11 = VT / VR

阻抗= 50 * ((1+S11)/(1-S11))

 

下图是VT信号检测电路

 

 

 

下图是VR测量电路,衰减要设置大一些。

 

 

上面两路149MHZ信号进入SA612混频器后输出1KHZ交流信号

 

1KHZ信号进入两个差分放大器放大后进入单片机ADC

 

 

 

 

 

*5、软件部分


编译器ARM-NONE-EABI

ARM官方下载地址 https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

也可以下载gnu binutils自己编译  https://www.gnu.org/software/binutils/

编译命令

  1.     ../configure --target=arm-none-eabi --prefix=/home/yjmwxwx/220g/ruanjian/chengxu/arm/bianyiqi/bintuils/
  2.  
  3.     make
  4.  
  5.     make install

 

附件里面 程序源代码固件文件夹,liagnshi 文件夹里面1.s是源代码,1.bin是固件,干装完编译器和make工具输入make可以编译

 

软件原理,上电初始话IO和I2C口先设置SI5351A频率输出后单片机切换成外部时钟,设置定ADC和DMA,两路信号每路500KHZ采样率,两路各采集1000点,SYSTICK定时器设置定时2毫秒中断一次进入中断处理采集的数据表,数据表进DFT算出实部虚部,用ADC1采集的除ADC0采集的得到S11,50*((1+s11)/(1-s11))算出阻抗,用电抗换算粮食水分,同轴样品架空时候记录下电抗,再把烘干后粮食放入同轴样品架记录下数据做为参考点,接下来就可以测量别的水分的粮食了。

 

核心校准算法

OSM校准算法(开路、短路、匹配)

 

计算实例,需要自己填写四个数值

pm1=开路时候的电压(S11)

pm2=短路时候电压(S11)

pm3= 匹配电压(S11)(SMA口接50欧电阻)

p1 = 未校准前S11,下面计算填的是测10PF电容的S11

下面代码采用OCTAVE计算,复制进去就可以了

 

 

pm1=4346+7421i
pm2=-8-5419i
pm3=-69+280i

a=[1,1*pm1,-1;
    1,-1*pm2,1;
    1,0*pm3,-0]

 aa=det(a)

a1=[pm1,1*pm1,-1;
    pm2,-1*pm2,1;
    pm3,0*pm3,-0]
aa1=det(a1)

a2=[1,pm1,-1;
     1,pm2,1;
     1,pm3,-0]
aa2=det(a2)

a3=[1,1*pm1,pm1;
     1,-1*pm2,pm2;
     1,0*pm3,pm3]
aa3=det(a3)

x=aa1/aa
y=aa2/aa
z=aa3/aa

 p1=6198+1182i
p=(p1-x)/(p1*y-z)
zl=50*((1+p)/(1-p))

 

上面代码移植到单片机算法

原文 https://ru.intemodino.com/equations/solving-systems-of-linear-equations-three-variables/#google_vignette

 

 

线性度矫正版程序直接和成品水分仪测的数据进行拟合,还演示了比对视频,但是成品采集数据的时候和后来比对的时候飘了,后面测的19.3采集数据的时候是18.5

 

成品水分仪水分                 自制水分仪电抗读数

7.6%                                           210
12.5%                                         254
14.5%                                         265
18.5%                                          304

 

直接把电抗乘 1.165减去168.5 拟合,线性度校准版同轴样品架外桶直径100(免费电路板最大圆尺寸),内径六个核桃罐子,高度11,电容26PF左右,电抗149MHZ时候-41欧

 

 

 

 

 

注:若您的项目涉及软件开发,请在附件上传对应的工程源码。这里可以详细说明您的软件流程图、功能模块框图、相关算法的解释或科普、源码结构、编译环境的搭建和配置、源码编译方法、程序烧录方法等。推荐图文并茂的形式向别人介绍您的想法。

 

*6、BOM清单


请输入内容…

 

注:项目涉及的BOM清单。在嘉立创EDA 生成/上传设计文件后,BOM将自动生成至项目详情;建议包括型号、品牌、名称、封装、采购渠道、用途等内容。具体内容和形式应以表达清楚项目构成为准。

 

*7、大赛LOGO验证


 

 

* 8、演示您的项目并录制成视频上传


 

视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;

视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。

 

前往查看更多详情 >

 

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
源代码和固件(2024-10-20).zip
8
2
ref-2-L04-two-port-cal.pdf
5
3
线性度校准版程序.zip
4
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航