李 蕓, 李慧慧, 申曉月, 彭佳卉
(太原工業(yè)學院, 山西 太原 030008)
隨著智能化技術的不斷發(fā)展,自動化技術愈發(fā)成熟,廣泛應用到工業(yè)或者生產(chǎn)領域,如工廠、地下礦井、自動化倉庫的物料抓取、物品搬運等,智能物料運輸車有很大的優(yōu)越性,減少了人力資源的浪費,提高了工作效率。本文設計的智能物料運輸小車,采用STM 32 單片機作為主控器,L298N 作為直流異步電機驅動,用機械臂實現(xiàn)物料抓取,通過藍牙通信,智能遙控實現(xiàn)物料運輸車前進、后退、左轉、右轉、上臺操作。
本設計采用STM32F103C8T6 芯片作為微控制器,將機械臂安裝在智能車上,控制機械臂的開合來抓取物料,機械手可以完成全方面抓取作業(yè)。通信系統(tǒng)采用藍牙模塊,智能車行進采用L298N 電機驅動模塊,通過遙控模塊進行控制,可以前進、后退、左轉、右轉、上臺。
智能物料運輸小車硬件部分主要包括微控制器模塊、電機驅動模塊、機械模塊、遙控模塊、藍牙通信模塊等。
本設計采用STM32F103C8T6 芯片作為系統(tǒng)主控模塊,一款基于ARM Cortex-M 內核STM32 系列的32 位的微控制器,具有體積小、功耗低、成本低、性能高的特點[1]。程序存儲器容量是64 kB,擁有32 個通用I/O 口,工作電壓2~3.6 V[2]。它的主頻為72 M,可快速完成對藍牙模塊接收數(shù)據(jù)的處理。遙控器發(fā)出相應指令,通過藍牙通信模塊傳輸?shù)街骺匦酒?,然后主控芯片對接收指令進行處理,并通過I/O 控制端口發(fā)出指令,使其執(zhí)行相應操作。主控模塊引腳連接原理如圖1 所示。
圖1 主控模塊引腳連接原理
在L298N 步進電機驅動模塊中,L298N 來控制電機的正反轉,利用L298N 實現(xiàn)電機驅動及其正反轉。單片機PA15、PB3、PB4、PB5、PA2、PA3、PA4、PA5 接口分別與L298N 的輸入引腳連接,四個直流電機與驅動芯片的8 個OUT 輸出口相連,從而驅動直流電機轉動。
本設計中智能物料運輸小車的機械臂是基于STM32 控制的一個SG90 舵機和兩個MG995 舵機,其中SG90 舵機控制機械爪的張開與閉合,另外兩個MG995 舵機控制機械臂的運行。機械模塊依靠舵機通過增加扭矩來使得機械臂桿進行翻轉,帶動整體機械臂協(xié)調運動,以實現(xiàn)機械臂桿在空間內進行配合或單獨運作,進而操縱機械爪對物塊進行精確抓取,機械臂如圖2 所示。
圖2 機械臂
SG90 舵機的工作扭矩為:1.6 kg/cm,使用電壓為5 V,采用LM2596S DC-DC 直流可調降壓穩(wěn)壓模塊,電壓輸入為直流3~40 V,輸出為直流1.5~35 V,電壓連續(xù)可調,高效率最大輸出電流為3 A,足夠供給整個機械結構穩(wěn)定正常運行[3]。
本設計遙控模塊采用智能游戲手柄樣式進行機械設計與裝配,外形簡單美觀,易于操作者手持控制,其主體包括:按鍵、LM2596S DC-DC 直流可調降壓穩(wěn)壓模塊、電源部分采用18650 三節(jié)鋰電池串聯(lián)組成的12 V 電源以及船型開關。由LM2596S DC-DC 直流可調降壓穩(wěn)壓模塊將電壓調至5 V 給按鍵供電,以實現(xiàn)按鍵在STM32 控制下經(jīng)藍牙控制模塊輸出信號來控制智能車的動作。
本設計采用HC-06 藍牙模塊進行通信,HC-06是主從一體化的藍牙串口模塊,主從可指令切換,指令少,功能穩(wěn)定,且使用簡單,建立連接后方可接收數(shù)據(jù)信號[4]。
在定義好I/O 口后,通過串口通信來發(fā)送相應指令到小車藍牙接收端,控制小車的機械臂、機械爪、控制爪、上臺結構、前進、后退、左轉、右轉,機械臂串口通信按鍵控制部分程序如下所示:
if(key4==0)//機械臂
{
delay_ms(10);
if(key4==0)
{
USART_SendData(USART1,'e');
while(key4==0);
USART_SendData(USART1,'E');
}
}
if(key5==0)//機械臂
{
delay_ms(10);
if(key5==0)
{
USART_SendData(USART1,'f');
while(key5==0);
USART_SendData(USART1,'F');
}
}
在接收到發(fā)送端傳輸?shù)闹噶詈螅M行判斷,如果與發(fā)送指令相符,接收端將執(zhí)行相應動作。部分接收端程序如下:
if(Res=='j') //motor
{
car_go_forward();
}
else if(Res=='k')
{
car_go_backward();
}
else if(Res=='l')
{
car_go_left();
}
通過定義I/O 口使小車的兩個驅動有特定的時鐘TIM4 控制功能,再定義電機的I/O 口,使其能在高低電平轉換下實現(xiàn)前進、后退、左轉、右轉,通過調節(jié)PWM占空比來調節(jié)小車的行進速度(占空比越大越快,但不能超過設定值)。例如要讓小車右轉需要讓左側電機正轉,右側電機反轉實現(xiàn)。電機驅動模塊驅動小車前進部分控制程序如下:
void car_go_forward()
{
IN1=1;IN2=0;//左前
TIM_SetCompare1(TIM4,700);
IN3=1;IN4=0;//左后
TIM_SetCompare2(TIM4,700);
IN5=1;IN6=0;//右前
TIM_SetCompare3(TIM4,700);
IN7=1;IN8=0;//右后
TIM_SetCompare4(TIM4,700);
}
在對小車上的四個舵機進行相應的I/O 口定義后,時鐘TIM3 為其使能口,通過PWM占空比的輸出信號來確定舵機的旋轉角度,開機時給定舵機一個初始位置,并對接收到的信號進行判斷,當相應按鍵按下,例如在控制機械臂的按鍵按下判斷是否為“e”,若為e 則占空比增加,若為f 則占空比減小,進而實現(xiàn)機械臂的轉動,因此4 個舵機可單獨運行。部分程序如下:
if(Res=='e')//機械臂
{
jxb1=jxb1+40;
if(jxb1>1945)
{jxb1=1945;}
TIM_SetCompare3(TIM3,jxb1);
delay_ms(90);
}
if(Res=='f')//機械臂
{
jxb1=jxb1-30;
if(jxb1<1760)
{jxb1=1760;}
TIM_SetCompare3(TIM3,jxb1);
delay_ms(90);
}
在硬件控制方面,游戲手柄樣式的遙控器在結構上具備了靈巧舒適易于操作的特點,其內部裝設的12 個按鍵的電路系統(tǒng)相互獨立,遙控器如圖3 所示,保證了實際操作時每個按鍵的作用,LM2596S 穩(wěn)壓保障了整個電路系統(tǒng)穩(wěn)定輸出5V 直流電壓,從而確保了操作的流暢度[5]。
圖3 遙控器
在軟件設計上,遙控器發(fā)送端將按鍵連接的單片機引腳口進行特殊設置,在按鍵未按下時設置為高電平,當按鍵按下時為低電平,以此保證信號發(fā)送的穩(wěn)定性。部分程序如下:
GPIO_SetBits(GPIOB,GPIO_Pin_4);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOB,GPIO_Pin_6);
GPIO_SetBits(GPIOB,GPIO_Pin_8);
GPIO_SetBits(GPIOB,GPIO_Pin_9);
GPIO_SetBits(GPIOB,GPIO_Pin_10);
GPIO_SetBits(GPIOB,GPIO_Pin_11);
GPIO_SetBits(GPIOB,GPIO_Pin_13);
GPIO_SetBits(GPIOB,GPIO_Pin_14);
GPIO_SetBits(GPIOB,GPIO_Pin_15);
GPIO_SetBits(GPIOA,GPIO_Pin_5);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
接收端為智能物料運輸小車,在經(jīng)過嚴格考量后確定了電路板以及機械臂等組件的位置,保證接收和執(zhí)行的精確性。經(jīng)測試其搬運物料的效率穩(wěn)定,智能物料運輸小車如圖4 所示。
圖4 智能物料運輸小車
本設計完成了一種基于STM32F103C8T6 芯片的智能物料抓取、運輸小車,采用藍牙和串口通信方式,利用藍牙操控機械臂、機械爪和控制爪,使用L298N驅動芯片作為動力系統(tǒng)。該智能小車克服了機械臂的不可動的弊端,實用性強,實現(xiàn)了物料抓取、運輸?shù)裙δ躘6]。通過實驗測試證明,該智能小車運行平穩(wěn)、機械臂工作精度高,具有現(xiàn)實意義。