作者/顧敏鑫、陶杰,蘇州農業職業技術學院
基于wif i和組態技術的舵機遠程控制系統設計與實現
作者/顧敏鑫、陶杰,蘇州農業職業技術學院
本文利用wifi技術設計一ASMC-03大扭矩舵機遠程操控系統,采用 LAPIS的ML610Q496作為MCU制作遠程驅動終端,使用USR C210WiFi模塊實現wifi通信、TLC5618 DAC控制舵機,并定義了上層通信協議,編寫程序,利用組態王設計操作界面,并和數據庫聯接,實現遠程操控舵機和舵機角度查詢。
組態技術;wif i;ML610Q496;遠程驅動
ASMC–03大扭矩舵機模塊,可用于機器人、機械臂、閥門控制,攝像機云臺控制等方面,本項目將其用于遠程攝像機底座控制,實現遠程調節攝像機視角功能。可采用模擬/脈沖兩種方式控制。本項目采用模擬電壓模式控制,輸入電壓為0–5V,0.22V對應0゜,4.78V對應300゜。
整個項目設計方案如圖1所示,由監控終端、驅動終端、AP、數據庫服務器等組成系統。監控終端通過互聯網連接AP,AP與驅動終端之間通過無線網通信,監控終端可遠程發指令給驅動終端操控電機,并可通過指令查詢舵機的位置數據,存儲在數據庫服務器,監控終端可查詢實時數據和歷史記錄。

圖1 系統示意圖
驅動終端電路主要包括MCU、wif i模塊、ADC模塊,以及輔助的接口連接電路。MCU與wif i模塊通過串口通信,接入wif i。MCU通過I2C與DAC模塊通信,通過DAC輸出電壓,控制舵機驅動模塊,硬件組成如圖2所示。

圖2 硬件組成示意圖
驅動終端的MCU采用 LAPIS的ML610Q496,采用5V電壓供電,可提供的接口有UART(5通道)、SPI(1通道)、I2C(1通道)。限于篇幅,其最小系統的電路圖可參考相關手冊資料[2]
Wif i模塊采用USR–C210,提供串口與wif i的轉換功能,其與MCU之間通過串口連接[3]。因該模塊采用3.3V電壓供電所有與MCU的串口之間需要加接電壓轉換電路,其與MCU的電路圖如圖3所示,包括WRXD、WTXD;以及復位端WREST,用于模塊復位, 低電平有效,拉低至少100ms。

圖3 wifi模塊電路圖
本項目采用 DAC模塊,可實現雙路12位的DAC,采用5V電壓供電。MCU與TLC5618DAC模塊采用I2C總線通信,實現DAC模擬量輸出控制。
就整個系統而言,經過互聯網、AP、wif i模塊和串口的傳送,在MCU和遠程上位機之間進行數據透傳,為了統一上層數據的含義,制定了上層通信協議,定義的格式如下:

表頭(1B)地址碼(4B)分割碼(1B)命令碼(1B)數據長度(1B)傳送數據(≤256B)和校驗(1B)表尾(1B)68 A0 A1 A2 A3 68 CMD LEN D0~Dn CS 16
其中,LEN 為需要傳送的數據長度,占用1B,如果不需要傳送數據,LEN=0;D0~Dn 為傳送的數據,低位在前、高位在后,不超過256字節。 上層通信協議支持1條查詢指令、1條控制指令。查詢指令的命令碼CMD為0x01,用來獲取相應的舵機數據。數據長度為 0x00;對應的返回數據幀命令碼CMD為0x01,數據長度為1,數據為HEX,表示當前舵機的角度,范圍在0~180°。
控制指令的命令碼CMD為0x02,用來控制相應的舵機轉動。數據長度為 0x10;數據內容為 C0 C1兩個字節,其中C0 為控制使能:0不控、1使能控制;C1為HEX,表示0~180°的控制角度;對應的返回數據幀命令碼CMD為0x02,數據長度為1,數據為HEX,表示當前舵機的角度,范圍在 0~180°。
具體組幀時,采用數組g_Wif i Buf [ ]實現,圖4所示為返回數據幀組幀的流程圖,用于查詢和設置后的返回數據,g_add[4]為節點地址,g_servoAngle[6]為當前舵機角度;GetChecksum(g_Wif i Buf [0],pos)為和校驗函數,從數組g_Wif i Buf [0]起始,共有pos個字節相加產生和校驗碼。
另外,本項目沒有采用wif i模塊提供的自帶心跳包功能,在應用層利用上層通信協議自定義了心跳幀,每隔2s發送,定義其命令碼CMD為0xFE,上傳數據內容是當前心跳包計數值。
整個終端模塊的主流程分為四個階段,包括開機處理、初始化、主循環任務、各子任務分解。系統流程圖如圖5所示,開始階段單片機開機初始化,主要進行上電自檢、芯片startup等工作。而后進行硬件初始化,包括各引腳的配置、RAM、Flash、串口通信等方面的參數設置,主流程中采用查詢方式,根據串口中斷的處理情況,進行上位機查詢和控制命令處理;根據2s定時中斷標記,發送心跳包和處理響應情況。
操作界面采用組態軟件Kingview7.0,設計操作和監控界面。數據庫采用mySQL5.5,當操作界面有動作,命令舵機轉動或查詢舵機角度,則將給定角度和查詢時間刷新,寫入mySQL數據庫中對應的實時數據表,并通過觸發器在操作記錄表中插入一條操作記錄。上位機軟件采用c#編程,每隔1s從操作記錄表中讀取最新操作記錄,判斷是否有新的操作,并根據上層通信協議組幀,下發給驅動終端,并接受驅動終端的返回數據,寫入數據庫內;同時每隔2s,接收上傳的心跳幀進行處理。

圖4 上層幀組幀流程圖
操作界面涉及的各個參數,主要包括各個舵機的位置設定值、實時角度,以及操作按鈕、查詢按鈕對應的開關量,在上位機系統的ODBC數據源管理器中添加mySQL數據庫驅動程序后,通過組態軟件工程瀏覽器中提供的SQL訪問管理器工具,創建記錄體,將變量與數據庫表中對應的字段聯接,并在組態畫面的命令語言中利用組態軟件提供的SQLConnect、SQLUpdate等數據庫訪問函數編程,即可實現組態界面訪問數據庫的功能[4]。

圖5 系統流程圖
根據手冊,在局域網內檢測調試,在USR–C210web設置頁面中,先設置wif i參數,設置wif i組網方式為STA,設置AP的網絡名稱和密碼,IP地址為192.168.1.101;在透傳參數設置中,先根據驅動終端規定的串口協議設置串口參數,而后將工作模式為透傳,SocketB協議設為TCP–Client,根據上位機的網絡編程設定端口為5555,選取服務器所在地址192.168.1.200,將上位機作為服務器,設置IP地址,查看數據庫和操作界面,通過測試,系統能夠實現預期的控制效果,滿足監控需要。
* [1] 陶杰,聶瓊,過琦芳.基于zigbee與PLC的圈舍環境監控系統設計與實現[J].江蘇農業科學 2015(43):458-462.
* [2] 高新,張俊哲,耿春麗.基于ML610Q496掉電事件采集器的設計.電測與儀表2016(53):50-53
* [3] 楊玲,朱江,程勇,劉秋玥.基于安卓的無線體征信息監測系統設計與實現.電子測量技術2015(38):121-124
* [4] 孫明革,朱喜林.基于組態王軟件下的SQL數據庫技術.控制系統2006(22):109-111
蘇州農業職業技術學院優秀畢業論文資助項目(LWXT201710)