楊葉康
(山東理工職業(yè)學(xué)院,山東濟(jì)寧, 272067)
本文提出的籃球進(jìn)球自動(dòng)計(jì)數(shù)器分為兩個(gè)大的模塊。其中主控模塊由單片機(jī)、NRF24L01 無(wú)線通信模塊、LCD1602液晶顯示器、蜂鳴器組成,從板由單片機(jī),超聲波傳感器、NRF24L01 無(wú)線通信模塊組成。兩塊電路板都由五節(jié)五號(hào)電池串聯(lián)供電。系統(tǒng)框圖如圖1、2 所示。
圖2 從板結(jié)構(gòu)框圖
其中,在從板中,超聲波測(cè)距傳感器將在籃筐下檢測(cè)籃球與籃板的距離,當(dāng)距離小于某個(gè)閾值,則認(rèn)定為進(jìn)球有效。在從板上的超聲波傳感器檢測(cè)到進(jìn)球的同時(shí),從板上的NRF24L01 無(wú)線通信模塊會(huì)和主板上的NRF24L01 無(wú)線通信模塊進(jìn)行通信,從板把進(jìn)球信息傳輸?shù)街靼?,主板?duì)進(jìn)球數(shù)加一,并顯示在LCD1602 液晶顯示器上,同時(shí)蜂鳴器響一聲,來(lái)通過(guò)聲音提示進(jìn)球成功。
本文提出的籃球進(jìn)球自動(dòng)計(jì)數(shù)器硬件設(shè)計(jì)由AD21 完成。其電路圖如圖3、4 所示。
圖3 主板硬件電路圖
圖4 從板硬件電路圖
其中,在主板中,硬件電路包括單片機(jī)最小系統(tǒng),蜂鳴器模塊電路,供電模塊電路,LCD1602 液晶顯示模塊電路,NRF24L01 無(wú)線通信模塊電路。
從板硬件電路包括單片機(jī)最小系統(tǒng),供電模塊電路,超聲波測(cè)距模塊電路,NRF24L01 無(wú)線通信模塊電路。
以下無(wú)論是主板還是從板,對(duì)以上提到過(guò)的電路進(jìn)行一一介紹,不重復(fù)介紹。
本文提出的籃球進(jìn)球自動(dòng)計(jì)數(shù)器采用STC89C52RC 作為主控芯片。由于該芯片不自帶晶振,所以需要外接晶振。芯片外接晶振的引腳為第18 和第19 引腳。外接晶振的同時(shí),每個(gè)引腳接一個(gè)33pF 的電容,電容一端接在晶振引腳上,一端接地,電容的作用是濾波。
復(fù)位電路在獨(dú)立按鍵兩個(gè)引腳之間接一個(gè)10μF 的電解電容,在電解電容的負(fù)極接一個(gè)10kΩ 的電阻,電阻的另一端接地。在單片機(jī)的第20 引腳和第40 引腳分別接地和電源。之所以在第40 腳電源端接一個(gè)104pF 的電容連接到地端,是因?yàn)殡娫从锌赡懿环€(wěn)定,用于濾波。
由于本設(shè)計(jì)的主板和從板都是用五節(jié)五號(hào)電池供電。因?yàn)槊抗?jié)五號(hào)電池的電壓為1.5V,所以五節(jié)加起來(lái)共有7.5V 的電壓,而本文所選單片機(jī)、超聲波傳感器、蜂鳴器、LCD1602 液晶顯示器的工作電壓是5V,NRF24L01 無(wú)線通信模塊的工作電壓是3.3V,所以需要降壓。
從7.5V 降到5V,本文采用的是L7805 降壓芯片。L7805 有三個(gè)管腳,輸入管腳為7.5V 的輸入端,輸出管腳為5V 輸出端,公共端接地。如圖3 所示,本文在L7805 的輸出端和地之間并聯(lián)了兩個(gè)電容,同樣是用于濾波。
從5V 降壓到3.3V 本文采用的是AMS1117-3.3 降壓芯片。降壓電路簡(jiǎn)單易懂,輸入為5V,輸出為3.3V。其中兩個(gè)VOUT 引腳連在了一起。
超聲波測(cè)距模塊是集成模塊,其中的電路不需本文設(shè)計(jì),只需把該模塊的電源和地連接上,并把Trig 和Echo引腳連接到單片機(jī)上即可。其中Trig 引腳連接在了單片機(jī)的P2.1 引腳,Echo 連接在了P2.0 引腳。超聲波模塊采用HC-SR04 型號(hào)。HC-SR04 采用CS100A 作為主芯片,采用8MHz 晶振,能準(zhǔn)確測(cè)量2 ~600cm 的距離。
NRF24L01 同樣是集成模塊,它自帶天線,有一套自己獨(dú)特的通信協(xié)議。它的通信距離可達(dá)1100 米,理論上可實(shí)現(xiàn)無(wú)數(shù)個(gè)模塊之間的相互通信。現(xiàn)實(shí)中常用的是一收多發(fā),即多個(gè)NRF24L01 對(duì)同一個(gè)NRF24L01 進(jìn)行發(fā)送數(shù)據(jù)。雖然實(shí)際上是串行收發(fā)數(shù)據(jù),但是由于收發(fā)數(shù)據(jù)的時(shí)間極短,可以認(rèn)為是并發(fā)的進(jìn)行一收多發(fā)。
實(shí)現(xiàn)一收多發(fā)的方式有兩種,一種是所有NRF24L01 模塊采用相同的地址,但采用不同的頻率進(jìn)行通信;另一種是所有的NRF24L01 采用相同的頻率,而地址則不相同。NRF24L01 支持的頻率范圍為2.4GHz~2.5GHz,因此理論上可以實(shí)現(xiàn)一個(gè)接收無(wú)數(shù)個(gè)發(fā)送,但是由于相鄰頻率容易出錯(cuò),因此在現(xiàn)實(shí)中無(wú)法實(shí)現(xiàn)太多NRF24L01 同時(shí)向一個(gè)NRF24L01 發(fā)送數(shù)據(jù)。
另外需要注意的是,本文采用的單片機(jī)是5V 供電,而NRF24L01 無(wú)線通信模塊是3.3V 供電,所以存在電平不兼容的問(wèn)題,因此需要在NRF24L01 模塊的引腳和單片機(jī)的引腳之間串470Ω 的電阻。這樣才能實(shí)現(xiàn)單片機(jī)和該無(wú)線通信模塊之間的連接。
LCD1602 液晶顯示器共有16 個(gè)引腳,由于LCD1602是并行數(shù)據(jù)傳輸,所以其中有8 個(gè)數(shù)據(jù)引腳,本文把它們接在了單片機(jī)的P2 口上,如果單片機(jī)的I/O 引腳不充足的情況下,還可以使用74HC595 來(lái)串轉(zhuǎn)并進(jìn)行單片機(jī)接口的擴(kuò)展。另外還有3 個(gè)控制引腳,他們分別是數(shù)據(jù)命令選擇引腳RS,讀寫選擇引腳RW 和使能信號(hào)引腳E。他們被分別接在了P1.1、P1.2 和P1.3 管腳。LCD1602 的第3 引腳需要接一個(gè)電位器,電位器的兩端分別接電源和地,調(diào)整電位器可用于調(diào)節(jié)1602 的背光燈亮度。
蜂鳴器用于提示進(jìn)球的有效性,雖然它是由0 和1 來(lái)控制,但是它是一個(gè)功率器件,需要大的電流來(lái)驅(qū)動(dòng)才可以正常工作,因此不能直接接在單片機(jī)的引腳上,因?yàn)閱纹瑱C(jī)的驅(qū)動(dòng)能力是有限的,而三極管有放大作用,它有放大電流的作用,恰好可用于放大單片機(jī)的微弱電流,因此本文在蜂鳴器和單片機(jī)之間連接了一個(gè)PNP 型三極管用于驅(qū)動(dòng)蜂鳴器。值得注意的是,本文采用的是有源蜂鳴器。之所以采用有源蜂鳴器是因?yàn)橛性捶澍Q器自帶振動(dòng)源,驅(qū)動(dòng)簡(jiǎn)單,發(fā)聲清脆,其功能符合本文的要求。
本文所提出的籃球進(jìn)球自動(dòng)計(jì)數(shù)器分為主板和從板,由于主板和從板上都有各自的單片機(jī),并且實(shí)現(xiàn)的功能不同,因此軟件也分為兩套,一個(gè)是主板上的軟件,一個(gè)是從板上的軟件。其程序流程圖分別如圖5、6 所示。
圖5 從板軟件流程圖
圖6 主板軟件流程圖
對(duì)于從板,首先進(jìn)行系統(tǒng)初始化,其中包括變量的初始化,定時(shí)器的初始化,NRF24L01 引腳的初始化,當(dāng)然,對(duì)于STC89C52RC 并不需要,還包括NRF24L01 無(wú)線通信模塊的檢測(cè),NRF24L01 模塊的初始化(主要是初始化的設(shè)置,包括地址,頻率等),還有設(shè)置NRF24L01 為發(fā)送模式,初始化的最后一步就是延時(shí),延時(shí)的作用就是等待系統(tǒng)穩(wěn)定之后再進(jìn)行工作。
然后從板不斷地進(jìn)行測(cè)距,當(dāng)距離小于20cm 的時(shí)候,判斷進(jìn)球有效,無(wú)線通信模塊把進(jìn)球信息發(fā)送給主板。從板在使用超聲波測(cè)距的時(shí)候用到了定時(shí)器,超聲波測(cè)距的原理就是,首先,超聲波傳感器發(fā)出超聲波,然后定時(shí)器開(kāi)始計(jì)時(shí),當(dāng)超聲波碰到障礙物(這里指籃球)返回到超聲波傳感器定時(shí)器計(jì)時(shí)停止,根據(jù)超聲波在空氣中傳播的速度,再根據(jù)定時(shí)器計(jì)時(shí)的時(shí)間,從而計(jì)算出超聲波傳感器與障礙物的距離。這里設(shè)定閾值為20cm,也即當(dāng)超聲波傳感器與籃球的距離小于20cm 的時(shí)候判斷為籃球進(jìn)球成功;接下來(lái)單片機(jī)控制NRF24L01 模塊發(fā)送一個(gè)字符串到主板。
而主板不斷地在等待接收從板發(fā)過(guò)來(lái)的字符串信息,當(dāng)從板向主板發(fā)送字符串信息的時(shí)候,主板才能成功接收,進(jìn)而主板上的主控芯片控制液晶顯示模塊顯示出來(lái)進(jìn)球數(shù)量,至此,一個(gè)有效的進(jìn)球成功顯示了出來(lái)。如此循環(huán)往復(fù),軟件即可完成籃球進(jìn)球的持續(xù)計(jì)數(shù)。
主板的軟件初始化包括了變量的初始化,LCD1602 液晶的初始化,NRF24L01 的引腳初始化,NRF24L01 的檢查,NRF24L01 的設(shè)置初始化,接收模式的設(shè)置,LCD1602 固定字符的顯示,以及用于等待系統(tǒng)穩(wěn)定的延時(shí)。
經(jīng)過(guò)一系列步驟成型的籃球進(jìn)球自動(dòng)計(jì)數(shù)器實(shí)物如圖7所示。
圖7 左側(cè)為從板,右側(cè)為主板。把從板安裝在籃球框下面的籃板上,主板則放在容易觀察的地方,比如桌子上。每當(dāng)進(jìn)球成功后,從板會(huì)檢測(cè)到進(jìn)球并把進(jìn)球信息發(fā)送給主板,主板上的LCD1602 顯示的數(shù)字就會(huì)加一并伴有蜂鳴器的響聲。
圖7 籃球進(jìn)球自動(dòng)計(jì)數(shù)器實(shí)物圖
實(shí)踐證明,本文所設(shè)計(jì)的籃球進(jìn)球自動(dòng)計(jì)數(shù)器是可行的、切實(shí)有效的。它能夠在不用人為操作的情況下實(shí)現(xiàn)自動(dòng)籃球進(jìn)球計(jì)數(shù),并顯示出來(lái)。有助于投籃訓(xùn)練、投籃比賽等諸多體育運(yùn)動(dòng)的進(jìn)行。
本文設(shè)計(jì)并實(shí)現(xiàn)了一款籃球進(jìn)球自動(dòng)計(jì)數(shù)器。該計(jì)數(shù)器分為兩個(gè)大的模塊,分別為主板和從板。主板和從板都由單片機(jī)控制。從板由單片機(jī),超聲波傳感器和NRF24L01 無(wú)線通信模塊組成,固定在籃球框下面的籃板上,用于檢測(cè)籃球的進(jìn)球;主板由單片機(jī),NRF24L01、蜂鳴器和LCD1602組成,放在易于觀察的位置,用于與從板通信并顯示進(jìn)球數(shù)。
經(jīng)過(guò)測(cè)試,本文所提出的計(jì)數(shù)器可用于籃球投球訓(xùn)練、投籃比賽等場(chǎng)合,其完全解放了人力,不再需要人工手動(dòng)計(jì)數(shù),而是全自動(dòng)進(jìn)行進(jìn)球計(jì)數(shù),還有進(jìn)球提示功能。