Other Parts Discussed in Post:AM5749, CC1310
作者: Denny Yang, Hu ZongQi
簡介:本文介紹了基于Sitara AM5749平臺的ali-iot邊緣網(wǎng)關(guān)的配置方法。TI的新一代處理器平臺AM5749是多核異構(gòu)結(jié)構(gòu)的SOC,片上有兩個ARM核(ARM CORTEX-A15),兩個DSP(C66x)核,兩個EVE AI加速模塊。AM5749處理器是高度集成的器件,可用于實現(xiàn)高性能和多媒體應(yīng)用。板載加速器提供加速視覺和深度學(xué)習(xí)功能,支持多個工業(yè)以太網(wǎng)協(xié)議和視頻處理。對比AM57XX家族其他產(chǎn)品,AM5749支持完善的memory ECC校驗功能,同時內(nèi)部直集成EVE深度學(xué)習(xí)加速模塊配合TIDL軟件開發(fā)包,可以快速在嵌入式平臺實現(xiàn)深度學(xué)習(xí)的功能。阿里云是阿里巴巴集團下的云計算產(chǎn)品,提供卓越的云計算服務(wù)與技術(shù)。本文間介紹阿里云和TIDL的環(huán)境搭建以及如何由阿里云和TIDL構(gòu)建一個云-邊緣聯(lián)合計算系統(tǒng)。本文在AM5749 IDK平臺上成功運行ALI SDK并在ALI SDK和TIDL SDK的基礎(chǔ)上開發(fā)了一系列適配軟件。軟件會對本地的存儲的圖片進行AI識別,并且把識別的統(tǒng)計信息發(fā)到ALI CLOUD進行統(tǒng)計。為了驗證識別率本文在本地圖片摻入若干不可識別的空白圖片,識別結(jié)果見第五小節(jié),可以看出來識別結(jié)果穩(wěn)定可靠。本文僅介紹邊緣網(wǎng)關(guān)配置和運行的操作步驟,本地程序原理等深入討論會在其他文章詳細描述。
一、本地操作,環(huán)境準備:
注意:在編譯任何部件之前需要先設(shè)定EVM板的時間,日期與中國時區(qū)一致,小時數(shù)減8分鐘數(shù)不變。
date -s--
date –s::
說明:考慮到Link IoT Edge軟件包和OSS-C-SDK及其官方文檔處在不斷更新的狀態(tài),此文檔使用Link IoT Edge armv7 1.8.1、OSS- C-SDK 3.7.1供參考,隨文會貼出官方文檔連接。
1.各組件之間的關(guān)系如下圖:
說明:藍色為TI提供的操作系統(tǒng),紫色為samba服務(wù)器,綠色為阿里云提供的軟件SDK,橙色為本文開發(fā)的程序。
圖1系統(tǒng)框圖
2.在SD卡上安裝TI SDK:實際上是安裝TI定制的linux操作系統(tǒng)(圖1藍色部分)
TI SDKVersion:ti-processor-sdk-linux-am57xx-evm-05.02.00.10
安裝參考鏈接:http://software-dl.ti.com/processor-sdk-linux/esd/docs/05_01_00_11/linux/Overview_Getting_Started_Guide.html
下載連接:http://software-dl.ti.com/processor-sdk-linux/esd/AM57X/latest/index_FDS.html
在AM5749上下載安裝Link IoT Edge標準版軟件包:link-iot-edge-armv7-v1.8.1.tar.gz
此軟件包提供阿里云在AM5749平臺上運行的基本環(huán)境,負責網(wǎng)關(guān)設(shè)備與阿里云的通信、云資源部署等功能。(圖1綠色a)
官方文檔:https://help.aliyun.com/document_detail/102729.html?spm=a2c4g.11186623.6.556.3bc42940lqj1FE
安裝步驟:
a. AM5749開發(fā)板超級終端窗口或者SSH終端窗口執(zhí)行以下命令,下載環(huán)境檢查工具并運行:
#wget http://iotedge-web.oss-cn-shanghai.aliyuncs.com/public/testingTool/link-iot-edge_env-check.sh
#sudo chmod +x ./link-iot-edge_env-check.sh
#sudo ./link-iot-edge_env-check.sh
按照運行環(huán)境檢查工具的提示在您的機器上安裝所有必需的依賴項,當檢查工具成功運行完成后,返回如下圖信息,表示Link IoT Edge能夠在您的機器上成功運行。
b. 在阿里云->幫助文檔內(nèi),物聯(lián)網(wǎng)邊緣計算->產(chǎn)品介紹->發(fā)布歷史 中尋找合適的軟件包,或使用下載地址:
http://link-iot-edge-packet.oss-cn-shanghai.aliyuncs.com/arm-linux-gnueabi/link-iot-edge-armv7-v1.8.1.tar.gz?spm=a2c4g.11186623.2.15.3bc42940lqj1FE&file=link-iot-edge-armv7-v1.8.1.tar.gz
c. 安裝:解壓即完成安裝,解壓命令如下:
$tar xzvf <網(wǎng)關(guān)軟件包壓縮文件>.tar.gz –C /
至此,linkedge網(wǎng)關(guān)安裝完成
4. Link IoT Edge C SDK:link-iot-edge-access-sdk-c-master
此軟件包提供阿里云開發(fā)的API,利用此API開發(fā)者可以便捷的使用上述軟件包提供的服務(wù),是中間層的軟件庫。(圖1綠色c)
a. 在https://github.com/aliyun/link-iot-edge-access-sdk-c 下載SDK源文件,下載及解壓目錄可自定義;
b. 在編譯、生成驅(qū)動程序時需要用到zip命令,但TI SDK中有unzip無zip,故需下載zip源碼,進行編譯,下載地址:
https://sourceforge.net/projects/infozip/files/Zip%203.x%20%28latest%29/3.0/
下載完成后,解壓文件夾并放入目標文件系統(tǒng)中,進入目錄運行命令:
#chmod +x ./unix/configure
#./unix/configure
#make -f unix/Makefile generic
#make -f unix/Makefile install
至此zip命令可用
c. 開始編譯安裝sdk和TI-test程序
#cd linkedge-thing-access-sdk-c
#make prepare //預(yù)編譯生成外部依賴庫將花費一定時間
至此,SDK驅(qū)動程序編譯完成。
5. Samba服務(wù)器(此步驟方便調(diào)試和文件交互,是可選步驟)。為方便使用EVM板文件系統(tǒng)的文件,故選擇安裝samba服務(wù)器。(圖1紫色)
源碼下載地址:https://download.samba.org/pub/samba/
安裝(EVM板上):
a. 進入目錄/samba-3.5.22/source3;
b. 運行./configure
c. #make & make install(make時間比較長)
d. 配置動態(tài)鏈接庫路徑:
#vi /etc/ld.so.conf
在添加一行新內(nèi)容:/usr/local/samba/lib
執(zhí)行命令: ldconfig
e. Samba配置文件smb.conf
配置文件的默認路徑為 /usr/local/samba/lib/smb.conf
執(zhí)行命令 #vi /usr/local/samba/lib/smb.conf
添加內(nèi)容:
[share]
path = /
public = yes
writable = yes
available = yes
browseable = yes
f. 啟動samba服務(wù)。
配置smb.conf文件后,在開始運行samba的服務(wù)進程之前。我們需要先做一些準備工作。運行smbpasswd命令(在目錄/usr/local/samba/bin下)
# ./smbpasswd –a root
向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用戶以及密碼信息。
為使用方便,可以不設(shè)置密碼,直接回車即可。
下面是運行samba的服務(wù)進程smbd和nmbd
# /usr/local/samba/sbin/smbd –D –s /etc/samba/smb.conf
# /usr/local/samba/sbin/nmbd –D –s /etc/samba/smb.conf
g. 至此,可以根據(jù)上述用戶名登陸,無需密碼。
注意:AM574X EVM板掉電重啟后需要手動啟動samba服務(wù),故可創(chuàng)建一個txt文件,將上述命令寫入其中。
參考:https://www.cnblogs.com/lienhua34/archive/2012/03/18/2405081.html
6. 安裝阿里oss服務(wù)的 C-SDK(圖1綠色b):
此軟件包是阿里云存儲服務(wù)提供的API庫。
a. 安裝第三方依賴庫:
Libcurl(7.64.0):https://curl.haxx.se/download.html?spm=a2c4g.11186623.2.20.364f27b91fJ4hg
apr(1.6.5)& apr-util(1.6.1):https://apr.apache.org/download.cgi?spm=a2c4g.11186623.2.22.364f27b9g4A30m&file=download.cgi
minixml(2.9):https://www.msweet.org/mxml/?spm=a2c4g.11186623.2.26.364f27b9uOegUa
安裝方式如下:
#./configure
#make
#make install
注意:
安裝apr時,需使用./configure CFLAGS='-Os';
安裝apr-util時,需使用 ./configure CFLAGS='-Os' --with-apr=/usr/local/apr ;
minixml盡量安裝阿里OSS推薦的版本(2.9),以免報錯。
b. 安裝C-SDK:
SDK下載地址:
此文檔實用的SDK版本為3.7.1
https://github.com/aliyun/aliyun-oss-c-sdk/tree/master?spm=a2c4g.11186623.2.10.3aa923d0lWS314
1. 安裝SDK需要用到CMAKE(2.6.0版本以上),CMAKE下載地址:
https://cmake.org/download?spm=a2c4g.11186623.2.18.6a7227b9pF3roO
安裝方式:
#./configure
#make
#make install
2. 安裝SDK:
#cmake .
#make
#make install
官方文檔:https://help.aliyun.com/document_detail/32132.html?spm=a2c4g.11186623.6.868.14106ab3Nio9na
二、云端操作:創(chuàng)建網(wǎng)關(guān)設(shè)備、邊緣實例、云存儲空間
接下來需要在云端上創(chuàng)建相應(yīng)的網(wǎng)關(guān)設(shè)備、邊緣實例、camera、led設(shè)備;
官方文檔:https://help.aliyun.com/document_detail/103247.html?spm=a2c4g.11186623.6.564.7caa98caBP6fyd
1. 創(chuàng)建網(wǎng)關(guān)產(chǎn)品及設(shè)備:
a. 進入阿里云控制臺,進入 邊緣計算à邊緣實例 頁面,點擊新建實例:
輸入實例名稱;
點擊新建網(wǎng)關(guān)產(chǎn)品;
輸入產(chǎn)品名稱,并在所屬分類中選擇邊緣計算à邊緣網(wǎng)關(guān)點擊完成;
點擊新建網(wǎng)關(guān)設(shè)備,輸入設(shè)備名稱即可,結(jié)果如下:
單擊確認,邊緣實例已經(jīng)創(chuàng)建完成:
b. 創(chuàng)建設(shè)備:
ⅰ. 進入邊緣實例詳情頁面(點擊上圖中的實例名稱):
ⅱ. 選擇子設(shè)備,并單擊分配子設(shè)備;
ⅲ. 在分配子設(shè)備頁面,單擊左下角的添加子設(shè)備;
ⅳ.單擊新產(chǎn)品,在輸入參數(shù)后,單擊完成:
ⅴ. 輸入設(shè)備名稱后單擊確定;
注意由于在AM574X EVM板上安裝mysql不成功,使用了txt文件作為存儲數(shù)據(jù)的載體,因此,為避免讀寫數(shù)據(jù)出錯,請將所有設(shè)備名統(tǒng)一長度。
ⅵ. 在分配子設(shè)備頁面將上述添加的設(shè)備分配到邊緣節(jié)點;
ⅶ. 進入 設(shè)備管理à產(chǎn)品頁面,單擊傷處創(chuàng)建的產(chǎn)品進入產(chǎn)品詳情頁面,選擇功能定義,在自定義功能一欄單擊添加功能:
按如圖為攝像頭產(chǎn)品添加自定義功能:
接下來將對Sub1GHz產(chǎn)品添加自定義功能(本平臺同時支持Sub1GHz傳感器網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)到云端):
ⅷ. 在子設(shè)備頁面,分別為子設(shè)備分配驅(qū)動;
1. 進入 邊緣計算à驅(qū)動管理 頁面,單擊新建驅(qū)動,語言類型選擇C語言,驅(qū)動名稱自定義,上傳文件:為/demo/camera目錄下的zip文件。
2. 回到邊緣實例的子設(shè)備界面,為子設(shè)備分配驅(qū)動:
ⅸ. 至此,云端上所有設(shè)備創(chuàng)建完成
2. 對象存儲OSS存儲空間的創(chuàng)建
a. 進入對象存儲服務(wù)的控制臺,點擊左側(cè)列表的“+”新建存儲空間bucket:
b. Bucket名稱欄中,填入自定義的Bucket名稱,創(chuàng)建后無法修改;
c. 在區(qū)域欄中,選擇該存儲空間的數(shù)據(jù)中心,創(chuàng)建后無法修改;
d. 存儲類型選擇標準存儲
e. 讀寫權(quán)限使用私有,且不開通實時日志查詢。
三、本地軟件編譯和配置
本文開發(fā)的軟件包中,主要分為3部分:camera、imageRec、gateway_management。其中第一部分依賴阿里云Link IoT Edge C SDK開發(fā)的虛擬設(shè)備驅(qū)動程序,第二部分為基于TIDL的視頻物體識別程序,第三部分為協(xié)調(diào)前兩者的網(wǎng)關(guān)管理程序。為了三者能夠順利運行,需進行下述操作:
1. 將文件夾camera拷貝到
/link-iot-edge-access-sdk-c/demo目錄下,并將camera目錄下的demo.mk替換此目錄的demo.mk。在/link-iot-edge-access-sdk-c/目錄下運行下列命令,生成虛擬設(shè)備驅(qū)動程序:
#make && make install
2.將文件夾imageRec拷貝到/usr/share/ti/tidl/examples目錄下,并在imageRec和 /imageRec/oss_server下執(zhí)行make命令進行編譯。
注意:在oss_server下make之前需注意如下兩點:
a. 需要設(shè)置環(huán)境變量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LIBRARY_PATH=/usr/local/apr/lib:$LIBRARY_PATH
b. 需要對./oss_server目錄下的upload.c作一定的修改:
設(shè)置在文件首定義的全局變量,這些全局變量的值根據(jù)上述創(chuàng)建的云存儲空間進行賦值。
參考:https://yq.aliyun.com/articles/60924?spm=a2c4g.11186623.2.14.438551ffqcyND4
3. 文件夾gateway_management可放在任意位置,進入該文件夾之后,通過./make.txt完成編譯即可。
四、系統(tǒng)運行步驟
1.進入 設(shè)備管理à設(shè)備 頁面,點擊上述創(chuàng)建的網(wǎng)關(guān)設(shè)備,將設(shè)備信息中的ProductKey、DeviceName、DeviceSecret記錄下來,用于后續(xù)啟動網(wǎng)關(guān);
2.進入目錄 /linkedge/gateway/build/script;
運行命令,請講{YourProductKey} {YourDeviceName} {YourDeviceSecret}替換為1中記錄下來的三個信息:
#./set_gw_triple.sh {YourProductKey} {YourDeviceName} {YourDeviceSecret}
3.啟動Link IoT Edge核定服務(wù);
#./iot_gateway_start.sh
4.執(zhí)行如下命令岔開Link IoT Edge核心服務(wù)的運行狀態(tài):
#./iot_gateway_status.sh
若系統(tǒng)顯示如下,表示Link IoT Edge核心服務(wù)啟動成功
也可以進入邊緣計算à邊緣實例點擊對應(yīng)的邊緣實例,查看網(wǎng)關(guān)狀態(tài),可以看到已經(jīng)在線:
5.在此頁面點擊右上角的部署,將資源部署到邊緣網(wǎng)關(guān)上:
6. 待部署完成后,后臺運行g(shù)ateway_management程序,在gateway_management目錄下使用命令:
\#./ gateway_management &
7.進入/usr/share/ti/tidl/examples/imageRec/oss_server目錄,后臺運行oss服務(wù)程序:
# ./main &
8. 在/usr/share/ti/tidl/examples/imageRec目錄下,運行TIDL的視頻物體識別程序:
# ./imageRec -i <視頻文件或目錄>
五、運行結(jié)果
在云端,通過左側(cè)目錄,進入設(shè)備管理à設(shè)備進入前文創(chuàng)建的設(shè)備的詳情頁面,再進入到運行狀態(tài)的分頁面中,應(yīng)看到如下結(jié)果:
單擊成功率一欄的查看數(shù)據(jù),理應(yīng)看到如下結(jié)果:
為了使成功率更有說服了,本文在識別圖片集里添加了部分不可識別的空白圖片,可以看到識別率很穩(wěn)定在0.679,說明系統(tǒng)運行平穩(wěn)。
本文驗證了三大技術(shù):1,ALI IOT SDK在AM57XX平臺運行,實現(xiàn)了邊緣計算網(wǎng)關(guān)的功能。2,AM57XX TIDL SDK利用AM5749 EVE加速單元實現(xiàn)了AI圖片分析的邊緣計算。3,同時此平臺還連接了運行TI-15.4 Sub1G CC1310模塊,實現(xiàn)了傳感器網(wǎng)絡(luò)數(shù)據(jù)到Ali Cloud的轉(zhuǎn)發(fā)。
審核編輯:何安
-
嵌入式處理
+關(guān)注
關(guān)注
0文章
341瀏覽量
10016
發(fā)布評論請先 登錄
相關(guān)推薦
評論