基于STM32 的智能物料运输小车的设计与实现

2023-10-23 03:11李慧慧申晓月彭佳卉
现代工业经济和信息化 2023年8期
关键词:舵机按键蓝牙

李 芸, 李慧慧, 申晓月, 彭佳卉

(太原工业学院, 山西 太原 030008)

0 引言

随着智能化技术的不断发展,自动化技术愈发成熟,广泛应用到工业或者生产领域,如工厂、地下矿井、自动化仓库的物料抓取、物品搬运等,智能物料运输车有很大的优越性,减少了人力资源的浪费,提高了工作效率。本文设计的智能物料运输小车,采用STM 32 单片机作为主控器,L298N 作为直流异步电机驱动,用机械臂实现物料抓取,通过蓝牙通信,智能遥控实现物料运输车前进、后退、左转、右转、上台操作。

1 总体设计

本设计采用STM32F103C8T6 芯片作为微控制器,将机械臂安装在智能车上,控制机械臂的开合来抓取物料,机械手可以完成全方面抓取作业。通信系统采用蓝牙模块,智能车行进采用L298N 电机驱动模块,通过遥控模块进行控制,可以前进、后退、左转、右转、上台。

2 智能物料运输小车硬件电路设计

智能物料运输小车硬件部分主要包括微控制器模块、电机驱动模块、机械模块、遥控模块、蓝牙通信模块等。

2.1 主控模块硬件设计

本设计采用STM32F103C8T6 芯片作为系统主控模块,一款基于ARM Cortex-M 内核STM32 系列的32 位的微控制器,具有体积小、功耗低、成本低、性能高的特点[1]。程序存储器容量是64 kB,拥有32 个通用I/O 口,工作电压2~3.6 V[2]。它的主频为72 M,可快速完成对蓝牙模块接收数据的处理。遥控器发出相应指令,通过蓝牙通信模块传输到主控芯片,然后主控芯片对接收指令进行处理,并通过I/O 控制端口发出指令,使其执行相应操作。主控模块引脚连接原理如图1 所示。

图1 主控模块引脚连接原理

2.2 电机驱动硬件设计

在L298N 步进电机驱动模块中,L298N 来控制电机的正反转,利用L298N 实现电机驱动及其正反转。单片机PA15、PB3、PB4、PB5、PA2、PA3、PA4、PA5 接口分别与L298N 的输入引脚连接,四个直流电机与驱动芯片的8 个OUT 输出口相连,从而驱动直流电机转动。

2.3 机械模块

本设计中智能物料运输小车的机械臂是基于STM32 控制的一个SG90 舵机和两个MG995 舵机,其中SG90 舵机控制机械爪的张开与闭合,另外两个MG995 舵机控制机械臂的运行。机械模块依靠舵机通过增加扭矩来使得机械臂杆进行翻转,带动整体机械臂协调运动,以实现机械臂杆在空间内进行配合或单独运作,进而操纵机械爪对物块进行精确抓取,机械臂如图2 所示。

图2 机械臂

SG90 舵机的工作扭矩为:1.6 kg/cm,使用电压为5 V,采用LM2596S DC-DC 直流可调降压稳压模块,电压输入为直流3~40 V,输出为直流1.5~35 V,电压连续可调,高效率最大输出电流为3 A,足够供给整个机械结构稳定正常运行[3]。

2.4 遥控模块

本设计遥控模块采用智能游戏手柄样式进行机械设计与装配,外形简单美观,易于操作者手持控制,其主体包括:按键、LM2596S DC-DC 直流可调降压稳压模块、电源部分采用18650 三节锂电池串联组成的12 V 电源以及船型开关。由LM2596S DC-DC 直流可调降压稳压模块将电压调至5 V 给按键供电,以实现按键在STM32 控制下经蓝牙控制模块输出信号来控制智能车的动作。

2.5 蓝牙通信模块

本设计采用HC-06 蓝牙模块进行通信,HC-06是主从一体化的蓝牙串口模块,主从可指令切换,指令少,功能稳定,且使用简单,建立连接后方可接收数据信号[4]。

3 智能物料运输小车软件设计

3.1 蓝牙发送模块软件设计

在定义好I/O 口后,通过串口通信来发送相应指令到小车蓝牙接收端,控制小车的机械臂、机械爪、控制爪、上台结构、前进、后退、左转、右转,机械臂串口通信按键控制部分程序如下所示:

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');

}

}

3.2 蓝牙接收模块软件设计

在接收到发送端传输的指令后,进行判断,如果与发送指令相符,接收端将执行相应动作。部分接收端程序如下:

if(Res=='j') //motor

{

car_go_forward();

}

else if(Res=='k')

{

car_go_backward();

}

else if(Res=='l')

{

car_go_left();

}

3.3 电机驱动模块软件设计

通过定义I/O 口使小车的两个驱动有特定的时钟TIM4 控制功能,再定义电机的I/O 口,使其能在高低电平转换下实现前进、后退、左转、右转,通过调节PWM占空比来调节小车的行进速度(占空比越大越快,但不能超过设定值)。例如要让小车右转需要让左侧电机正转,右侧电机反转实现。电机驱动模块驱动小车前进部分控制程序如下:

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);

}

3.4 机械部分控制模块

在对小车上的四个舵机进行相应的I/O 口定义后,时钟TIM3 为其使能口,通过PWM占空比的输出信号来确定舵机的旋转角度,开机时给定舵机一个初始位置,并对接收到的信号进行判断,当相应按键按下,例如在控制机械臂的按键按下判断是否为“e”,若为e 则占空比增加,若为f 则占空比减小,进而实现机械臂的转动,因此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);

}

4 测试结果

在硬件控制方面,游戏手柄样式的遥控器在结构上具备了灵巧舒适易于操作的特点,其内部装设的12 个按键的电路系统相互独立,遥控器如图3 所示,保证了实际操作时每个按键的作用,LM2596S 稳压保障了整个电路系统稳定输出5V 直流电压,从而确保了操作的流畅度[5]。

图3 遥控器

在软件设计上,遥控器发送端将按键连接的单片机引脚口进行特殊设置,在按键未按下时设置为高电平,当按键按下时为低电平,以此保证信号发送的稳定性。部分程序如下:

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);

接收端为智能物料运输小车,在经过严格考量后确定了电路板以及机械臂等组件的位置,保证接收和执行的精确性。经测试其搬运物料的效率稳定,智能物料运输小车如图4 所示。

图4 智能物料运输小车

5 结论

本设计完成了一种基于STM32F103C8T6 芯片的智能物料抓取、运输小车,采用蓝牙和串口通信方式,利用蓝牙操控机械臂、机械爪和控制爪,使用L298N驱动芯片作为动力系统。该智能小车克服了机械臂的不可动的弊端,实用性强,实现了物料抓取、运输等功能[6]。通过实验测试证明,该智能小车运行平稳、机械臂工作精度高,具有现实意义。

猜你喜欢
舵机按键蓝牙
蓝牙音箱的直线之美
基于有限状态机的按键检测程序设计
含齿隙弹载舵机的全局反步模糊自适应控制
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
紧急:蓝牙指尖陀螺自燃!安全隐患频出
一种多方向导光按键结构设计
基于云模型的舵机同步控制