采用被動(dòng)式紅外傳感器做運(yùn)動(dòng)檢測(cè) 有沒(méi)有簡(jiǎn)捷實(shí)現(xiàn)的方案?
本文首先討論運(yùn)動(dòng)檢測(cè)的基本原理,然后展示開(kāi)發(fā)者如何使用與 Microchip DM080104 ATtiny 1627 Curiosity Nano 連接的 PIR 進(jìn)行運(yùn)動(dòng)檢測(cè)。最后,介紹一種可替代復(fù)雜算法開(kāi)發(fā)的運(yùn)動(dòng)檢測(cè)方法。這種方法充分發(fā)揮了機(jī)器學(xué)習(xí) (ML) 技術(shù)的優(yōu)勢(shì)。其中包括入門所需的技巧和竅門。
本文引用地址:http://www.ex-cimer.com/article/202407/460499.htm在許多工業(yè)、商業(yè)、家居和嵌入式應(yīng)用中,對(duì)運(yùn)動(dòng)檢測(cè)的需求在持續(xù)增長(zhǎng)。問(wèn)題是運(yùn)動(dòng)檢測(cè)可能需要價(jià)格高昂且難以連接的數(shù)字傳感器。此外,在收到數(shù)據(jù)后仍然需要開(kāi)發(fā)算法來(lái)檢測(cè)運(yùn)動(dòng),這是一項(xiàng)極為重要的工作。有多種解決方案可用來(lái)檢測(cè)運(yùn)動(dòng),其中紅外 (IR) 解決方案最受歡迎。開(kāi)發(fā)人員可以選擇一種在許多獨(dú)立數(shù)字傳感器中常見(jiàn)的主動(dòng)式解決方案,但實(shí)施成本會(huì)更高、實(shí)施過(guò)程更復(fù)雜。另一種方法是 發(fā)揮被動(dòng)式紅外傳感器 (PIR) 的優(yōu)勢(shì) ,這種傳感器成本較低,連接更簡(jiǎn)單。PIR 具有大多數(shù)微控制器都可以連接的模擬接口。
運(yùn)動(dòng)檢測(cè)的基本原理
目前有多種運(yùn)動(dòng)檢測(cè)技術(shù),其中以紅外技術(shù)應(yīng)用最為廣泛。 IR 傳感器分為主動(dòng)和被動(dòng)式。 主動(dòng)式傳感器包括一個(gè)紅外 LED 發(fā)射器和一個(gè)光電二極管接收器。主動(dòng)式傳感器可檢測(cè)到物體上反射的紅外線,然后使用接收到的紅外線來(lái)探測(cè)物體是否已發(fā)生移動(dòng)。根據(jù)不同的應(yīng)用,主動(dòng)式傳感器可能采用了多個(gè)光電二極管來(lái)查看運(yùn)動(dòng)方向。例如,通過(guò)探測(cè)哪些紅外信號(hào)滯后或超前,四個(gè)光電二極管可用于檢測(cè)左、右、前、后、上、下等指示性運(yùn)動(dòng)。被動(dòng)式紅外傳感器 不能發(fā)射紅外線,只能接收紅外線。 PIR 傳感器使用被探測(cè)物體發(fā)射的紅外線來(lái)探測(cè)其存在以及與之相關(guān)的任何運(yùn)動(dòng)。 例如,家居安防系統(tǒng)中通常會(huì)有運(yùn)動(dòng)傳感器,用于探測(cè)人或動(dòng)物發(fā)出的紅外線,并確定其是否在檢測(cè)范圍內(nèi)移動(dòng)。圖 1 所示為模擬 PIR 傳感器在不同條件下可能探測(cè)到的對(duì)象或物體狀態(tài),如無(wú)紅外線、紅外線存在、穩(wěn)定不變和離開(kāi)(切斷)。
圖 1:PIR 傳感器使用對(duì)象或物體發(fā)出的紅外線來(lái)探測(cè)其運(yùn)動(dòng)和存在狀態(tài)。如圖所示,不同的探測(cè)階段包括:無(wú)紅外線、存在紅外線、穩(wěn)定不變和離開(kāi)(切斷)。(圖片來(lái)源:Microchip Technology)當(dāng)為某個(gè)應(yīng)用選擇正確的紅外傳感器類型時(shí),開(kāi)發(fā)者需要仔細(xì)考慮相對(duì)于以下參數(shù)的權(quán)衡:
傳感器成本
包裝
微控制器接口
探測(cè)算法和計(jì)算能力
傳感器系列和能耗
讓我們以 使用 ATtiny1627 的 PIR運(yùn)動(dòng)探測(cè)系統(tǒng) 為例進(jìn)行研究。ATtiny1627 Curiosity Nano 簡(jiǎn)介Microchip Technology 的 ATtiny1627 是一個(gè)值得關(guān)注的運(yùn)動(dòng)檢測(cè)微控制器 (MCU) 解決方案。這款 8 位MCU 內(nèi)置了 12 位模數(shù)轉(zhuǎn)換器 (ADC),最多可進(jìn)行 17 位超采樣。該器件包含用來(lái)調(diào)節(jié)靈敏度的可編程增益放大器 (PGA)。將這兩個(gè)特性組合在一起,可以實(shí)現(xiàn)一個(gè)適合許多應(yīng)用的低成本運(yùn)動(dòng)探測(cè)系統(tǒng)。最好的低成本入門方案是使用 DM080104 ATtiny1627 Curiosity Nano 開(kāi)發(fā)板 (圖 2)。該開(kāi)發(fā)板包含一個(gè)運(yùn)行速度高達(dá) 20 MHz 的 AVR MCU,這款 MCU 具有16 KB 閃存、2KB SRAM 和 256 B EEPROM。該板包括編程器、LED 和用戶開(kāi)關(guān)。也許最讓人感興趣的是,該板可以輕松的通過(guò)針座連接,可用于快速原型開(kāi)發(fā),或者直接焊接到原型或生產(chǎn)板上。
圖 2:ATtiny1627 Curiosity Nano 內(nèi)置 8 位可編程 AVR MCU,其運(yùn)行速度高達(dá) 20 MHz,擁有 16KB 閃存、2KB SRAM 和 256 B EEPROM。該開(kāi)發(fā)板可以很容易地焊接到一塊更大的底板上或者通過(guò)跳線與該底板連接,以方便原型設(shè)計(jì)和生產(chǎn)系統(tǒng)。(圖片來(lái)源:Microchip)
該板還有一些對(duì)開(kāi)發(fā)有益的功能。首先,該板有兩個(gè)邏輯分析器通道: DGI 和 GPIO。這些通道可以用來(lái)調(diào)試和管理微控制器。第二,開(kāi)發(fā)者可以利用板載虛擬 COM 端口 (CDC) 進(jìn)行調(diào)試或記錄信息。最后,可以使用多種工具編寫(xiě)和部署軟件。例如,開(kāi)發(fā)者可以使用 Microchip Studio 7.0 、GCC 編譯器;或者使用 MPLAB X ,它使用 GCC 或 XC8 編譯器 。此外,Microchip 支持大約十幾個(gè) 代碼庫(kù) , 包括了各種不同的 ATtiny1627 示例。這些代碼庫(kù)中包含了 PIR 運(yùn)動(dòng)探測(cè)、溫度測(cè)量、模擬轉(zhuǎn)換等大量示例。構(gòu)建運(yùn)動(dòng)探測(cè)測(cè)試臺(tái)構(gòu)建并運(yùn)行運(yùn)動(dòng)探測(cè)測(cè)試臺(tái)很簡(jiǎn)單,成本也不太高。構(gòu)建測(cè)試臺(tái)的必要組件包括:
DM080104 ATtiny1627 Curiosity Nano
AC164162T Curiosity Nano適配器
MikroElektronika 的 MIKROE-3339 PIR 傳感器
我們已經(jīng)了解 ATtiny1627 Curiosity Nano的基本功能。Curiosity Nano 適配器為 ATtiny1627 Curiosity Nano 提供一塊載板,可用于快速原型開(kāi)發(fā)(圖 3)。此外,該適配器還為 MIKROE click boards 擴(kuò)展板提供了三個(gè)擴(kuò)展插槽以及針座,用于評(píng)估信號(hào)或添加自定義硬件。
圖 3:Curiosity Nano 適配器還為 MIKROE click board 擴(kuò)展板提供了三個(gè)擴(kuò)展插槽以及針座,用于訪問(wèn)信號(hào)或添加自定義硬件。(圖片來(lái)源:Microchip)最后是如圖 4 所示的 MIKROE-3339 PIR 傳感器,該器件提供了樣式簡(jiǎn)單、可擴(kuò)展的 KEMET PL-N823-01 被動(dòng)式紅外傳感器,可以直接與 Curiosity Nano 適配器連接。需要指出的是,MIKROE-3339 與 Microchip 的運(yùn)動(dòng)探測(cè)示例一起使用時(shí),需要進(jìn)行一些修改。關(guān)于這些修改請(qǐng)參閱Microchip 的 AN3641 應(yīng)用說(shuō)明 《使用 tinyAVR ? 2 系列實(shí)現(xiàn)低功耗、高性價(jià)比 PIR 運(yùn)動(dòng)探測(cè)》 的第10 頁(yè)。
圖 4:MIKROE-3339 click board 擴(kuò)展板易于制作原型,提供了一個(gè) KEMET PL-N823-01 PIR 傳感器。(圖片來(lái)源:MikroElektronika)PIR運(yùn)動(dòng)探測(cè)軟件在軟件方面開(kāi)發(fā)者有多種選擇,可以用來(lái)創(chuàng)建運(yùn)動(dòng)探測(cè)軟件解決方案。第一個(gè)解決方案是使用 Microchip 在 AN3641 中提供的示例材料 。示例運(yùn)動(dòng)探測(cè)軟件的代碼庫(kù)可以在 Github 中查找。該應(yīng)用分為多個(gè)階段。首先,應(yīng)用初始化并預(yù)熱 PIR 傳感器。其次,使用 ADC 中斷服務(wù)例程定期對(duì) PIR 傳感器進(jìn)行采樣。第三,ADC 數(shù)據(jù)進(jìn)行平均化處理。最后,通過(guò)探測(cè)算法發(fā)出是否探測(cè)到運(yùn)動(dòng)的信號(hào)。如果探測(cè)到活動(dòng),板載 LED 閃爍并通過(guò)串行端口發(fā)送探測(cè)信號(hào)。完整的程序流程參見(jiàn)圖 5。
圖 5:該圖表展示了 Microchip 運(yùn)動(dòng)探測(cè)應(yīng)用的軟件流程。(圖片來(lái)源:Microchip)運(yùn)動(dòng)探測(cè)的第二個(gè)選擇是 利用 Microchip 示例中的初始化和 ADC 中斷例程 ,但不使用其探測(cè)算法,而使用 ML??梢允占?PIR 數(shù)據(jù),然后用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)。然后,ML 模型可以通過(guò) TensorFlow Lite for Microcontrollers切換至微控制器運(yùn)行,使用 8 位權(quán)重的定點(diǎn)數(shù)學(xué)。以這種方式使用 ML 的吸引人的地方是,開(kāi)發(fā)者無(wú)需再為其特定需求設(shè)計(jì)算法。相反,開(kāi)發(fā)者只需在預(yù)期條件及其應(yīng)用所需的用例下對(duì)傳感器進(jìn)行采樣。此外,ML 還允許開(kāi)發(fā)者在新數(shù)據(jù)出現(xiàn)時(shí)快速擴(kuò)展并調(diào)整其模型。使用 ATtiny1627 進(jìn)行運(yùn)動(dòng)檢測(cè)的技巧和竅門對(duì)于那些有興趣使用運(yùn)動(dòng)探測(cè)的開(kāi)發(fā)者來(lái)說(shuō),他們有許多選擇。為了簡(jiǎn)化開(kāi)發(fā)、加快開(kāi)發(fā)速度,開(kāi)發(fā)者應(yīng)牢記的“技巧和竅門”包括:
使用現(xiàn)成零件構(gòu)建一個(gè)低成本原型開(kāi)發(fā)平臺(tái)。
充分利用 Microchip 運(yùn)動(dòng)探測(cè)示例。這些示例可以在 GitHub 上查找。
使用 ATtiny1627 Curiosity Nano 封裝設(shè)計(jì)原型硬件,并直接將電路板焊接到硬件上,以簡(jiǎn)化初始原型。
如需獲得更少、更有效的優(yōu)化代碼,請(qǐng)使用 Microchip XC8 編譯器。
在開(kāi)始構(gòu)建運(yùn)動(dòng)探測(cè)應(yīng)用前,請(qǐng)閱讀 Microchip 的 AN3641 的文檔: 使用 tinyAVR ? 2 系列的低功耗、高性價(jià)比 PIR 運(yùn)動(dòng)探測(cè)器 。
認(rèn)真考慮將 ML 用于運(yùn)動(dòng)探測(cè)算法。
遵循這些“技巧和竅門”的開(kāi)發(fā)者會(huì)發(fā)現(xiàn),他們?cè)趯?duì)應(yīng)用進(jìn)行原型開(kāi)發(fā)時(shí)可以節(jié)省更多的時(shí)間,減少更多的麻煩。
總結(jié)
運(yùn)動(dòng)探測(cè)正在成為許多應(yīng)用的常見(jiàn)功能,特別是在非觸摸場(chǎng)景下。 開(kāi)發(fā)者可以通過(guò)使用 PIR 傳感器和低成本 MCU,最大限度地減少 BOM 成本,簡(jiǎn)化設(shè)計(jì)。 如圖所示,ATtiny1627 是一個(gè)很好的起點(diǎn),Microchip 提供了大量的工具和應(yīng)用說(shuō)明,幫助開(kāi)發(fā)者啟動(dòng)其項(xiàng)目。 此外,為了盡可能簡(jiǎn)化運(yùn)動(dòng)探測(cè)算法開(kāi)發(fā),可以使用 ML。
評(píng)論