基于无线通信的篮球进球自动计数器
2023-12-19杨叶康
杨叶康
(山东理工职业学院,山东济宁, 272067)
1 总体设计
本文提出的篮球进球自动计数器分为两个大的模块。其中主控模块由单片机、NRF24L01 无线通信模块、LCD1602液晶显示器、蜂鸣器组成,从板由单片机,超声波传感器、NRF24L01 无线通信模块组成。两块电路板都由五节五号电池串联供电。系统框图如图1、2 所示。
图2 从板结构框图
其中,在从板中,超声波测距传感器将在篮筐下检测篮球与篮板的距离,当距离小于某个阈值,则认定为进球有效。在从板上的超声波传感器检测到进球的同时,从板上的NRF24L01 无线通信模块会和主板上的NRF24L01 无线通信模块进行通信,从板把进球信息传输到主板,主板对进球数加一,并显示在LCD1602 液晶显示器上,同时蜂鸣器响一声,来通过声音提示进球成功。
2 硬件设计
本文提出的篮球进球自动计数器硬件设计由AD21 完成。其电路图如图3、4 所示。
图3 主板硬件电路图
图4 从板硬件电路图
其中,在主板中,硬件电路包括单片机最小系统,蜂鸣器模块电路,供电模块电路,LCD1602 液晶显示模块电路,NRF24L01 无线通信模块电路。
从板硬件电路包括单片机最小系统,供电模块电路,超声波测距模块电路,NRF24L01 无线通信模块电路。
以下无论是主板还是从板,对以上提到过的电路进行一一介绍,不重复介绍。
■2.1 单片机最小系统电路
本文提出的篮球进球自动计数器采用STC89C52RC 作为主控芯片。由于该芯片不自带晶振,所以需要外接晶振。芯片外接晶振的引脚为第18 和第19 引脚。外接晶振的同时,每个引脚接一个33pF 的电容,电容一端接在晶振引脚上,一端接地,电容的作用是滤波。
复位电路在独立按键两个引脚之间接一个10μF 的电解电容,在电解电容的负极接一个10kΩ 的电阻,电阻的另一端接地。在单片机的第20 引脚和第40 引脚分别接地和电源。之所以在第40 脚电源端接一个104pF 的电容连接到地端,是因为电源有可能不稳定,用于滤波。
■2.2 供电模块电路
由于本设计的主板和从板都是用五节五号电池供电。因为每节五号电池的电压为1.5V,所以五节加起来共有7.5V 的电压,而本文所选单片机、超声波传感器、蜂鸣器、LCD1602 液晶显示器的工作电压是5V,NRF24L01 无线通信模块的工作电压是3.3V,所以需要降压。
从7.5V 降到5V,本文采用的是L7805 降压芯片。L7805 有三个管脚,输入管脚为7.5V 的输入端,输出管脚为5V 输出端,公共端接地。如图3 所示,本文在L7805 的输出端和地之间并联了两个电容,同样是用于滤波。
从5V 降压到3.3V 本文采用的是AMS1117-3.3 降压芯片。降压电路简单易懂,输入为5V,输出为3.3V。其中两个VOUT 引脚连在了一起。
■2.3 超声波测距模块电路
超声波测距模块是集成模块,其中的电路不需本文设计,只需把该模块的电源和地连接上,并把Trig 和Echo引脚连接到单片机上即可。其中Trig 引脚连接在了单片机的P2.1 引脚,Echo 连接在了P2.0 引脚。超声波模块采用HC-SR04 型号。HC-SR04 采用CS100A 作为主芯片,采用8MHz 晶振,能准确测量2 ~600cm 的距离。
■2.4 NRF24L01 无线通信模块电路
NRF24L01 同样是集成模块,它自带天线,有一套自己独特的通信协议。它的通信距离可达1100 米,理论上可实现无数个模块之间的相互通信。现实中常用的是一收多发,即多个NRF24L01 对同一个NRF24L01 进行发送数据。虽然实际上是串行收发数据,但是由于收发数据的时间极短,可以认为是并发的进行一收多发。
实现一收多发的方式有两种,一种是所有NRF24L01 模块采用相同的地址,但采用不同的频率进行通信;另一种是所有的NRF24L01 采用相同的频率,而地址则不相同。NRF24L01 支持的频率范围为2.4GHz~2.5GHz,因此理论上可以实现一个接收无数个发送,但是由于相邻频率容易出错,因此在现实中无法实现太多NRF24L01 同时向一个NRF24L01 发送数据。
另外需要注意的是,本文采用的单片机是5V 供电,而NRF24L01 无线通信模块是3.3V 供电,所以存在电平不兼容的问题,因此需要在NRF24L01 模块的引脚和单片机的引脚之间串470Ω 的电阻。这样才能实现单片机和该无线通信模块之间的连接。
■2.5 LCD1602 液晶显示电路
LCD1602 液晶显示器共有16 个引脚,由于LCD1602是并行数据传输,所以其中有8 个数据引脚,本文把它们接在了单片机的P2 口上,如果单片机的I/O 引脚不充足的情况下,还可以使用74HC595 来串转并进行单片机接口的扩展。另外还有3 个控制引脚,他们分别是数据命令选择引脚RS,读写选择引脚RW 和使能信号引脚E。他们被分别接在了P1.1、P1.2 和P1.3 管脚。LCD1602 的第3 引脚需要接一个电位器,电位器的两端分别接电源和地,调整电位器可用于调节1602 的背光灯亮度。
■2.6 蜂鸣器模块电路
蜂鸣器用于提示进球的有效性,虽然它是由0 和1 来控制,但是它是一个功率器件,需要大的电流来驱动才可以正常工作,因此不能直接接在单片机的引脚上,因为单片机的驱动能力是有限的,而三极管有放大作用,它有放大电流的作用,恰好可用于放大单片机的微弱电流,因此本文在蜂鸣器和单片机之间连接了一个PNP 型三极管用于驱动蜂鸣器。值得注意的是,本文采用的是有源蜂鸣器。之所以采用有源蜂鸣器是因为有源蜂鸣器自带振动源,驱动简单,发声清脆,其功能符合本文的要求。
3 软件设计
本文所提出的篮球进球自动计数器分为主板和从板,由于主板和从板上都有各自的单片机,并且实现的功能不同,因此软件也分为两套,一个是主板上的软件,一个是从板上的软件。其程序流程图分别如图5、6 所示。
图5 从板软件流程图
图6 主板软件流程图
对于从板,首先进行系统初始化,其中包括变量的初始化,定时器的初始化,NRF24L01 引脚的初始化,当然,对于STC89C52RC 并不需要,还包括NRF24L01 无线通信模块的检测,NRF24L01 模块的初始化(主要是初始化的设置,包括地址,频率等),还有设置NRF24L01 为发送模式,初始化的最后一步就是延时,延时的作用就是等待系统稳定之后再进行工作。
然后从板不断地进行测距,当距离小于20cm 的时候,判断进球有效,无线通信模块把进球信息发送给主板。从板在使用超声波测距的时候用到了定时器,超声波测距的原理就是,首先,超声波传感器发出超声波,然后定时器开始计时,当超声波碰到障碍物(这里指篮球)返回到超声波传感器定时器计时停止,根据超声波在空气中传播的速度,再根据定时器计时的时间,从而计算出超声波传感器与障碍物的距离。这里设定阈值为20cm,也即当超声波传感器与篮球的距离小于20cm 的时候判断为篮球进球成功;接下来单片机控制NRF24L01 模块发送一个字符串到主板。
而主板不断地在等待接收从板发过来的字符串信息,当从板向主板发送字符串信息的时候,主板才能成功接收,进而主板上的主控芯片控制液晶显示模块显示出来进球数量,至此,一个有效的进球成功显示了出来。如此循环往复,软件即可完成篮球进球的持续计数。
主板的软件初始化包括了变量的初始化,LCD1602 液晶的初始化,NRF24L01 的引脚初始化,NRF24L01 的检查,NRF24L01 的设置初始化,接收模式的设置,LCD1602 固定字符的显示,以及用于等待系统稳定的延时。
4 测试
经过一系列步骤成型的篮球进球自动计数器实物如图7所示。
图7 左侧为从板,右侧为主板。把从板安装在篮球框下面的篮板上,主板则放在容易观察的地方,比如桌子上。每当进球成功后,从板会检测到进球并把进球信息发送给主板,主板上的LCD1602 显示的数字就会加一并伴有蜂鸣器的响声。
图7 篮球进球自动计数器实物图
实践证明,本文所设计的篮球进球自动计数器是可行的、切实有效的。它能够在不用人为操作的情况下实现自动篮球进球计数,并显示出来。有助于投篮训练、投篮比赛等诸多体育运动的进行。
5 总结
本文设计并实现了一款篮球进球自动计数器。该计数器分为两个大的模块,分别为主板和从板。主板和从板都由单片机控制。从板由单片机,超声波传感器和NRF24L01 无线通信模块组成,固定在篮球框下面的篮板上,用于检测篮球的进球;主板由单片机,NRF24L01、蜂鸣器和LCD1602组成,放在易于观察的位置,用于与从板通信并显示进球数。
经过测试,本文所提出的计数器可用于篮球投球训练、投篮比赛等场合,其完全解放了人力,不再需要人工手动计数,而是全自动进行进球计数,还有进球提示功能。