曹月陽(yáng)
開源硬件的項(xiàng)目設(shè)計(jì)與開發(fā)有益于激發(fā)學(xué)生創(chuàng)新的興趣,培養(yǎng)學(xué)生動(dòng)手實(shí)踐的能力,同時(shí)也是有助于實(shí)現(xiàn)STEAM(科學(xué)、技術(shù)、工程、人文藝術(shù)與數(shù)學(xué))教育的理想方法。在開展開源硬件課程時(shí),我們常常會(huì)指導(dǎo)學(xué)生利用Arduino開源硬件與各類電子傳感器元件制作一些富有創(chuàng)意的電子產(chǎn)品。
Arduino的相關(guān)硬件非常多,其中有5個(gè)硬件模塊不可或缺,分別是超聲波傳感器、舵機(jī)、輕觸開關(guān)模塊、LED燈和光學(xué)傳感器。尤其對(duì)于初學(xué)者來(lái)說(shuō),這5個(gè)硬件模塊是必須要掌握的。
超聲波傳感器
超聲波傳感器是Arduino案例中常用的硬件之一。汽車上的倒車?yán)走_(dá)就是用超聲波傳感器檢測(cè)到的距離判斷車輛位置的;在很多機(jī)器人測(cè)距避障的案例中,也會(huì)選擇用超聲波傳感器檢測(cè)距離信息。常用的超聲波傳感器有好幾種,例如HC-SR04、HC-SR05、US-100、US-015等,這些傳感器都是做好了電路集成的模塊。
超聲波傳感器的工作原理是模仿蝙蝠的超聲定位,其發(fā)射器會(huì)向某一方向發(fā)射超聲波,在發(fā)射的同時(shí)開始計(jì)時(shí),超聲波在傳播途中碰到障礙物會(huì)立即返回,接收器收到反射波就立即停止計(jì)時(shí)。根據(jù)計(jì)時(shí)器記錄的時(shí)間t,聲波在空氣中的傳播速度為340m/s,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離s,即:s=340×t/2。簡(jiǎn)單來(lái)說(shuō)就是傳感器會(huì)先發(fā)出一個(gè)聲音,然后再接收返回的聲音,通過(guò)發(fā)出和返回的時(shí)間差計(jì)算出距離,這就是所謂的“時(shí)間差測(cè)距法”。
超聲波傳感器是一個(gè)模擬輸入模塊,共有4個(gè)針腳,分別是VCC、Trig、Echo和GND,VCC和GND為電源的正負(fù)極,Trig和Echo分別為控制端和接收端。當(dāng)Arduino主板接收到信號(hào)后,通過(guò)程序換算成距離的單位,然后就可以得到傳感器所測(cè)到的距離值。
舵機(jī)
舵機(jī)是一種伺服電機(jī),適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。例如遙控潛艇模型、遙控機(jī)器人等,同時(shí)它也是Arduino案例中最常用的輸出類硬件。最初,舵機(jī)是為控制玩具汽車和飛機(jī)才被設(shè)計(jì)的。
舵機(jī)主要由外殼、電路板、驅(qū)動(dòng)馬達(dá)、減速器與位置檢測(cè)元件所構(gòu)成。位置檢測(cè)其實(shí)就是利用了可變電阻,當(dāng)舵機(jī)轉(zhuǎn)動(dòng)時(shí)電阻值也會(huì)隨之改變,借由檢測(cè)電阻值便可知轉(zhuǎn)動(dòng)的角度。
我們?cè)诎咐惺褂玫拇蠖鄶?shù)規(guī)格的舵機(jī)都是出3根線,常見的是紅、棕、橙3個(gè)顏色,也有紅、白、黑三色的。紅色為5V電源線,黑色或棕色線為接地線,橙色或白色線為信號(hào)線。
常見的“機(jī)械手臂”案例就是使用舵機(jī)實(shí)現(xiàn)的,通過(guò)主板控制不同的舵機(jī),轉(zhuǎn)動(dòng)不同的角度,最終實(shí)現(xiàn)機(jī)械手臂的流暢運(yùn)動(dòng)。如果我們想要制作的案例需要實(shí)現(xiàn)精確轉(zhuǎn)動(dòng)或者固定角度的往復(fù)轉(zhuǎn)動(dòng),那么舵機(jī)是必備的硬件模塊之一。
輕觸開關(guān)模塊
輕觸開關(guān)又叫按鍵開關(guān),這種硬件最早出現(xiàn)在日本,從各種電源開關(guān)到數(shù)字鍵盤等,在生活中總能找到它的身影。在使用時(shí),我們需要向開關(guān)操作方向施壓,開關(guān)按鍵被按下后就會(huì)閉合接通,當(dāng)撤銷壓力時(shí)開關(guān)也就隨即斷開,其內(nèi)部結(jié)構(gòu)是靠金屬?gòu)椘芰ψ兓瘜?shí)現(xiàn)通斷的。
我們常用的按鍵開關(guān)模塊是一種數(shù)字輸入模塊,它將按鍵開關(guān)元件和上拉電阻等元器件集合而成。按鍵開關(guān)模塊通常是3P接口,分別是數(shù)據(jù)線S、電源V和地線G。在實(shí)際應(yīng)用時(shí),需要將S端接在Arduino主板上的模擬輸入接口,V接在正極,G接在地線。當(dāng)我們按下按鍵時(shí),它輸出的數(shù)字信號(hào)是高電平,松開按鍵時(shí)輸出低電平。
輕觸開關(guān)有接觸電阻荷小、精確的操作力誤差、規(guī)格多樣化等方面的優(yōu)勢(shì),在電子設(shè)備及白色家電等方面得到廣泛應(yīng)用,如影音產(chǎn)品、數(shù)碼產(chǎn)品、遙控器、通訊產(chǎn)品、家用電器、安防產(chǎn)品、玩具、電腦產(chǎn)品、健身器材、醫(yī)療器材等。
LED燈
LED又稱發(fā)光二極管,從廣告面板到手電筒再到路燈,LED在我們的生活中無(wú)處不在。
作為一種能夠?qū)㈦娔苻D(zhuǎn)化為可見光的固態(tài)半導(dǎo)體器件,LED可以直接把電轉(zhuǎn)化為光,這種光電轉(zhuǎn)換效率比傳統(tǒng)的白熾燈要高許多。LED是一種單向?qū)щ姷亩O管,有一長(zhǎng)一短2個(gè)腳,短的連接GND,長(zhǎng)的連接正極。需要注意的是,如果接反了不僅不會(huì)亮,還會(huì)有損毀風(fēng)險(xiǎn)。
我們常用的LED模塊上面有1個(gè)發(fā)光二極管,除此之外還有1個(gè)用于限流分壓的電阻,除了元器件之外,在模塊上還有3個(gè)管腳,使用時(shí),我們可以把LED模塊的3個(gè)腳接到Arduino板上,GND接地,VCC接5V,IN接IO腳。不同品牌的模塊管腳標(biāo)注方法會(huì)有所不同,有的把GND標(biāo)為“-”號(hào),把IN標(biāo)為“S”(即Signal信號(hào)的意思),在連接之前需要注意查看。光線傳感器
凡是涉及與光線強(qiáng)度相關(guān)的案例,就一定會(huì)用到光線傳感器。光線傳感器大多是基于半導(dǎo)體的光電效應(yīng)原理開發(fā)出來(lái)的,可以用于對(duì)傳感器周圍環(huán)境光的強(qiáng)度進(jìn)行檢測(cè)。光線傳感器的實(shí)質(zhì)是一個(gè)光敏電阻,其阻值會(huì)隨著光線強(qiáng)度的變化而變化,當(dāng)光照變強(qiáng)時(shí),阻值變小;光照減弱時(shí),阻值增大。簡(jiǎn)單來(lái)說(shuō),光線傳感器就是利用光敏電阻受光線強(qiáng)度影響而阻值發(fā)生變化的原理將光線強(qiáng)度轉(zhuǎn)換為電壓信號(hào)。
光線傳感器模塊共引出3個(gè)引腳,分別是數(shù)據(jù)線S,電源Vcc和地線GND。實(shí)際應(yīng)用時(shí)需要將S端接在Arduino主板上的模擬輸入接口,通過(guò)光線強(qiáng)度的變化改變阻值,從而改變S端的輸出電壓。Arduino主板將電壓值轉(zhuǎn)換為模擬信號(hào)的數(shù)值。
舉個(gè)例子,我們常見的樓道燈需要在光線變暗時(shí)打開燈光,這里檢測(cè)光線變暗通常使用的就是光線傳感器。還有“追光太陽(yáng)能板”,通過(guò)控制舵機(jī)轉(zhuǎn)動(dòng)讓太陽(yáng)能板時(shí)刻正對(duì)太陽(yáng),這就是利用了4個(gè)光線傳感器檢測(cè)太陽(yáng)的光照度,4個(gè)傳感器組成2×2的陣列,陣列中間有1個(gè)“十”字的遮光板,當(dāng)太陽(yáng)光直射時(shí)4個(gè)傳感器的數(shù)值一樣,當(dāng)斜射時(shí)遮光板就會(huì)擋住一些光,從而通過(guò)比較4個(gè)傳感器的數(shù)值就可以判斷太陽(yáng)在哪個(gè)方位,也就知道舵機(jī)需要向哪個(gè)方向轉(zhuǎn)動(dòng)了。
當(dāng)Arduino連上傳感器與硬件模塊,可以很好地將人與環(huán)境,甚至與世界互動(dòng)起來(lái)。如果我們有不錯(cuò)的想法和創(chuàng)意,可以通過(guò)Arduino編程實(shí)現(xiàn),在教學(xué)中,我們可以引導(dǎo)學(xué)生從生活實(shí)際出發(fā)選定項(xiàng)目主題,發(fā)現(xiàn)生活中存在的問題,提出解決方案并實(shí)施,以求解決問題,從而讓科技走進(jìn)生活,讓我們的生活更加美好。