基于ESP32的乒乓球发球机控制系统设计
扫描二维码
随时随地手机看文章
0引言
中国作为乒乓球大国拥有深厚的乒乓球文化底蕴和广泛的群众基础。乒乓球发球器在中国市场的发展,近年来呈现出显著的上升趋势。这种为乒乓球运动提供辅助的重要设备,广泛地应用于学校、家庭、俱乐部等场所的乒乓球教学和训练中[1]。它不仅能够减轻教练的工作负担,提高教学效率,还能够激发人们的学习兴趣和积极性。
根据乒乓球发球机所能实现的功能和整体结构的设计其价格也有很大的不同,由于体积较大,随着功能增多, 目前市场上所销售的乒乓球发球器其售卖价格从几百元到上千元不等,这对于选择辅助设备进行训练的人来说是一个比较大的开支。基于此,该设计选用成本较低且功能强大的单片机作为主控,采用wi-Fi控制方式使手机端与乒乓球发球器间进行交互通信,使其可编程性更强,功能实现更容易,从而大大减少了开发时间和成本,为使用发球设备的用户提高了便利性,减少了花销。
1硬件设计
1.1系统结构
乒乓球发球机选用ESP32作为主控芯片,通过中心代理服务器进行数据传输,其中MQTT协议保证了ESP32与手机之间的wi-Fi通信质量。MQTT协议提供了可靠的信息传输机制,确保了数据的准确性和及时性[2]。电机驱动模块选用L298N,可直接从单片机的I/O口接收控制信号。用户在手机APP上选择发球模式后,数据通过wi-Fi传输到ESP32,根据接收到的数据类型ESP32的GPIO口输出PwM信号并输入到L298N的端子使其对直流电机的速度进行控制调整,使发射出的乒乓球可以是旋球或不旋球,并在手机APP上显示当前发球模式。设计整体结构如图1所示。
1.1.1主控芯片特性
ESP32单片机支持IEEE802.11 b/g/n/e/i标准,集成了2.4 GHz蓝牙和wi-Fi的双模无线通信,这意味着它可以连接到大多数常见的wi-Fi网络[3]。ESP32具备高性能的主控和强大的驱动能力,具有外设功能高度集成、通信方便等优点,为用户缩短了开发周期,非常适合应用于智能开发设计。
ESP32单片机的工作电压为3.3 V,支持外部5~15 V电源供电。该设计使用5 V电源为ESP32供电,由板载稳压器转换为3.3 V给ESP32内部组件提供稳定的电压。开发板自身带有USB接口,可直接与电脑相连接用于程序烧录及电源供电。
1.1.2直流电机驱动电路
L298N是一款常见的驱动集成电路,可以用来驱动直流电机和步进电机、继电器、线圈等感性负载[4]。 L298N模块内部含有两个H桥驱动电路,每一个H桥由4个晶体管组成,电机则连接在H桥中央,每一个H桥可控制一个直流电机。 通过ESP32的GPIO口给电 机驱动模块IN1、IN2、IN3、IN4输出逻辑电平控制电机的正反转,由ESP32引脚为使能端子ENA、ENB输出PWM信号完成电机的调速。
电机驱动模块由12 V电源模块独立提供电压,驱动模块上的78M05稳压芯片,将12 V输入电压稳定降至5 V。GND是驱动模块的接地端,其引脚与ESP32共地[5]。硬件系统原理图如图2所示。
2 发球模式的实现
为乒乓球发球机设计了左旋球、右旋球、直球和随机球的发球模式,利用控制机构使两个电机产生速度差,使乒乓球发球机发射出不同旋向的球。
2.1 乒乓球发射原理
发射乒乓球采用对转双轮原理,即两个直流电机带动摩擦轮对向旋转,如图3所示。
若要使发射出的球是旋球,则需要两个电机的转速达到一定的速度差,不旋球即两个电机同速旋转。发射乒乓球时,通过高速旋转的摩擦轮对乒乓球施加摩擦力,在摩擦力的作用下乒乓球得到一定的初始发射速度从而发射出去。
设轮子的角速度分别为w1、w2,半径都为R,那么 就可以计算出轮子的线速度为:v1=w1R,v2=w2R[6]。
当w1=w2时,乒乓球不旋转,所获得的瞬时速度即初速度为:v=v1=v2;
当w1>w2时,乒乓球沿轮1方向旋转发出,所获得 的初速度为:v=(v1+v2)/2;
当w1<w2时,乒乓球沿轮2方向旋转发出,所获得的初速度为:v=(v1+v2)/2。
2.2 PWM控制直流电机调速
PWM(脉冲宽度调制)通过控制晶体管的开关动作来调节输出电压,当晶体管闭合时,输出电压达到最高;而晶体管断开时,输出电压降至零[7]。控制原理 如图4所示。图中脉冲信号的产生是半导体开关在T1内 导通,随后在T2 内断开,通过程序循环这一过程实现。基于此原理,电机的平均电压计算公式为ua=(T1/T)ud,T为脉冲周期,T1为高电平持续时间。占空比β定义为T1/T,ud不变。随着β增大,电机两端平均电压ua增大,电机转速随之升高;相反,如果β减小,则ua降低,电机转速下降。通过改变占空比,可以有效地控制直流电机两端的电压值,进而达到控制电机转速的效果。
3 软件设计
本设计的软件部分包括手机APP和单片机程序编写。手机APP软件为用户提供操作界面,完成控制指令的下发以及状态显示,单片机程序完成手机下发指令的解析并控制输出的PWM信号[8]。
3.1手机APP
手机APP的设计使用点灯(Blinker)作为开发平台,在APP中通过Blinker获取到该设备的密钥,在编程中对该密钥进行定义,保证手机端与设备之间的通信。其中所用到的物联网解决方案为Blinker,使用 公有云服务器进行数据传输。该平台可以在APP上自行添加各种模块,丰富发球模式的设计。APP发球界面如图5所示。
3.2 程序开发
EsP32的开发环境为Arduino IDE,这是一款源代码开放的simPleI/O平台[9]。该平台基于Python语法编写,易于学习和调试。在程序中使用char auth、charssid和charPassword函数分别定义APP密钥、网络名称和密码,实现EsP32与手机端的Wi—Fi互联以及通信。
该乒乓球发球器的发球模式有左旋球模式、右旋球模式、直球模式、随机模式,并有左右旋球强弱可调的滑块。其中左旋球、右旋球、直球每种发球模式的按键对应一组PWM的value函数程序,当按下一个模式的按键时,左右电机的analogwrite()函数从对应的按键程序中获取调速函数value中的PWM值。调节左右旋球速度的滑块定义了slider1和slider2函数,调节范围0~255,滑块变化值定义为变量value1,当拖动滑块位置时value1发生变化赋值给控制电机的 PWM函数。随机模式使用两个random随机函数, random-value函数生成0~2之间的随机数进行三种模式的循环,生成的随机数作为选择语句switch()case 的变量,case后对应每个发球模式的PWM初始值,根 据变量的值来执行所对应的case事件。rand-time函数生成5~10 s的随机时间对每个模式运行的时间进行随机处理,使用millis库函数执行定时中断任务。程序流程图如图6所示。
4 系统调试
利用乐高搭建乒乓球发球器的发射平台,来测试各个模式的发球效果。首先把设备与手机端的Wi—Fi相连接,然后进入BlinkerAPP查看设备是否在线,如果在线说明二者之间可进行相互通信。对每个模式进行发球测试,其左右旋球模式使发出的球旋转性很高,拖动滑块移动时电机速度会相应产生变化,使球的旋转性强弱变化可调,随机模式则随机循环三种普通模式发射乒乓球。发球过程中界面显示正常,硬件控制系统在持续运行过程中无异常情况,实物如图7所示。
5 结束语
本文介绍了应用于乒乓球发球机的控制系统的设计,在对实物进行测试时该设计可以控制乒乓球发球机发出直球、左旋球、右旋球、随机球以及强弱可调的旋球,说明软硬件系统设计合理。此控制系统可以使乒乓球发球机正常运转,通过手机APP控制发球,从而为乒乓球爱好者提供了多样的发球模式,且电路简单、系统运行稳定、造价低,因而具有很高的应用价值,为用户提供了便捷性。
[参考文献]
[1]黄烨,张超.乒乓球运动训练辅助系统设计[J].设计,2022,35(14):58.
[2]唐少勋,刘尔健.基于ESP32的家庭智能监控系统[J].现代信息科技,2024,8(11):182-185.
[3]谢超鹏.基于ESP32云平台的人脸识别系统的设计与实现[D].长沙:湖南大学,2019.
[4]令宝.一种自动乒乓球发球机的控制系统设计探讨[J].自动化与仪器仪表,2016(6):26-27.
[5]李鹏.基于L298N的直流电机调速系统[J].电子测试,2022,36(21):37-40.
[6]崔静. 自动乒乓球发球机设计及其控制系统的研究[D].长沙:中南大学,2007.
[7]焦玉朋.基于51单片机的PWM直流电机调速系统[D].呼和浩特:内蒙古大学,2013.
[8]葛炎风,宋海霞,郭世南.基于Wi-Fi控制的LED照明系统的设计[J].机电技术,2023(3):6-8.
[9]杨儒骁,洪文灵.基于Ardinuo和蓝牙技术的小型机械手控制系统设计[J].工业控制计算机,2017,30(12):66-68.
《机电信息》2025年第11期第12篇