使用Raspberry Pi進行感測器輸入實驗

本文最初發佈在deviceplus.jp網站上,而後被翻譯成英語。

在本系列文章中,主要是透過使用Raspberry Pi打造的簡單專案來學習電子設計的原理和基礎知識。此次的分享嘉賓是伊藤尚未先生,一位媒體藝術家和作家,以講解“更深層次的原理”而聞名。本文將探討感測器輸入實驗。

[目錄]

1. 目錄
2. 馬達旋轉原理
3. 感測器概述
4. 光電電晶體與GPIO的連接
5. 光反射器與GPIO的連接
6. 結論

1. 簡介

這個世界每天都在快速發展,很多人跟不上發展的步伐,並非他們對新事物不感興趣,而是在各個方面與時俱進實在是心有餘而力不足。因此,我會先對各類不同事務進行思考,然後整理思考結果並確定我應該做的事情,專注於我認為有趣的事情並全身心投入去做,這就是今天我在這裡所做的工作的源動力。

2. 馬達旋轉原理

在上一篇文章中我們用的是直流馬達。我在汽車模型、塑膠模型和無線電控制模型方面有著豐富的經驗。我認為直流馬達就像是能量轉換的代表,能夠將電能轉換成動能。下面透過簡單的原理圖來具體說明。

Mechanism for Turning the Motor

當然,基本原理是電流產生的磁場會影響永磁體(鐵氧體磁鐵)的磁場,從而產生等於動能的物理力。想知道這個機理是什麼嗎?對,就是弗萊明左手定則。大家應該都聽說過吧。

弗萊明左手定則
首先,您應該知道,弗萊明定則分為右手定則和左手定則。拇指、食指和中指互相垂直,分別代表三維XYZ軸。拇指代表力的方向,食指代表磁場的方向,中指代表電流流動的方向。

Fleming’s Law left-hand rule

透過使自己的左右手擺成這種造型,即可直接瞭解這三者之間的關係。將肘部彎曲並暫且將手拉至胸前,然後將肘部向左右45度方向伸展,並大聲說“耶!”關鍵在於左右手的形狀。一隻手代表馬達的原理,另一隻手代表發馬達的原理,怎麼樣?大家還記得哪只手代表馬達哪只手代表發馬達嗎?

一隻手代表透過電能產生動能的馬達;另一隻手代表透過動能創造電能的發馬達。對於慣用右手的人而言,很容易就能記住右手是勤勤懇懇不斷運動的“發馬達”,那麼左手就是動作不夠麻利的“馬達”。接下來,讓我們進入主題,嘗試透過Raspberry Pi使用感測器。

3. 感測器概述

一提到感測器,大家就會想到一個以電子方式檢測某些條件狀態的裝置或電子器件。具體有哪些條件狀態呢?包括光、聲音、溫度、濕度、傾斜度以及加速度等。比如在我們的日常生活中離我們很近但我們卻不想經歷的火災報警器,配有能夠感應溫度和煙霧的感測器,當溫度和煙霧達到一定條件時即會觸發警報機制。另外,數碼相機也配備有光感測器。現在的感測器已經非常先進,甚至可以透過人工智慧(AI)技術分析圖像和識別固體物,這種識別能力已經超過了感測器本身的功能。

可以想像一下,當您走在街上,聽到有人喊您,如果遇到心裡想“這是誰?”的情況,此時此刻,真希望自己的大腦能連接AI設備啊。
總之,電子作品可以使用的設備、元器件及其工作機制種類繁多,還有一些產品可以像擴展元件一樣與微控制器相連,並直接獲取資料。在本文中,我們將回歸基礎,使用一種叫做“光電電晶體”的光感測器。以前,提到光感測器,就是指硫化鎘(CdS)光敏電阻,這是一種一旦接收到光其電阻值就會下降的元件。顧名思義,這種感測器採用硫化鎘製成,但出於環保方面的考慮,這種感測器的使用已經越來越少。

about the sensors

NJL7502L光電電晶體(左)和2個硫化鎘光敏電阻(右)

這種光電電晶體採用半導體製成,與一般的雙極電晶體結構相同。二者唯一的區別是光電電晶體的輸入是光。

phototransistor polarity

圖形符號

從圖形符號來看,這種電晶體與NPN型電晶體相似,但沒有B端(基極),取而代之的是一個箭頭。這個箭頭代表光,因此B端(基極)輸入的並非電流,而是入射光。也就是說,C端(集電極)到E端(發射極)之間輸出的是光的強弱。具有根據光的情況進行放大或開關的功能。

光電電晶體與GPIO的連接

我們嘗試將光電電晶體與Raspberry Pi上的GPIO相連。使用的語言是Scratch,感測器的取值方法與開關相同,為1和0。

Connect the Phototransistor to the GPIO

這個電路簡直太簡單了,簡單到甚至讓人懷疑用這個電路到底能不能工作,那麼就讓我們來試一試吧。
當沒有光射入光電電晶體時,輸入設置為“pullup”,因此開關ON。也就是說,此時值為1。有光射入時,在光電電晶體的作用下,輸入變為負值,開關OFF,值變為0。

set input GPIO to Pullup

聲明GPIO,然後將輸入GPIO設置為“pullup”,透過小貓程式設計軟體輸出結果。將光照射在感測器上,或用手遮住感測器部分擋住光,可以看到值變成1或者0。這裡我們使用的是光感測器,大家也可採用其他不同的感測器來試一試製作不同的作品。例如,採用溫度感測器——熱敏電阻,打造一個當溫度升高時可以打開馬達送風的裝置;還可與濕度感測器配合使用,打造中暑警報器等作品。總之,GPIO輸入真的非常方便!

透過光來檢測物體的感測器

在很多情況下,光電電晶體可能會受到周圍環境光的影響。當然,在黑暗的環境中這種感測器就沒有用武之地了。因此,與LED結合使用,也就是與光源配對使用光電電晶體,效果會更好。這種配對使用的元器件有很多種,具體的結構和檢測方法等也不盡相同。

光斷續器是將光電電晶體與LDE成直線配置,使LED的光直接輸入到光電電晶體,當有物體穿過它們當中並遮擋光線時,就會檢測到該物體的一種感測裝置。此類設備一般用於工廠生產線和印表機等設備中,所以我們在生活中並不常見。

Photointerrupters

光反射器則是將LED和光電電晶體安裝在同一方向,當有物體透過它們前面時,就會檢測到反射光的一種感測裝置。最常見的應用是公共衛生間的自動沖水感測器。

photo reflector

光電耦合器由LED和光電電晶體配對組成,但這種產品不是用來檢測其間物體的,而是用來透過光傳輸信號的。因此,光電耦合器並不是感測器,但因其同樣使用了光源和光接收器件而暫且列為感測器的夥伴吧。光電耦合器無需連電即可傳輸信號,因此適用于注重電路安全的應用,以及向電氣特性不同的電路傳輸信號的應用。

Photo couplers

光反射器與GPIO的連接

此次,我們打算使用ROHM的RPR-220光反射器。這種光反射器由LED和電晶體組成,接下來我們來瞭解一下它們的特性。

Rohm's RPR-220 Photo Reflector

RPR-220

首先,LED部分的電壓和電流分別為1.34V和50mA,光電電晶體部分集電極電流為300mA,因此LED電源需要使用3.3V的Raspberry Pi電源引腳,連接51Ω的限流電阻器,並與LED部分連接。這種LED的光是紅外光,肉眼無法直接看到,但使用數碼相機可以很清楚地看到它在發光。

Connect the Phototransistor to the GPIO

光電電晶體部分的電路與之前的電路相同。這樣,就可以發揮感測器的作用了。我們暫且嘗試了讓LED自行點亮。當然,也可以像之前一樣,嘗試讓馬達轉起來。

Connect the Phototransistor to the GPIO

麵包板組裝示意如圖如下:

assembled on a breadboard diagram

assembled on a breadboard

Scratch程式示意如圖如下:
 scratch

完成以上步驟後,當感測器前面有東西時,LED就會點亮。

LED lights up

看!LED點亮!

在光反射器的結構是發光單元和光接收單元分開配置在封裝內部的。由於是用來反射光的產品,所以如果有什麼東西與封裝緊密接觸,光接收單元就無法很好地接收反射光。對於RPR-220來說,距離封裝6mm為宜。因此,可能設想打造一些透過玻璃或亞克力板放置什麼東西的項目比較好。

4. 結論

這次我們嘗試了感測器輸入實驗,進一步瞭解了透過簡單的原理來處理感測器的方法。但我們不能就此止步。我希望繼續探索具體應用,嘗試做有趣的專案,或者打造一些實用產品。在下一篇文章中,我們將會運用迄今為止所學到的原理和工作機制,來介紹打造具體作品的技術和過程。

雖然透過實驗來驗證原理和工作機制非常重要,但我更期望在不斷創新的同時,能夠更多地思考在哪方面可進行更深入的探索,不斷拓展應用範圍。