由太陽(yáng)能供電基于聲學(xué)事件構(gòu)建非法記錄檢測(cè)的森林守護(hù)者
資料介紹
描述
每年有近 1900 萬(wàn)英畝的森林被毀,相當(dāng)于每分鐘 27 個(gè)足球場(chǎng)。森林是成千上萬(wàn)動(dòng)物的家園,對(duì)許多人來(lái)說(shuō),它們是食物、水、衣服、藥品和庇護(hù)所的來(lái)源。所謂的地球之肺還通過(guò)充當(dāng)碳匯來(lái)緩解氣候變化。隨著城市隨著森林火災(zāi)等自然災(zāi)害的增加而以驚人的速度擴(kuò)張,保護(hù)森林生態(tài)系統(tǒng)的必要性是我們應(yīng)對(duì)氣候變化的重要一步。森林火災(zāi)無(wú)需介紹。話(huà)雖如此,超過(guò) 80% 的森林火災(zāi)是人為的(人為的),而不是生物的(自然的)。這些原因可能有很多,例如非法采伐、砍伐森林的努力。非法采伐造成的森林損失對(duì)生物多樣性構(gòu)成威脅在森林棲息地。越來(lái)越多的物種無(wú)法生存,因?yàn)檫@種做法否認(rèn)了對(duì)自然相互聯(lián)系至關(guān)重要的棲息地。森林的廣泛破碎和退化使更多的動(dòng)植物物種瀕臨滅絕。因此,停止非法采伐將有助于恢復(fù)動(dòng)植物并恢復(fù)自然平衡以維持世界。
建議的解決方案
解決方案是在邊緣本身由太陽(yáng)能供電,基于聲學(xué)事件構(gòu)建非法記錄檢測(cè)。迄今為止,大多數(shù)解決方案都嚴(yán)重依賴(lài)云來(lái)對(duì)從傳感器收集的數(shù)據(jù)進(jìn)行后處理,這受到網(wǎng)絡(luò)帶寬的限制,這使得它們成為耗電設(shè)備。因此,所提出的設(shè)備將能夠在邊緣對(duì) 3 類(lèi)聲學(xué)事件進(jìn)行分類(lèi),即:正常(天然森林聲音)、斧頭(使用 Axe 記錄樹(shù)木)、電鋸(使用鏈鋸記錄樹(shù)木),并且只會(huì)發(fā)送通過(guò)射頻將分類(lèi)結(jié)果和設(shè)備狀態(tài)發(fā)送到基站。基站接收數(shù)據(jù),將其上傳到云端,如果檢測(cè)到非法登錄,則會(huì)向有關(guān)當(dāng)局發(fā)出短信警報(bào)。為了在森林中維持這種解決方案,我們需要收集太陽(yáng)能并將其儲(chǔ)存在電池中。此外,為了節(jié)省電力,設(shè)備將處于睡眠、喚醒推理和再次睡眠的連續(xù)循環(huán)中。
![pYYBAGNy3DuAMGWjAAFHMhvEOYk573.jpg](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3DuAMGWjAAFHMhvEOYk573.jpg)
建筑五金
我們的首要目標(biāo)是選擇節(jié)能的組件,因?yàn)樵撛O(shè)備將完全依靠電池和太陽(yáng)能運(yùn)行。下面提到的是選擇的組件列表:
1) QuickFeather 開(kāi)發(fā)套件:該板具有 80Mhz Arm 內(nèi)核和 eFPGA,有助于更快地執(zhí)行計(jì)算密集型任務(wù),同時(shí)減少能耗。該板具有帶低功率聲音檢測(cè)器 (LPSD) 的板載麥克風(fēng)、NOR 閃存、帶 JST 連接器的電池充電器,這使其成為我們應(yīng)用的合適候選者
2) Xbee S2C:此射頻模塊可在低至 2mW 的功率下運(yùn)行,睡眠電流為微安。除了電源規(guī)格外,模塊的可用性和價(jià)格也使其脫穎而出。
3) 太陽(yáng)能答題板:該模塊包含 TI 的 BQ25570 納米功率升壓充電器和降壓轉(zhuǎn)換器。低冷啟動(dòng)電壓 (300mV)、峰值輸出電流 (110mA)、簡(jiǎn)單的引腳分配和備用超級(jí)電容器使其適合我們的項(xiàng)目。
在亞馬遜上找到了一個(gè)便宜的太陽(yáng)能照明模塊,結(jié)果證明它是該項(xiàng)目的一個(gè)很好的外殼,因?yàn)樘?yáng)能電池板已經(jīng)連接到外殼上,還有一個(gè)電池座。由于快羽板上的麥克風(fēng)朝下,請(qǐng)確保開(kāi)口沒(méi)有被外殼堵塞。所有組件都使用焊接到原型板的母頭針連接。硬件連接如下:
1)太陽(yáng)能電池板輸入連接到太陽(yáng)能點(diǎn)擊模塊的輸入引腳。為了啟用降壓升壓轉(zhuǎn)換器,太陽(yáng)能答題器模塊的EN 引腳短接到地。升壓后的電壓又使用 just 連接器連接到快速引出板。XBee 通過(guò)快速轉(zhuǎn)接板上的穩(wěn)壓輸出 (J3_15) 供電,以保持穩(wěn)定的射頻通信。電池也通過(guò) JST 連接器旁邊的 Vbat 引腳連接。
2)快速羽毛板上的Rx和Tx引腳分別連接到Xbee模塊的Rx和Tx引腳。連接到 Xbee 模塊的 Pin 9 的 Quick Feather 上的 IO_6 引腳控制 Xbee 模塊的睡眠周期。將其拉高(3.3 V)會(huì)使 XBee 進(jìn)入睡眠模式并保持低電平(GND)將其喚醒。
小飛線(xiàn)用于形成組件之間的互連。以下是硬件設(shè)計(jì)的一些快照。
數(shù)據(jù)采集
SensiML 為數(shù)據(jù)捕獲、數(shù)據(jù)建模和固件生成提供端到端軟件解決方案,用于低功耗資源受限設(shè)備的設(shè)備上推理。要使用 SensiML Solutions 的快速功能,我們需要將數(shù)據(jù)收集固件 bin 文件閃存到板上。您可以直接從SensiML 網(wǎng)站下載 bin 文件(確保下載支持音頻的 bin 文件)并按照本教程開(kāi)始。我在為 Tinyfpga 程序員創(chuàng)建別名時(shí)遇到問(wèn)題,但是,使用 git bash 控制臺(tái)幫助我解決了創(chuàng)建別名“qfprog”以及將 bin 文件閃存到板上的問(wèn)題。
由于我們需要在項(xiàng)目后期編寫(xiě)一些固件,因此最好獲得一些在eclipse ide上使用Quickfeather Simple Streaming Interface AI Application Project生成bin文件的實(shí)踐經(jīng)驗(yàn)。這是在 Eclipse 上設(shè)置應(yīng)用程序項(xiàng)目的描述性演練。
在 IDE 上設(shè)置項(xiàng)目后,前往Fw_global_config.h文件并為要在Data capture Lab中檢測(cè)到的設(shè)備進(jìn)行以下更改。
![pYYBAGNy3EaAdQ0pAADQS_EE8W8278.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3EaAdQ0pAADQS_EE8W8278.png)
選擇音頻宏以通過(guò) UART 啟用音頻流。您還需要在項(xiàng)目的sensor_audio目錄中的sensor_audio_config_user.h頭文件中啟用SENSOR_AUDIO_LIVESTREAM_ENABLED宏。
![poYBAGNy3EiAWWrlAABNYeAA9B4477.png](https://file.elecfans.com/web2/M00/7A/88/poYBAGNy3EiAWWrlAABNYeAA9B4477.png)
點(diǎn)擊構(gòu)建按鈕(錘形),生成位于 GCC_Project/output/bin 目錄中的 bin 文件。在同一目錄下打開(kāi) git bash,在綠色 LED 停止閃爍之前按板上的重置按鈕,然后按用戶(hù)按鈕,然后使用以下命令刷新 bin 文件。
qfprog --port --m4app .bin --mode m4
一旦程序被刷新,根據(jù)以下連接將 USB 到 TTL 串行轉(zhuǎn)換器連接到快速羽毛:
Rx(串行轉(zhuǎn)換器)-> Rx(快速羽毛板)
Tx(串行轉(zhuǎn)換器)-> Tx(快速羽化板)
接地(串行轉(zhuǎn)換器)-> 接地(快速羽毛板)
首先,創(chuàng)建一個(gè)新帳戶(hù)并下載 DCL 軟件,然后登錄。連接就緒后,打開(kāi) Data Capture Lab,創(chuàng)建一個(gè)新項(xiàng)目,為其命名并將其保存在某個(gè)位置。然后從“標(biāo)簽資源管理器”模式切換到“捕獲”模式。DCL 使用 SSF 文件形式的插件,告訴它如何與設(shè)備通信。在此處下載QuickFeather 的一個(gè)(確保為 Simple Streaming 選擇一個(gè))并使用 Edit->Import Device Plugin 并選擇剛剛下載的 SSF 文件添加它。在右上角你會(huì)看到 Sensor Configuration 是空的,所以點(diǎn)擊 add new sensor 按鈕,選擇 QuickFeather Simple Stream 插件,使用“Audio”捕獲源,采樣率為每秒 16000 個(gè)樣本,然后確保選中“麥克風(fēng)”。繼續(xù)并使用您喜歡的名稱(chēng)保存它。
設(shè)置好電路板后,使用“掃描設(shè)備”按鈕找到正確的串行端口(用于 USB 到 TTL 串行轉(zhuǎn)換器的端口?。┖?,在 DCL 中單擊“連接”。如果它最初不起作用,請(qǐng)嘗試拔下轉(zhuǎn)換器,將其重新插入,或斷開(kāi)并重新連接。在該窗格下方,有一個(gè)用于添加標(biāo)簽和元數(shù)據(jù)的部分。我添加了三個(gè)標(biāo)簽:普通、斧頭和電鋸。準(zhǔn)備好后點(diǎn)擊錄制按鈕。
錄制完成后,我們需要清理音頻數(shù)據(jù),因?yàn)槲覀儾幌M麑⒉恍枰囊纛l片段輸入到訓(xùn)練模型中。這可以通過(guò)轉(zhuǎn)到左上角的 Project Explorer 選項(xiàng)卡并雙擊要修改的捕獲來(lái)完成。然后我們可以通過(guò)在要保留的區(qū)域上按住鼠標(biāo)右鍵單擊的同時(shí)拖動(dòng)鼠標(biāo)來(lái)添加段。您可以在右上角看到它們。這也允許我們通過(guò)為每個(gè)標(biāo)簽創(chuàng)建段并更改標(biāo)簽來(lái)在同一捕獲中捕獲不同的標(biāo)簽。您還可以使用檢測(cè)段底部的選項(xiàng)可自動(dòng)檢測(cè)數(shù)據(jù)中的段并為您完成所有重復(fù)性工作。確保為每個(gè)類(lèi)創(chuàng)建相同數(shù)量的段,因?yàn)檫@將平衡模型并防止其欠擬合或過(guò)擬合。您還可以添加數(shù)據(jù)視頻以與音頻事件相關(guān)聯(lián)。
![poYBAGNy3E2AdUdnAAMl3d_Ni0A357.png](https://file.elecfans.com/web2/M00/7A/88/poYBAGNy3E2AdUdnAAMl3d_Ni0A357.png)
在前往 File->Close File 之后,是時(shí)候使用 Analytics Studio 從捕獲的數(shù)據(jù)生成模型了。請(qǐng)記住,保存在 DCL 中的數(shù)據(jù)會(huì)自動(dòng)上傳并存儲(chǔ)在云中,盡管刷新和顯示可能需要一些時(shí)間。
數(shù)據(jù)訓(xùn)練:
SensiML 提供社區(qū)版訂閱計(jì)劃,該計(jì)劃以零成本提供分析工具包中的大部分功能。對(duì)于想要嘗試的制造商來(lái)說(shuō)非常有用。
在 Web 瀏覽器中登錄到Analytics Studio ,然后選擇在 DCL 中創(chuàng)建的項(xiàng)目。
![pYYBAGNy3E-ADZ_mAAFiRlgAk0Q899.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3E-ADZ_mAAFiRlgAk0Q899.png)
要訓(xùn)??練模型,我們必須首先通知 Analytics Studio 我們要在查詢(xún)表單中使用的數(shù)據(jù)。這可以通過(guò)單擊Prepare Data
選項(xiàng)卡并輸入名稱(chēng)、會(huì)話(huà)、標(biāo)簽、相關(guān)元數(shù)據(jù)、傳感器以及如何繪制它來(lái)完成。保存后,數(shù)據(jù)集應(yīng)該出現(xiàn)在右側(cè),我們可以看到每個(gè)標(biāo)簽中有多少段。
![pYYBAGNy3FKAOjx1AAEZ4iczF8c951.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3FKAOjx1AAEZ4iczF8c951.png)
管道是一系列數(shù)據(jù)處理步驟的容器。管道對(duì)象允許您獲取現(xiàn)有管道或創(chuàng)建具有給定名稱(chēng)的新管道。您可以使用創(chuàng)建的對(duì)象設(shè)置輸入數(shù)據(jù)源、添加轉(zhuǎn)換、特征生成器、特征選擇器、特征轉(zhuǎn)換和分類(lèi)器。我們可以通過(guò)單擊Build Model
選項(xiàng)卡并輸入以下詳細(xì)信息來(lái)創(chuàng)建管道:
1) 管道名稱(chēng):
2)選擇剛剛創(chuàng)建的查詢(xún),
3) 窗口大?。核鼘?duì)應(yīng)于每個(gè)事件要緩沖的樣本數(shù)。這會(huì)對(duì)模型和模型的大小產(chǎn)生顯著影響。因此明智地設(shè)置它。
4) 優(yōu)化指標(biāo):在準(zhǔn)確性、F1 分?jǐn)?shù)、靈敏度之間選擇您的優(yōu)先級(jí)。
5) 分類(lèi)器大?。哼@限制了模型的大小,非常適合加載到 ROM 受限的芯片上。
單擊Optimize
將通過(guò)并構(gòu)建模型。單擊“顯示高級(jí)設(shè)置”欄以顯示選項(xiàng)。我喜歡這組選項(xiàng),因?yàn)樗峁┝烁嗟撵`活性和對(duì)模型構(gòu)建過(guò)程的控制。我選擇的選項(xiàng)之一是“平衡數(shù)據(jù)”,它可以平衡每個(gè)班級(jí)中的數(shù)據(jù)以進(jìn)行訓(xùn)練。隨意使用這些設(shè)置,因?yàn)?/font>管道日志非常智能,因?yàn)樗ㄗh用戶(hù)在構(gòu)建失敗的情況下更改某個(gè)參數(shù)。
![poYBAGNy3FSAEjOAAAEH7KPbMmE068.png](https://file.elecfans.com/web2/M00/7A/88/poYBAGNy3FSAEjOAAAEH7KPbMmE068.png)
SensiML 提供了更多選項(xiàng)來(lái)研究生成的模型。切換到左側(cè)的 Explore Model 選項(xiàng)卡以顯示與模型相關(guān)的所有詳細(xì)信息,例如 Model Visualization、Confusion Matrix、Feature Summary 和 Knowledge Pack Summary。如果您想優(yōu)化和調(diào)整底層算法,請(qǐng)?jiān)L問(wèn) e 高級(jí)模型構(gòu)建教程
![pYYBAGNy3FeAfhv1AAGTyPQ_aRo484.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3FeAfhv1AAGTyPQ_aRo484.png)
您可以通過(guò)單擊左側(cè)下拉菜單中的“下載模型”選項(xiàng)繼續(xù)下載模型/知識(shí)。SensiMl支持的板子非常多,我們需要選擇的就是快羽板。即使您的開(kāi)發(fā)板不受支持,您也可以選擇 ARM GCC Generic,它會(huì)下載靜態(tài)庫(kù)以及示例代碼,以便與任何支持 ARM 的開(kāi)發(fā)板一起使用。下面提到的是我們?cè)谙螺d知識(shí)包之前需要關(guān)注的選項(xiàng):
1) 浮點(diǎn)選項(xiàng):這將為浮點(diǎn)特定約定生成浮點(diǎn)指令目標(biāo)
2)格式:我們這里有三個(gè)選項(xiàng)(二進(jìn)制、庫(kù)、源)。源代碼僅適用于付費(fèi)版本。如果您想直接將其閃存到板上,請(qǐng)下載選擇二進(jìn)制文件。對(duì)于我們的項(xiàng)目,我們需要庫(kù)格式以無(wú)縫集成到固件中。
3) 應(yīng)用:選擇簡(jiǎn)單流選項(xiàng),因?yàn)槲覀兪褂?Uart 進(jìn)行數(shù)據(jù)采集,而不是 WIFI 板。
4) Debug:在 Advanced Setting 選項(xiàng)卡下,確保將其設(shè)置為true ,因?yàn)樵诳焖龠壿?a href='http://www.delux-kingway.cn/article/bbs/' target='_blank' class='arckwlink_none'>論壇上已經(jīng)報(bào)告了與識(shí)別結(jié)果不顯示在 Uart Terminal 相關(guān)的問(wèn)題。
![poYBAGNy3FqAZlloAACMoT3ixBk457.png](https://file.elecfans.com/web2/M00/7A/88/poYBAGNy3FqAZlloAACMoT3ixBk457.png)
固件開(kāi)發(fā):
固件開(kāi)發(fā)的第一步是將生成的知識(shí)包集成到qf_ssi_ai_app項(xiàng)目中。下面提到的是一些可以幫助您實(shí)現(xiàn)相同目標(biāo)的鏈接:
將 SensiML 庫(kù)編譯到 QuickLogic QuickFeather 文檔中
這里的任務(wù)是開(kāi)發(fā)固件,在特定持續(xù)時(shí)間內(nèi)執(zhí)行音頻推理,進(jìn)入睡眠模式以在固定時(shí)間段內(nèi)節(jié)省電量,然后再次喚醒以恢復(fù)循環(huán)。qf_ssi_ai_app項(xiàng)目使用音頻數(shù)據(jù)塊處理器線(xiàn)程來(lái)收集音頻數(shù)據(jù),將其輸入模型,并將識(shí)別結(jié)果輸出到控制臺(tái)。如果我們可以?huà)炱疬@個(gè)線(xiàn)程,設(shè)備將自動(dòng)進(jìn)入理想狀態(tài),因?yàn)闆](méi)有更多任務(wù)要運(yùn)行。因此,固件設(shè)計(jì)計(jì)劃解釋如下:
![pYYBAGNy3FyAdaAUAAJ8I13KZOY036.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3FyAdaAUAAJ8I13KZOY036.png)
代碼開(kāi)發(fā)的分步指南如下:
1)在sensor_audio_config_user.h文件中開(kāi)啟識(shí)別模式:
#define SENSOR_AUDIO_RECOG_ENABLED (1) // Change it to 1
#define SENSOR_AUDIO_LIVESTREAM_ENABLED (0)
#define SENSOR_AUDIO_DATASAVE_ENABLED (0)
2)在main.c文件中添加如下頭文件
#include "ql_audio.h"
#include "sml_output.h"
3) 創(chuàng)建一個(gè)附加到音頻數(shù)據(jù)塊處理器線(xiàn)程的句柄并定義外部,使編譯器的生活變得容易。創(chuàng)建計(jì)時(shí)器句柄以控制設(shè)備的活動(dòng)持續(xù)時(shí)間和睡眠周期。
extern TaskHandle_t xTobeParsed;
TickType_t xTimestart;
TimerHandle_t idealtimer;
TimerHandle_t worktimer;
#define IDEAL_TIMER_PERIOD 10000
#define WORK_TIMER_PERIOD 2000
4) 現(xiàn)在通過(guò)更改以下文件將任務(wù)附加到線(xiàn)程:
- sensor_audio_process.c:
// Add this at the top of file
TaskHandle_t xTobeParsed;
// Pass the address of the task handle in the last parameter
datablk_processor_params_t audio_datablk_processor_params[] = {
{ AUDIO_DBP_THREAD_PRIORITY,
&audio_dbp_thread_q,
sizeof(audio_datablk_pe_descr)/sizeof(audio_datablk_pe_descr[0]),
audio_datablk_pe_descr,
256,
"AUDIO_DBP_THREAD",
&xTobeParsed /****** Edited here ********/
}
};
- datablk_processor.h:
// As we are passing the address of the task handle, we need to change type of the
// datablk_pe_handle to pointer.
typedef struct st_datablk_processor_params
{
int dbp_task_priority; ///< desired task priority
QueueHandle_t *p_dbp_task_inQ; ///< input queue handle
int num_pes; ///< number of PEs for this thread
datablk_pe_descriptor_t *p_descr; ///< array of thread PE configurations
int stack_depth; ///< depth of stack needed for this thread
char *dbp_task_name; ///< datablock processor task name string
xTaskHandle *datablk_pe_handle; /****** Edited here ********/
} datablk_processor_params_t ;
- datablk_processor.c:
// Remove the Ampersand sign in order be compatible with the pointer operator.
xTaskCreate ( datablk_processor_task,
p_dbp_params->dbp_task_name,
p_dbp_params->stack_depth,
p_dbp_params,
p_dbp_params->dbp_task_priority,
p_dbp_params->datablk_pe_handle /****** Edited here ********/
);
4)為以下任務(wù)添加功能:
- 初始化定時(shí)器:
void timer_init(void)
{
if (!idealtimer) {
idealtimer = xTimerCreate
(
"idealTimer",
IDEAL_TIMER_PERIOD, // 10 ticks = ~10ms
pdTRUE, // auto-reload when the timer expires
(void *)0,
idealTimer_Callback
);
}
if (!worktimer) {
worktimer = xTimerCreate
(
"workTimer",
WORK_TIMER_PERIOD, // 10 ticks = ~10ms
pdTRUE, // auto-reload when the timer expires
(void *)0,
workTimer_Callback
);
}
}
- 每個(gè)計(jì)時(shí)器到期后要調(diào)用的回調(diào)函數(shù):
void workTimer_Callback (TimerHandle_t timHandle)
{
max_class_print();
vTaskSuspend(xTobeParsed);
TimerStart(1);
uart_tx_raw_buf(UART_ID_SSI,"\r\nSleeping",10);
Xbee_Sleep_Config(1);
TimerStop(0);
}
void idealTimer_Callback(TimerHandle_t timHandle)
{
vTaskResume(xTobeParsed);
TimerStart(0); //work start
Xbee_Sleep_Config(0);
TimerStop(1); // ideal stop
HAL_DelayUSec(1000);
uart_tx_raw_buf(UART_ID_SSI,"\r\nInferencing",13);
}
- 啟動(dòng)和停止定時(shí)器的功能:
void TimerStart(bool timer_select)
{
BaseType_t status;
if (timer_select) {
status = xTimerStart (idealtimer, 0); // start timer
if (status != pdPASS) {
// Timer could not be started
uart_tx_raw_buf(UART_ID_SSI, "\r\n start ideal timer failed\r\n", 30);
}
}
else
{
status = xTimerStart (worktimer, 0); // start timer
if (status != pdPASS) {
// Timer could not be started
uart_tx_raw_buf(UART_ID_SSI, "\r\n start work timer failed\r\n", 30);
}
}
}
void TimerStop(bool timer_select)
{
if (timer_select) {
xTimerStop(idealtimer, 0);
}
else {
xTimerStop(worktimer, 0);
}
}
- 配置 Xbee 睡眠??模式:
void Xbee_Sleep_Config(bool enable_sleep) {
IO_MUX->PAD_6_CTRL = 0x103;
// Pull the Pin 6 to 3.3v, which is
// connected o PIN9 on Xbee
if(enable_sleep)
HAL_GPIO_Write(GPIO_0, 1);
else
HAL_GPIO_Write(GPIO_0, 0);
}
我們需要將設(shè)備波特率與 XBee 模塊的波特率相匹配,以便通過(guò) UART 建立通信。訪(fǎng)問(wèn)以下鏈接以設(shè)置 XBee 模塊并更改App/src/qf_hardwaresetup.c文件中的uart_setup()函數(shù)中的brate參數(shù)。完整的項(xiàng)目源代碼在 github 上,這里是它的鏈接:
https://github.com/Pratyush-Mallick/qorc-sdk.git
低功耗優(yōu)化:
QORC SDK 中的低功耗模式是通過(guò)利用 FreeRTOS 無(wú)滴答 IDLE 節(jié)能技術(shù)實(shí)現(xiàn)的。當(dāng) FreeRTOS 中沒(méi)有活動(dòng)任務(wù)時(shí),只有 IDLE 任務(wù)處于活動(dòng)狀態(tài)并導(dǎo)致 CPU 進(jìn)入睡眠狀態(tài)。Quicklogic 有一個(gè)關(guān)于這個(gè)主題的指導(dǎo)性良好的文檔。該頁(yè)面可以在這里找到
測(cè)量嵌入式系統(tǒng)的功耗是一項(xiàng)越來(lái)越困難的任務(wù),然而,Nordic Semiconductor Power Profiler Kit II (PPK2)使其成為一種無(wú)縫體驗(yàn)。我們?cè)谠茨J较聹y(cè)量了系統(tǒng)的電流消耗,即被測(cè)設(shè)備 (DUT)由 PPK2 供電。安裝Power Profiler 應(yīng)用程序,將 PPK2 上的 VOUT 連接到快速引出板上的 VBAT,同時(shí)接地,一切順利。
以下是 3.3 伏特的平均功耗(1 分鐘)觀(guān)察結(jié)果,睡眠周期為 10 秒,識(shí)別時(shí)間為 2 秒:
- 僅 Quickfeather:6mA
- 只有 Quickfeather (DFS):7mA(可以通過(guò)在 Fw_global_config.h 文件中將 #define CONST_FREQ 設(shè)置為 1 來(lái)啟用動(dòng)態(tài)頻率縮放)
- 僅 Xbee(無(wú)睡眠):31mA
- 僅 Xbee(啟用睡眠):1.97mA(本指南可以幫助您配置 XBee 睡眠??模式)
- Quickfeather + Xbee(無(wú)睡眠):36mA
- Quickfeather(DFS)+ Xbee(睡眠):7mA
![pYYBAGNy3F-ACG_DAAH8MtjSbvU534.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3F-ACG_DAAH8MtjSbvU534.png)
通過(guò)在 s3x_pwrcfg.c 文件中將睡眠策略節(jié)點(diǎn)時(shí)鐘配置為 256 kHz,我可以通過(guò)在固件端進(jìn)行以下更改來(lái)實(shí)現(xiàn)至少 3mA。
![pYYBAGNy3GKAMHZpAADrfIBn94A801.png](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3GKAMHZpAADrfIBn94A801.png)
我想將功耗降到最低,因此聯(lián)系了 Quicklogic 和 SensiML 團(tuán)隊(duì)。這是他們不得不說(shuō)的:
“在保持最佳性能的同時(shí)降低功耗需要大量開(kāi)發(fā)和微調(diào)。如果不清楚了解模型尺寸、傳感器 ODR(僅 IMU 或音頻) 等。為了進(jìn)一步降低功耗,F(xiàn)W 需要將所有未使用的組件(特定于用例)置于最低功耗模式。當(dāng)前 FW 沒(méi)有解決這個(gè)問(wèn)題。
但是,他們確實(shí)為我提供了以下指導(dǎo),我將在未來(lái)的開(kāi)發(fā)中納入這些指導(dǎo):
- 在當(dāng)前的 SimpleStreaming 應(yīng)用程序中,CONST_FREQ 設(shè)置為提供最大性能。在這種情況下,有兩種功耗模式:睡眠和活動(dòng)。睡眠狀態(tài)是 S3 M4 進(jìn)入 WFI 模式,同時(shí) S3 IP 在緩沖區(qū)中收集傳感器數(shù)據(jù)。活動(dòng)狀態(tài)是 M4 運(yùn)行算法或設(shè)置硬件以傳輸數(shù)據(jù)時(shí)。M4 活動(dòng)時(shí)間取決于知識(shí)包數(shù)據(jù)的算法。
- 對(duì)于 Active,S3 內(nèi)核消耗 ~5.67mW (@ 1.8V);# 不包括 S3 IO 消耗和傳感器。
- 對(duì)于 WFI,S3 內(nèi)核消耗 ~ 0.370uW (@1.8V);# 不包括 S3 IO 消耗和傳感器。
- 對(duì)于 EOS S3,在更改 HOSC 頻率時(shí),需要重新配置所有時(shí)鐘網(wǎng)絡(luò)分頻器更新以獲得正確的輸出時(shí)鐘頻率。
以下是戶(hù)外測(cè)試期間的一些圖片和視頻
![pYYBAGNy3GuAAgiGAByipeUjqak789.jpg](https://file.elecfans.com/web2/M00/7B/16/pYYBAGNy3GuAAgiGAByipeUjqak789.jpg)
?
?
?
?
云網(wǎng)關(guān)和短信提醒:
我們的云網(wǎng)關(guān)由連接到互聯(lián)網(wǎng)的個(gè)人計(jì)算機(jī)和通過(guò) UART 連接到 PC 的 Xbee 協(xié)調(diào)器組成。在 PC 上運(yùn)行的 python 腳本通過(guò) UART 從 Xbee Coordinator 獲取數(shù)據(jù),對(duì)其進(jìn)行處理,然后將其轉(zhuǎn)發(fā)到ThingSpeak云以進(jìn)行進(jìn)一步的可視化和分析。您可以在youtube上觀(guān)看此視頻以開(kāi)始使用 thingspeak。
一旦我們開(kāi)始在云上成功接收數(shù)據(jù),如果檢測(cè)到非法伐木,我們將需要一個(gè)觸發(fā)機(jī)制來(lái)發(fā)送警報(bào)短信。幸運(yùn)的是,Thingspeak 有一個(gè)ThingHTTP 應(yīng)用程序,可以在設(shè)備、網(wǎng)站和 Web 服務(wù)之間進(jìn)行通信,而無(wú)需在設(shè)備級(jí)別實(shí)現(xiàn)協(xié)議。我們將使用這個(gè)應(yīng)用程序來(lái)觸發(fā)可以發(fā)送自動(dòng)電子郵件和 SMS的Twilio API。由于 ThingSpeak 基于 Matlab,因此我們需要在 Matlab 中編寫(xiě)此過(guò)程。訪(fǎng)問(wèn)以下鏈接以開(kāi)始使用ThingHTTP和Twilio帳戶(hù)。我在這篇博客的末尾附上了 python 和 Matlab 代碼。
這里是顯示快速羽化睡眠狀態(tài)、識(shí)別等級(jí)和設(shè)備位置的公共頻道的鏈接:https ://thingspeak.com/channels/1370213
![poYBAGNy3G6APqvCAAE5op-2smI592.png](https://file.elecfans.com/web2/M00/7A/88/poYBAGNy3G6APqvCAAE5op-2smI592.png)
關(guān)鍵時(shí)刻:
恭喜你完成了這個(gè)項(xiàng)目。!讓我們擁抱最終的原型。這是一個(gè)演示設(shè)備完整工作的視頻。
未來(lái)范圍:
以下是我計(jì)劃在下一次修訂中完成的任務(wù)列表(非常感謝任何形式的幫助):
- 將睡眠模式下的電流消耗降低到微安范圍內(nèi)。
- 通過(guò)利用連接到 VBAT 引腳的 ADC 引腳添加電池電量監(jiān)控功能。
- 為森林火災(zāi)檢測(cè)添加一個(gè)氣體傳感器。
- 更好的太陽(yáng)能電池板,例如來(lái)自epshine或powerfilm的太陽(yáng)能電池板。
- 來(lái)自e-peas或matrixindustries的更好的升壓轉(zhuǎn)換器
- Buggy QXA3場(chǎng)地守護(hù)者開(kāi)源分享
- SafeKeeper安全守護(hù)者
- 太陽(yáng)能供電的無(wú)線(xiàn)充電應(yīng)用研究
- 成本優(yōu)化的太陽(yáng)能供電公共服務(wù)基礎(chǔ)設(shè)施
- 形形色色的太陽(yáng)能電池3類(lèi)太陽(yáng)能電池介紹
- 你了解哪些薄膜太陽(yáng)能電池4大薄膜太陽(yáng)能電池介紹
- 無(wú)線(xiàn)傳感網(wǎng)絡(luò)及太陽(yáng)能供電無(wú)線(xiàn)傳感系統(tǒng)的設(shè)計(jì) 2次下載
- 便攜式供電系統(tǒng)的組成與戶(hù)外便攜式太陽(yáng)能供電系統(tǒng)的設(shè)計(jì) 13次下載
- 基于太陽(yáng)能供電的智能雨水利用澆花裝置 10次下載
- 太陽(yáng)能LED光柱系統(tǒng)的設(shè)計(jì)制作 140次下載
- 基于BQ24200的太陽(yáng)能供電電源設(shè)計(jì)
- 太陽(yáng)能電池檢測(cè)設(shè)備
- 太陽(yáng)能供電LED街道照明
- 檢測(cè)太陽(yáng)能發(fā)電系統(tǒng)接地故障的裝置和方法
- Intel太陽(yáng)能供電WiMAX基站解決方案
- 太陽(yáng)能發(fā)電原理是什么效應(yīng) 2449次閱讀
- 如何創(chuàng)建一個(gè)由時(shí)間開(kāi)關(guān)電池供電的太陽(yáng)能充電電路 2520次閱讀
- DIY一個(gè)太陽(yáng)能檢測(cè)器 2397次閱讀
- 太陽(yáng)能供電系統(tǒng)組成 3477次閱讀
- 有機(jī)太陽(yáng)能電池工作原理_有機(jī)太陽(yáng)能電池的結(jié)構(gòu) 1.5w次閱讀
- dfrobot柔性薄膜太陽(yáng)能介紹 2491次閱讀
- 太陽(yáng)能熱發(fā)電基本原理 3.8w次閱讀
- 太陽(yáng)能硅片生產(chǎn)工藝分析_太陽(yáng)能硅片有輻射有毒嗎 1.5w次閱讀
- 薄膜太陽(yáng)能電池前途在哪_薄膜太陽(yáng)能電池有哪些 3.2w次閱讀
- 太陽(yáng)能板工作的原理是什么 10.2w次閱讀
- 屋頂太陽(yáng)能發(fā)電板利弊_太陽(yáng)能板屋頂發(fā)電原理 7w次閱讀
- 太陽(yáng)能供電的無(wú)線(xiàn)傳感系統(tǒng)的設(shè)計(jì) 2129次閱讀
- 太陽(yáng)能供電型LED驅(qū)動(dòng)器電路圖 5481次閱讀
- 太陽(yáng)能發(fā)電技術(shù)與綠色照明 1232次閱讀
- 太陽(yáng)能原理 7027次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論