OpenHarmony學生挑戰賽參賽經驗分享
前言
本次OpenHarmony學生挑戰賽我準備的項目是一個基于OpenHarmony的無人配送小車。接觸OpenHarmony也有半年時間了,這也是我第一次帶隊參加OpenHarmony的比賽,雖然最后花費了很長時間也沒有做出來一個像樣的成品,很多方面都出了一點小狀況把進度卡死了,但這過程也學到了很多東西。
??倉庫鏈接??(沒什么內容,跟這篇差不多),雖然最后還水了個三等獎,但項目的完成度和我的預期差得有點遠,不過通過這個項目也知道自己很多的不足,下次會繼續努力,繼續為OpenHarmony貢獻出自己的力量。也沒什么成品好分享的,主要分享一下這個項目的架構,給大家看看我畫的餅。
項目簡介
疫情的持續反復對疫情防控的技術提高提出了迫切的要求,本項目聚焦防疫一線的配送工作中存在的“接觸感染風險大”這一難題,重點聯系聯合國可持續發展目標中的“良好的健康和福祉”、“可持續城市和社區”這兩方面內容,設計出一款城市社區無人配送小車。
項目以OpenHarmony為核心,軟硬件相結合,自主設計完成一套基于鴻蒙操作系統,作用于隔離點,能夠替代防疫工作人員與被隔離人員之間接觸的配送物資系統以提高的運行效率的解決方案。通過控制端配置配送信息以及下達配送命令,小車端實現自動巡線,路徑規劃將物資送達客戶,并且提供與客戶端能夠互聯的系統來提高交互體驗及配送效率。并且,在這套系統的基礎上,還能延伸出許多拓展應用場景。例如在這個無人配送的場景下,我們可以加上居民健康監測的功能,只需加上測溫模塊,以及配置好個人信息的NFC標簽,小車上門時只需手機與NFC模塊碰一碰,小車系統就會將體溫及居民的健康信息錄入,上傳到云端或者主控端。
系統架構
基于以上場景實現,可以將無人配送系統分為小車平臺端和鴻蒙終端(主控終端與客戶終端)兩部分,小車端是基于潤和的智能小車套件以及HiSpark AI Camera 開發套件進行開發的搭載OpenHarmony系統的系統終端,二者都搭載wifi模組,可以與鴻蒙終端進行通訊組網,需要實現一系列組件的驅動以及通訊系統組建,智能語音交互。鴻蒙終端具備消息提醒以及確認交互,小車狀態查詢及控制,分布式軟總線通信,以及鴻蒙原子化服務功能等。可以將系統架構分為南向部分和北向部分。
硬件設計
無人配送小車硬件架構整體由潤和的智能小車套件以及HiSpark AI Camera 開發套件以及其他拓展模塊組成。
通信架構
無人配送小車系統主要利用串口通信以及TCP/IP協議在Openharmony小車控制系統內部進行信息通信,并且基于此通信方式完成配送機器人系統與鴻蒙分布式控制終端的鏈接。小車平臺與主控平臺間也可以建立一個云服務器,通過MQTT協議發布和訂閱實現交互,實現遠程控制小車與遠程監視小車狀態。小車平臺與客戶平臺通過NFC進行信息交換,簡化通信過程,提高交互效率。通訊網絡架構如下:
心得體會
小車套件開發
對于智能小車的開發官方也是給了很多教程,尋跡以及避障的功能也有給出,只需要根據實際情況修改自己需要的邏輯功能即可。
潤和小車學習教程:
海思官方教程倉庫:https://gitee.com/hihope_iot/HiHope_Pegasus_Doc/tree/master官方學習資料:https://www.hisilicon.com/cn/chip-academy/materiallist。
AI視覺開發
視覺使用的是HiSpark AI Camera 開發套件的NNIE和IVE的硬件加速能力來實現深度學習神經網絡。小車的視覺部分是整套系統的關鍵部分,很可惜的是沒有調試出來,中間遇到的太多問題了,研究了海思官方的案例教程,也研究了OpenHarmony的AI子系統,遇到了許多環境配置的問題,模型轉換的問題,最終也只是跑通了demo。遇到了教程使用的硬件如LCD與套件不適配,調試的好長好長時間,不得不說小型系統和標準系統的調試過程是還是挺折磨的,調試只能憑感覺調試,每次調試編譯燒錄還得挺久,也是自身水平還是不夠吧,希望未來能重新解決這個問題。
在這里貼上我學習HI3516 AI的教程:
海思官方視頻教程:https://www.hisilicon.com/cn/chip-academy/videolist海思官方資料教程:https://www.hisilicon.com/cn/chip-academy/materiallist。
產品說明書工具等:http://www.hihope.org/download/download.aspx。
Hi3516DV300實驗開發指導:
https://gitee.com/openharmony/device_soc_hisilicon/tree/master/hi3516dv300/sdk_linux/sample/taurus。
通信方面
這次通信主要用到了TCP/IP協議,通過Hi3861的Wifi模塊STA模式連接熱點與終端進行通信,以及上位機和下位機之間進行串口通信,還有Hi3861通過MQTT將數據上傳的,因為項目前置條件也還沒完成,也不好演示,相關教程也有,在這里貼出來,可以學習學習:
??潤和Hi3861網絡教程以及MQTT??(第19-26小節)。
??Pegasus與Taurus串口互聯通信??Pegasus與Taurus WiFi互聯通信。
其他
NFC:本來是想兩個NFC之間的數據交換,發現好像并沒有這方面的教程,折騰了挺久也沒搞出來,目前有的是通過NFC拉取鴻蒙原子化服務,NFC配網,手機讀取NFC數據網頁,所以實現起來還是挺困難的,使用的海思3861的外接NFC也沒有例程,所以也算是踩坑了。
MLX90614紅外溫度傳感器:移植了老久紅外溫度傳感器驅動雖然最后跑通了,但得到的溫度數據有點錯誤,使用鴻蒙IO來寫SMBUS協議屬實有點困難,開漏輸出也找不到在哪里設置,不過通過IIC還是可以驅動成功了,等以后調完全了也會分享出來。