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