基于Linux和Exynos4412的联合收割机测产系统设计
2019-12-22张亚楠
郝 倩,张亚楠
(河南工业职业技术学院,河南 南阳 473000)
0 引言
目前,我国农业机械化率明显落后于欧美等发达国家,且我国农机行业大多数中高端产品仍以进口为主。未来,随着农垦改革的持续推进,促使农地集约化管理,大型农机的需求将不断增加。此外,我国联合收割机在向大型、高效、多功能与智能控制发展过程中,存在喂入量提升、多种作物适应性、作业质量自动调控及智能测产等智能化技术缺失,制约了我国农机化综合生产水平进一步提高。为此,以解决联合收割机智能测产为出发点,设计了一套基于Linux和Exynos4412的联合收割机测产系统。
1 联合收割机测产系统工作原理
1.1 冲量式流量传感器
收割机测产手段采用的流量传感器主要有冲量、容积及光电式3种。其中,以冲量式结构最为简单、成本最为低廉,因此本文采用该方法。冲量式流量传感器结构示意如图1所示。
该传感器由悬梁、外壳和冲量板三部分构成,在实际应用中被安装在收割机的储藏仓上方。作物经过脱粒、谷穗分离后被抛出冲击到流量传感器的冲量板上,冲量板带动悬梁发生形变,引起悬梁内部电阻变化,从而输出与冲击作物重量相对应的电压u。其原理如下:
由冲量守恒定理得
F(t)Δt=Δm(t)Δv
(1)
(2)
其中,F(t)为作物的对冲量板的冲击力;Δt为作物对冲量板的作用时间;Δm(t)为t时刻作用时间段的作物质量之和;q(t)为t时刻作物对冲量板的冲量之和。
对于冲量式流量测重传感器,假设联合收割机运行速度恒定,则单位时间内作物质量与流量传感器冲量的计算公式为
mi=kui
(3)
其中,k为冲量系数;ui为流量传感器瞬时电压。
图1 冲量式流量传感器结构示意图
1.2 测产系统工作原理
联合收割机在正常作业过程中,作物从收割台进入,由输送装置喂入至脱粒装置处,经过脱粒、谷穗分离后集中到储藏仓,然后由传送带将粮食送到运输车上。其中,作物产量由测产系统通过收获的作物质量、面积、谷物含水率计算得到。在计算过程中,由于收割机每一单位时间的数据不连续且变化较大,因此每隔单位周期T进行1次数据采集。第i块单位区域作物单产量为
(4)
其中,fi为第i块单位区域作物单产量(kg/hm2);mi为第i块区域作物总产量(kg);vi为该区域收割机的运行速度(m/s);wi为收割机的割窗宽度(m)。
由于在作物收割时水分占据质量比较大,因此在测产过程中需要去除作物的含水量,以合格作物含水率进行计算。另外,对作物的收获损失也要进行考虑,则第i块区域作物单产量(无含水量)为
(5)
其中,fid为第i块单位区域作物的干重单产量;hα为收割时作物的含水量;hγ为收割时作物的含水量;η为作物收获损失率。
在联合收割机测产作业过程中,各单位产量可以存在差异,因此计算某一区域产量时结合多个单位区域数据会得到较为准确的结果。假设第k个区域内有n个单位区域采样点,结合式(3)和式(5)可得该区域的干重单产量fk为
(6)
2 联合收割机测产系统组成框架
联合收割机测产系统是结合传感器和微处理器技术优势的一种智能型测量系统,包括Exynos4412、SD存储卡,以及冲量式流量、含水率、地速、割台高度等传感器,其组成框架如图2所示。
图2 联合收割机测产系统组成框架图
当联合收割机测产系统工作时,传感器组会测出单位时间T的谷物流量、作物含水率、收割机前行速度及割台高度等,同时将速度经过处理后发送给微处理器进行单位面积的干重产量计算,最后将产量实时显示在显示终端上和存储至SD卡。
3 测产系统的软硬件设计
3.1 采摘机械手系统硬件平台
1)Exynos4412嵌入式硬件平台的搭建。Exynos4412嵌入式平台的搭建主要包括CPU的选型、Linux操作系统的确定,以及SDRAM(512MB)、NandFlash(1G)、NorFlash(16MB)、网口(10M)、串口、SD卡和嵌入式外围设备的参数选定。该平台由Exynos4412、显示屏、数据存储、通信和电机启动驱动模块组成。Exynos4412嵌入式平台框架如图3所示。
图3 Exynos4412嵌入式平台框架图
由图3可知:该平台主要包括三大模块:①CPU及SDRAM、NAND Flash存储模块;②电源、时钟和复位电路;③显示屏和电机驱动模块。
2)测产系统流量传感器电路设计。测产系统流量传感器电路是整个系统最为核心的部分,作物收割质量由数据采集电路将质量信号转化为电压信号,这部分由冲量式流量传感器实现。冲量式流量传感器产生的电压比较微弱(mV级别),因此通常需要运放电路放大处理后再接至Exynos4412的GPIO管脚。测产系统流量传感器电路设计如图4所示。
图4 测产系统流量传感器电路图
测产系统采用BLR高精度桥式冲压式电路采集作物冲击冲量板的质量,该桥式电路精度高、稳定性好。该模块供电电压为+12V,输出的电压信号在mV级别。一般来说,mV级别的信号放大需要极低的失调电压,因此采用ADI公司生产的运算放大器AD8554。该运放失调电压典型值为1uV,用于mV信号放大非常合适。
在收割机作业过程中,可能会因为地形和收割机自身的振动而使传感器采集信号受到噪声的影响。冲量产生的电压信号相对于噪声是一种低频信号,在冲量信号经过AD8554运放放大处理后可以接一个低通滤波器对噪声进行去噪处理。本文采用一个OP07的低通滤波器对噪声信号进行处理。
3.2 采摘机械手系统软件平台
1)Exynos4412嵌入式软件平台的移植。Exynos4412软件平台的移植是通过交叉开发工具在宿主机上,向硬件平台移植Linux系统。Exynos4412软件平台的移植流程如图5所示。
图5 Exynos4412软件平台的移植流程
Step1:创建交叉开发环境。该部分主要是在宿主机上,搭建编辑器、交叉编译器、交叉链接器及交叉调试器等工具链。
Step2:移植Bootloader。尽管各种Bootloader之间细节差异较大,但具体流程却大相径庭,主要包括BL1和BL2两部分。BL1采用汇编语言编写,首先是进行基本的硬件初始化,加载BL2到RAM,并跳转到BL2处开始执行BL2的代码;BL2采用C语言编写,首先是对时钟信号、串口的初始化,然后对系统内存映射进行检测,接着加载内核镜像和fs根文件系统,最后设置Linux的启动参数。
Step3:移植Linux内核。Linux内核代码分为Stage1和Stage2两个阶段。Stage1阶段主要是检查Linux内核是否支持该CPU和开发板;Stage2阶段则是进行MMU初始化,清除bss段,设置SP堆栈,初始化系统各个软件子系统,挂载fs根文件系统,并运行init进程。
Step4:制作根文件Ramdisk.img。本文采用Busybox-1.22.1工具制作根文件系统,主要包括Busybox源码的编译、配置、安装、库的添加、inittab文件的添加、fstab文件的添加及rcS文件的创建等。
Step5:驱动程序的移植。主要是对电机驱动、网卡驱动、USB及UART串口驱动进行移植。
Step6:开发应用程序。编写联合收割机测产子系统程序等。
2)测产系统主程序设计。联合收割机测产系统软件包括主程序、测产子系统、数据采集与传输、显示、终端、串口通讯及初始化模块等。测产系统主程序框图如图6所示。
图6 测产系统主程序流程图
主程序核心代码如下所示:
int main(void)
{
uint8_t ret = 0;//判断硬件控制是否成功,1为成功
int8_t send_pack_count = 0;
uint8_t send_pack_buf[8] = {0};
SystemInit();
GPIOInit();
// Enables clock for GPIO
HardwareInit();// 相关硬件初始化
LPC_IOCON->PIO0_1 &= ~0x07;
LPC_IOCON->PIO0_1 |= 0x01;/* CLK OUT */
SysTick_Config(48000);
SPI_IOConfig(0);//SPI0 initialization(LED屏相关配置)
SPI_Init(0, 8, 2);
OLED_Init_I();
//Led屏初始化
UARTInit(115200);
NVIC_SetPriority(UART_IRQn, 2);
SPI_IOConfig(1);//SPI1 initialization
SPI_Init(1, 8, 2);
SPI752_Init(1, 115200);//Set SPI752_Init
WDTInit();/* 看门狗初始化 */
delay_ms(200);
weight _signal();
}
4 试验与结果分析
应用本文设计的联合收割机测产系统,于水稻收获时节在某水稻种植示范区进行了水稻收割测产试验,以验证系统测产准确性和稳定性。试验条件如表1所示。为了提高试验的可靠性和准确性,本文一共进行了8次测试,测试结果如表2所示。
表1 试验条件
表2 测试结果
由表2可以看出:联合收割机测产系统相对误差在8%内,准确率较高,能够达到设计要求。
5 结论
针对现代农业智能测产技术的发展需求,以作物测产系统为研究对象,设计了基于Linux和Exynos4412的联合收割机测产系统。该系统硬件由Exynos4412处理器结合冲量式流量传感器、流量传感器电路设计和显示界面组成;软件以C语言编写开发,包括linux底层系统的移植、系统主程序及测产子系统等。试验结果表明:联合收割机测产系统相对误差在8个百分点以内,准确率较高,能够达到设计要求。