英國(guó)廣播公司Micro:bit可調(diào)亮度報(bào)警器:無(wú)線(xiàn)電Shack混音器
在這篇項(xiàng)目文章中,我們將創(chuàng)建一個(gè)可編程設(shè)備,提醒用戶(hù)環(huán)境光照水平的變化。在此過(guò)程中,我們將了解非穩(wěn)態(tài)多諧振蕩器和達(dá)林頓對(duì)。
本文引用地址:http://2s4d.com/article/202412/465247.htm這款Radio Shack Classics Circuit Remix將BBC micro:bit和老式的Science Fair Sensor Robot 20套件組合成一款設(shè)備,可以監(jiān)測(cè)光照水平,并在亮度超過(guò)預(yù)設(shè)閾值時(shí)觸發(fā)聲音警報(bào)。通過(guò)整合這些組件,我們旨在說(shuō)明micro:bit的多功能性和經(jīng)典業(yè)余愛(ài)好者工具包的持久教育價(jià)值。
與本系列的前幾篇文章一樣,這個(gè)項(xiàng)目基于老式套件手冊(cè)中的一篇文章——我們只是通過(guò)使用micro:bit板作為光傳感器并調(diào)整光檢測(cè)閾值來(lái)更新它,以包含現(xiàn)代微控制器功能。
與原始模擬設(shè)置相比,這具有幾個(gè)優(yōu)點(diǎn)。一方面,數(shù)字處理的使用允許對(duì)傳感器進(jìn)行更復(fù)雜的控制。我們可以在代碼內(nèi)設(shè)置和調(diào)整光感閾值,而不是手動(dòng)轉(zhuǎn)動(dòng)撥盤(pán)。micro:bit還可以處理光數(shù)據(jù)以應(yīng)用過(guò)濾器或平均值,確保光水平的瞬態(tài)變化不會(huì)錯(cuò)誤地觸發(fā)警報(bào)。
此外,micro:bit允許將光級(jí)數(shù)據(jù)記錄并存儲(chǔ)為數(shù)字信息,或在監(jiān)視器上直觀(guān)顯示。添加了另一層功能,micro:bit的LED既可以作為視覺(jué)指示器,也可以作為光傳感器。
圖1顯示了已完成的項(xiàng)目,我們稱(chēng)之為混音亮度警報(bào)。
圖1 完整的混音亮度報(bào)警。圖片由Don Wilcher提供
注:Radio Shack出售了兩個(gè)不同版本的項(xiàng)目套件,如圖所示。我們使用的版本是在1988年推出的,但Radio Shack 1985年的目錄中提供了一個(gè)略有不同的Sensor Robot 20套件。我們也在使用版本2 micro:bit。
經(jīng)典亮度報(bào)警項(xiàng)目
圖2顯示了Sensor Robot實(shí)驗(yàn)室手冊(cè)中出現(xiàn)的原始亮度報(bào)警項(xiàng)目說(shuō)明。
圖2:原始Sensor Robot 20手冊(cè)中的亮度報(bào)警項(xiàng)目說(shuō)明。圖片由Don Wilcher提供
圖3提供了電路原理圖的特寫(xiě)視圖。
圖3 原始手冊(cè)中的亮度報(bào)警示意圖。圖片由Don Wilcher提供
此版本的亮度報(bào)警包括五個(gè)電子子電路:
1. 硫化鎘光敏傳感器(I4)。
2. 50 kΩ電位計(jì)。
3. 達(dá)林頓電路(Q1和Q2)。
4. 非穩(wěn)態(tài)多諧振蕩器(Q3、Q4和RC負(fù)載)。
5. 晶體管驅(qū)動(dòng)的壓電蜂鳴器電路(Q5和壓電晶體)。
經(jīng)典項(xiàng)目使用硫化鎘(CdS)光敏電阻來(lái)檢測(cè)光。CdS光電池根據(jù)照射在其上的光強(qiáng)度改變其電阻。通過(guò)手動(dòng)調(diào)節(jié)電位計(jì)來(lái)控制光探測(cè)器的靈敏度。
達(dá)林頓電路、非穩(wěn)態(tài)多諧振蕩器和壓電蜂鳴器電路出現(xiàn)在該項(xiàng)目的經(jīng)典和混音版本中。我們稍后將在文章中討論它們的操作。然而,亮度報(bào)警的重新混合用micro:bit微處理器板取代了CdS電池和50kΩ電位計(jì)。此功能將經(jīng)典的亮度報(bào)警升級(jí)為可編程的光傳感器,能夠記錄光照水平數(shù)據(jù)并以數(shù)字方式調(diào)整檢測(cè)閾值。
混音亮度報(bào)警器的設(shè)計(jì)與操作
圖4說(shuō)明了混音亮度報(bào)警的各個(gè)部分是如何協(xié)同工作的。除了BBC micro:bit,所有顯示的部件都包含在傳感器機(jī)器人套件中。
圖4 混音亮度報(bào)警框圖。圖片由Don Wilcher提供
micro:bit既充當(dāng)光傳感器,又充當(dāng)設(shè)備的大腦。當(dāng)它檢測(cè)到環(huán)境光水平超過(guò)編程閾值時(shí),它會(huì)偏置達(dá)林頓電路。達(dá)林頓電路激活基于晶體管的壓電蜂鳴器,發(fā)出警報(bào)音。這種音調(diào)的頻率由非穩(wěn)態(tài)多諧振蕩器決定。
正如我們已經(jīng)提到的,光檢測(cè)閾值在micro:bit的代碼中設(shè)置,可以根據(jù)項(xiàng)目要求進(jìn)行調(diào)整。一旦我們完成了物理電路的組裝,我們將在本文稍后討論編程過(guò)程。然而,在此之前,讓我們檢查一下亮度報(bào)警的各種子電路的操作。
Micro:bit微處理器板
圖5顯示了版本2 BBC micro:bit的布局。
圖5 BBC micro:bit的布局(版本2)圖片由microbit.org提供
LED既可以作為光發(fā)射器,也可以作為光探測(cè)器。當(dāng)光線(xiàn)照射到LED的P-N結(jié)時(shí),由于光電效應(yīng),它會(huì)產(chǎn)生一個(gè)小電流。此屬性允許micro:bit使用其5x5 LED矩陣作為光傳感器。
為了測(cè)量光線(xiàn),micro:bit會(huì)短暫地反向偏置LED,使其充當(dāng)電容器。micro:bit然后測(cè)量LED放電所需的時(shí)間。我們可以通過(guò)這需要多長(zhǎng)時(shí)間來(lái)判斷有多少光照射到LED上——光越亮,放電發(fā)生得越快。然后,放電時(shí)間被轉(zhuǎn)換為0到255的數(shù)字值,表示檢測(cè)到的光水平。
在完成的器件中,micro:bit的P0引腳連接到達(dá)林頓電路的兩個(gè)NPN晶體管中的第一個(gè)。當(dāng)檢測(cè)到的光照水平大于編程閾值時(shí),它會(huì)觸發(fā)以下事件序列:
micro:bit向其P0引腳輸出3V邏輯高信號(hào),該引腳連接到達(dá)林頓電路的第一個(gè)NPN晶體管(Q1)。
P0引腳向Q1的基極發(fā)送小電流,使Q1導(dǎo)通。
由于Q1導(dǎo)通,達(dá)林頓電路(Q2)中的第二晶體管也導(dǎo)通。這就完成了壓電蜂鳴器的電路。
現(xiàn)在工作的壓電蜂鳴器發(fā)出聲音報(bào)警音。
當(dāng)光照水平低于編程閾值時(shí),P0引腳保持邏輯低電平,達(dá)林頓電路保持關(guān)閉,蜂鳴器靜音。
達(dá)林頓電路
達(dá)林頓電路,也稱(chēng)為達(dá)林頓對(duì),由兩個(gè)串聯(lián)的NPN晶體管(Q1和Q2)組成。當(dāng)小電流流入第一晶體管的基極時(shí),它會(huì)觸發(fā)第二晶體管。每個(gè)晶體管進(jìn)一步放大信號(hào),從而顯著提高電流增益。
圖6顯示了典型的達(dá)林頓對(duì)。
圖6 達(dá)林頓基本配置。圖片由Don Wilcher提供
在混合亮度報(bào)警中,達(dá)林頓電路是必要的,因?yàn)閴弘姺澍Q器需要比micro:bit直接提供的電流更多的電流。達(dá)林頓對(duì)中的第一個(gè)晶體管放大來(lái)自micro:bit的小信號(hào),而第二個(gè)晶體管向蜂鳴器提供電流。放大過(guò)程確保即使是最小的輸入信號(hào)也足以驅(qū)動(dòng)蜂鳴器。
這種設(shè)計(jì)還降低了micro:bit的功耗,如果您選擇使用電池為微處理器板供電,這很方便。micro:bit可以使用3V電池組或插入個(gè)人電腦的標(biāo)準(zhǔn)USB電纜供電。
可控多諧振蕩器和壓電蜂鳴器電路
亮度報(bào)警電路的核心是由兩個(gè)NPN晶體管(Q3和Q4)構(gòu)建的非穩(wěn)態(tài)多諧振蕩器。不穩(wěn)定多諧振蕩器在兩個(gè)狀態(tài)之間連續(xù)振蕩,而不管外部輸入如何,產(chǎn)生一致的方波信號(hào)。振蕩頻率由亮度報(bào)警的電容器(C1和C2)和電阻器(R1、R2、R3和R4)的值決定。
非穩(wěn)態(tài)多諧振蕩器的輸出端連接到另一個(gè)NPN晶體管(Q5)的基極。該晶體管用作控制壓電蜂鳴器的開(kāi)關(guān)。當(dāng)非穩(wěn)態(tài)多諧振蕩器產(chǎn)生邏輯高輸出時(shí),Q5導(dǎo)通,允許電流流過(guò)壓電蜂鳴器并產(chǎn)生聲音。當(dāng)亮度水平超過(guò)設(shè)定閾值時(shí),這種快速切換會(huì)產(chǎn)生我們聽(tīng)到的警報(bào)音。
壓電蜂鳴器本身是一個(gè)傳感器,它將多諧振蕩器的電脈沖轉(zhuǎn)換為機(jī)械振動(dòng),從而產(chǎn)生聲波。
為了確定非穩(wěn)態(tài)多諧振蕩器電路的輸出頻率,我們使用以下方程:
解釋?zhuān)?/p>
f=報(bào)警音的頻率
R1=電阻器R1的值,該值也是R4的值
R2=電阻器R2的值,該值也是R3的值
C=電容器C1的值,這也是C2的值
對(duì)于亮度報(bào)警電路,我們將使用以下電阻和電容值:
R1=1 kΩ
R2=10 kΩ
C=0.047μF
如果我們將這些值代入上述方程,我們得到:
如上述方程式所示,您可以通過(guò)選擇不同的電阻器和電容器來(lái)調(diào)整報(bào)警音的頻率。
組裝項(xiàng)目硬件
我們現(xiàn)在已經(jīng)準(zhǔn)備好把所有東西放在一起了。圖7顯示了混音亮度報(bào)警的完整示意圖。
圖7 混音亮度報(bào)警示意圖。圖片由Don Wilcher提供
大多數(shù)接線(xiàn)說(shuō)明與項(xiàng)目經(jīng)典版本中的接線(xiàn)說(shuō)明相同。您可以在圖2中找到這些說(shuō)明。然而,我們?nèi)匀恍枰獙icro:bit連接到設(shè)備的其余部分。這是使用兩條帶鱷魚(yú)夾的測(cè)試引線(xiàn)完成的。
圖8顯示了micro:bit和傳感器機(jī)器人套件之間的兩個(gè)接線(xiàn)連接。為了便于參考,我對(duì)兩條測(cè)試引線(xiàn)進(jìn)行了顏色編碼。
將micro:bit連接到傳感器機(jī)器人套件。
圖8 micro:bit通過(guò)兩根測(cè)試引線(xiàn)連接到Sensor Robot套件,一根連接到P0,另一條連接到GND。圖片由Don Wilcher提供
程序如下:
將紅色測(cè)試引線(xiàn)的一端連接到micro:bit的焊盤(pán)P0,另一端連接到傳感器機(jī)器人套件的彈簧端子30。彈簧端子30連接到偏置達(dá)林頓對(duì)的33k?串聯(lián)電阻器。
將黑色測(cè)試引線(xiàn)的一端連接到micro:bit的GND焊盤(pán),另一端連接到套件的彈簧端子3。彈簧端子3是傳感器機(jī)器人套件9 V電池的負(fù)極/接地側(cè)。
現(xiàn)在我們已經(jīng)組裝好了硬件,我們需要在micro:bit中編程一個(gè)光檢測(cè)閾值;我的代碼如下所示。
設(shè)置亮度警報(bào)的光檢測(cè)閾值的MicroPython代碼。
在上面的代碼中,THRESHOLD變量設(shè)置了光照水平閾值。您可以根據(jù)需要調(diào)整閾值,以適應(yīng)不同的環(huán)境光照條件。
MicroPython代碼持續(xù)從micro:bit的LED矩陣中讀取光照水平,并將其與閾值進(jìn)行比較。如果檢測(cè)到的光照水平超過(guò)閾值,P0引腳將設(shè)置為邏輯高,激活達(dá)林頓電路并觸發(fā)壓電蜂鳴器。如果光照水平低于閾值,P0引腳將設(shè)置為邏輯低,使蜂鳴器靜音。
您可以使用Mu這樣的編程平臺(tái)輕松地將MicroPython代碼加載到micro:bit中。最終的十六進(jìn)制代碼可以閃存編程到micro:bit。
編程替代方案
MicroPython不是你唯一的選擇。您還可以在MicrosoftMakeCodemicro:bit編程環(huán)境中輕松開(kāi)發(fā)光檢測(cè)代碼(圖9)??梢栽谶@個(gè)在線(xiàn)編程環(huán)境中查看等效的JavaScript和Python代碼。
圖9 Microsoft MakeCode模擬會(huì)話(huà),其中micro:bit顯示光照水平和端口P0輸出控制。圖片由Don Wilcher提供
或者,您可以使用Blockly代碼塊對(duì)micro:bit進(jìn)行編程。如果你想添加或更改圖形,以及模擬micro:bit的光感測(cè)和控制功能,這種方法很有幫助。在內(nèi)置模擬器中,用戶(hù)可以嘗試各種閾值,并立即看到micro:bit的5x5 LED矩陣上顯示的響應(yīng)。
測(cè)試已完成的項(xiàng)目
一旦光檢測(cè)代碼被編程到micro:bit中,我們的項(xiàng)目就完成了!要測(cè)試亮度報(bào)警,請(qǐng)旋轉(zhuǎn)傳感器機(jī)器人套件上的藍(lán)色控制旋鈕將其打開(kāi)。接下來(lái),將合適的光源(例如手電筒)指向micro:bit的LED。您應(yīng)該聽(tīng)到壓電蜂鳴器發(fā)出的警報(bào)聲。
嘗試將手電筒靠近或遠(yuǎn)離LED矩陣,以檢查亮度報(bào)警對(duì)不同光照水平的響應(yīng)。您還可以嘗試各種光源并觀(guān)察亮度警報(bào)的響應(yīng)。玩得高興!
評(píng)論