胡宸晗
(南京市第二十九中學,江蘇南京,210036)
我國自古以來就是農業(yè)大國,農業(yè)一直作為經(jīng)濟民生領域的重要支柱產業(yè)。播種是農業(yè)生產的關鍵環(huán)節(jié)之一,精量播種方式不僅播種效率高,節(jié)約人力物力,而且能夠節(jié)約種子、化肥、農藥等農用物資,大大提高了農作物的生產效率,而且節(jié)約了大量成本,增加了農民的經(jīng)濟效益[1],種子數(shù)量的實時監(jiān)測是實現(xiàn)精量播種的關鍵環(huán)節(jié)之一。在培育、選種、產量預測等過程中千粒質量是一個重要的指標,也需要對種子進行實時自動計數(shù)。傳統(tǒng)采用人工數(shù)種的方式,繁瑣枯燥、勞動強度大、效率低,并且非常容易出錯。因此進行精確的種子自動計數(shù)已成為農業(yè)生產中一個亟待解決的問題。
壓電傳感器是利用壓電元件受力后產生的壓電效應制成的傳感器,具有體積小、重量輕、結構簡單,靈敏度高、響應速度快等優(yōu)點[2],可用于種子撞擊等振動信號的測量。本文設計了一種基于Arduino和壓電傳感器的種子自動計數(shù)系統(tǒng),利用壓電傳感器檢測種子撞擊懸臂梁產生的振動,轉化為電壓信號,采用Arduino微控制器進行自動計數(shù)和顯示。本系統(tǒng)具有結構簡單、測量精度高等優(yōu)點,能夠滿足種子自動計數(shù)的實際需求。
種子自動計數(shù)系統(tǒng)主要由導種管、懸臂梁、壓電傳感器、Arduino微控制器、LCD顯示器等部分組成,總體結構如圖1所示。當種子沿著導種管從一定高度落下時,撞擊在傾斜放置的懸臂梁上,產生一定振幅的振動信號傳遞到貼在懸臂梁下方的壓電傳感器上,使得壓電傳感器產生正壓電效應輸出變化的電壓信號,經(jīng)信號處理電路輸入Arduino微控制器中進行計數(shù)。
為了使得種子落下撞擊懸臂梁后能夠順利彈開,避免二次撞擊產生的干擾,將懸臂梁與水平面呈現(xiàn)45°傾角進行固定,種子由導種管引向懸臂梁下端。
用粘接劑將壓電陶瓷片粘貼在正對種子撞擊的懸臂梁背面區(qū)域,懸臂梁另一端固定[3]。當種子逐個從上方落下撞擊懸臂梁及壓電傳感器,用Arduino微控制器記錄電壓信號變化的次數(shù)即可得到種子的數(shù)量,并在LCD液晶顯示器上進行顯示。系統(tǒng)工作過程如圖2所示。
圖1 系統(tǒng)總體結構
壓電傳感器的工作原理是基于壓電材料的壓電效應,石英晶體的壓電效應早在1680年即已發(fā)現(xiàn)。某些電介質在沿一定方向上受到外力的作用而變形時,其內部會產生極化現(xiàn)象,同時在它的兩個相對表面上出現(xiàn)正負相反的電荷。當外力去掉后,它又會恢復到不帶電的狀態(tài),這種現(xiàn)象稱為正壓電效應[4]。當作用力的方向改變時,電荷的極性也隨之改變。相反,當在電介質的極化方向上施加電場,這些電介質也會發(fā)生變形,電場去掉后,電介質的變形隨之消失,這種現(xiàn)象稱為逆壓電效應[2]。具有壓電效應的電介質物質稱為壓電材料,其中石英晶體是良好的純天然壓電晶體,此外還有壓電陶瓷、高分子壓電材料等,也同樣具有良好的壓電轉換功能。
綜合考慮檢測精度、成本等因素選用壓電陶瓷作為種子沖擊檢測傳感器。壓電陶瓷和接線電路板如圖3所示。
圖2 系統(tǒng)工作過程框圖
Arduino是一個開源的軟硬件開發(fā)平臺,功能強大、體積小巧。主要包括用來做電路連接的Arduino電路板和Arduino IDE集成開發(fā)環(huán)境。Arduino可以通過傳感器來采集數(shù)據(jù),通過控制電機、LED燈和其他裝置來實現(xiàn)控制功能。用戶在IDE中編寫程序,編譯成二進制文件燒錄進Arduino微控制器后,便可在程序的控制下實現(xiàn)相應功能。Arduino是硬件軟件都開源的,相比于C51、STM32等硬件平臺使用更加簡單,完全脫離了寄存器的配置,幾乎所有功能都已經(jīng)有了上層庫調用,透明掉了大部分與硬件相關的操作,對于不熟悉微控制器硬件結構和寄儲器配置的用戶而說,使用起來非常方便。
圖3 壓電陶瓷和接線電路板
選用Arduino Uno開發(fā)板作為種子自動計數(shù)系統(tǒng)的控制器,其核心是一款高性能、低功耗的AVR 8位微控制器ATmega328p,ATmega328p采用RISC結構,擁有131條指令,絕大多數(shù)為單時鐘執(zhí)行,包括32個8位通用工作寄存器,32KB Flash,1KB EEPROM,2KB的片內SRAM[5]。具有14個數(shù)字I/O接口(其中6路可用于PWM輸出),6路模擬輸入接口,1個16MHz的晶振,1個電源插座,1個USB接口,還有很多擴展用的電路插座[6],能夠滿足種子自動計數(shù)和實時顯示的要求。
LCD1602是一款用來顯示字母、數(shù)字和符號的點陣型液晶顯示器,能同時顯示兩行,每行16個字符,具有控制簡單、成本低等優(yōu)點。由于ATmega328p的輸入/輸出引腳數(shù)量比較有限,采用帶IIC接口的LCD1602液晶顯示模塊。IIC即Inter-Integrated Circuit(集成電路總線),由飛利浦半導體公司在八十年代初設計出來的一種總線結構。IIC串行總線有2根雙向信號線,一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。IIC總線通過上拉電阻接電源,當總線沒有數(shù)據(jù)傳輸時,兩根線為高電平。IIC總線上傳送的數(shù)據(jù)信號是廣義的,包括地址和實際的數(shù)據(jù)信號。在IIC模式下僅需SDA、SCL、VCC、GND 4根線即可與Arduino微控制器通信,接線簡單,節(jié)省I/O口資源。
種子自動計數(shù)系統(tǒng)的軟件是在Arduino官方的集成開發(fā)環(huán)境下運用C語言進行開發(fā)的。IDE開發(fā)環(huán)境自帶串口通信工具,為調試程序帶來了方便。
系統(tǒng)上電或復位后程序開始執(zhí)行,首先對各部分進行初始化,包括串口、LCD顯示模塊、重置各變量初始值等。將壓電傳感器采集到的電壓值進行AD轉換,并與程序中設定的閾值進行比較,進行種子計數(shù)判斷,如果采集到的電壓值大于閾值,將保存種子數(shù)量的變量加1,并送到LCD液晶顯示模塊進行顯示,同時進行串口輸出可以在電腦中的Arduino開發(fā)環(huán)境中進行實時監(jiān)測。如果壓電傳感器采集到的電壓值小于閾值,判斷為一次干擾信號,種子計數(shù)變量不增加。程序流程圖如圖4所示。
圖4 程序流程圖
圖5 種子自動計數(shù)試驗裝置
根據(jù)系統(tǒng)的工作原理設計并制作了種子自動計數(shù)試驗裝置如圖5所示。試驗裝置主要包括鐵架臺、導種管、Arduino Uno開發(fā)板、LCD1602液晶顯示器、電源、電腦等。鐵架臺用于固定導種管和傾斜固定的懸臂梁,在懸臂梁背面粘貼壓電陶瓷振動傳感器,用于檢測種子撞擊的振動信號;采用塑料漏斗和PVC管作為導種管道,引導種子準確撞擊壓電傳感器敏感區(qū)域。當前計數(shù)值在LCD1602液晶顯示器上進行顯示,如圖6所示。
圖6 LCD1602顯示當前計數(shù)值
為了驗證種子自動計數(shù)系統(tǒng)的性能,將100粒紅豆采用單粒排種方式,在距壓電傳感器300mm高度處進行釋放,沿導種管下落,撞擊壓電傳感器敏感區(qū)域,100s內放完。重復5次,記錄檢測到種子數(shù)量,計算檢測誤差。試驗結果如表1所示。由表1計算得到種子自動計數(shù)平均誤差為1.8%,該系統(tǒng)能夠滿足種子自動計數(shù)的要求。
表1 種子自動計數(shù)試驗結果
本文設計的種子自動計數(shù)系統(tǒng)充分利用了Arduino微控制器功能強大、體積小巧、開發(fā)難度低和壓電陶瓷靈敏度高、響應速度快等優(yōu)點,通過壓電傳感器檢測種子下落的振動信號,在Arduino微控制器中實現(xiàn)自動計數(shù)。在自制的試驗裝置上進行了種子自動計數(shù)試驗,試驗結果表明,單粒紅豆排種計數(shù)的相對誤差小于3%,系統(tǒng)運行穩(wěn)定,測量精度高,可以廣泛應用于種子自動計數(shù)等領域。