任晉萍 李志堅 亓彥斌 王磊 杜浩
1、山西工學院通識教育學院 2、太原工業學院
隨著人工智能和機器人技術的發展,工業自動化和生活智能化程度越來越高,智能化的出現,給我們的生產生活帶來了很大的便利,這也是現代社會發展的趨勢和科學研究的方向之一[1]。智能小車被廣泛應用于科學探索、工業生產等領域。無接觸式智能服務機器人有了一個很好的發展前景。近期大多數智能小車用于餐廳送餐,或者送外賣等?;诖?,本文產品通過樹莓派開發板和Arduino單片機,搭建智能車控制系統。使用樹莓派4B完成整個智能車運行的總控的搭建,包括信息傳輸,視覺,傳感器等。使Arduino uno開發板完成智能車的運動的控制,使得整體功耗更小,模塊化分工更明顯。利用python編程預計可實現路徑安排、機械臂控制、道路識別、環境監測以及二維碼識別的任務??梢院芎玫剡m應當今時代的需求,本設計可以完成樓內定點無接觸配送,病毒消殺,上門核酸以及環境監測的任務,在滿足用戶需求的情況下,極大地節省了人力,同時提供了更加安全、便捷、智能的服務[2]。
本產品以樹莓派4B單板計算機為處理核心,配合Arduino UNO輔助控制。整個系統由電源模塊、高清攝像頭模塊、超聲波模塊、運動傳感器模塊、環境監測模塊、電機驅動模塊以及交互模塊組成,其系統結構框圖如圖1所示。

圖1 系統結構框圖
電源模塊給系統各個模塊提供所需電壓。高清攝像頭模塊識別道路信息,供計算機進行處理分析,處理后信息將交由單片機進行驗證實施,控制電機驅動模塊驅動產品的行進任務。運動傳感器模塊以及超聲波模塊將產品狀態以及所處環境反饋給計算機,由計算機模擬當前產品狀態以做出狀態上的調整。環境監測模塊則將信反饋至計算機,計算機對相應情況做出反應且將信息通過交互系統上傳至云端。
圖2為樹莓派4B,在本產品中,主控板是最核心的部分,負責連接攝像頭模塊、運動模塊、信息采集模塊、交互模塊,是產品的大腦。通過樹莓派各型號的相比,樹莓派4B是樹莓派最新發布的第四代產品,性能與樹莓派3B+相比無論是處理器速度,還是多媒體和內存上都有顯著提升。這滿足了產品在數據處理上的需求。同時,它有2.4/5.0 Ghz雙頻無線LAN,藍牙5.0/BLE以及千兆以太網,滿足了信息交互的需求。整體而言,非常適合本產品。

圖2 主控樹莓派4B
圖3是Arduino,由一個基于單片機的開放源碼的硬件平臺和一套專門的開發環境組成。它便捷靈活、方便上手,可以用來開發交互產品,比如它可以讀取大量的開關和傳感器信號,并且可以控制各電機和其他物理設備。它沒有復雜的單片機底層代碼,沒有難懂的匯編,只是簡單而實用的函數。而且具有簡便的編程環境IDE,極大的自由度,可拓展性能非常高.因此,我們采用本單片機作為機器人的副控,負責完整基礎物理設備的控制,減小產品功耗。

圖3 副控Arduino UNO
采用樹莓派高清夜視攝像頭,與主控板配套,滿足各種光線條件下的拍攝需求??蓪崟r反饋道路信息以及所需拍攝的人物信息或二維碼信息,為本產品的運作提供了眼睛。
采用數字運動傳感器MPU9250來采集機器人運動中的加速度,角速度等數據。MPU-9250是一個多芯片模塊(MCM),由集成到單個QFN封裝中的兩個芯片組成。一個模具裝有3軸陀螺儀和3軸加速度計。因此,MPU-9250是一個9軸運動跟蹤設備,結合了3軸陀螺儀,3軸加速度計,3軸磁力計和數字運動處理器。
使用超聲波等微小的傳感器能夠測量產品自身和最近的固體物體之間的距離,對于機器人避免碰撞,識別環境很有用,搭配視覺系統,可完善產品對環境的識別能力。
使用DHT11數字溫濕度傳感器,高效、穩定的對產品所在環境進行監測。
使用42GA775直流減速電機以及DS3115舵機,為產品提供動力執行。使用L298N對電機進行直接控制,通過主控芯片的I/O輸入對其控制電平進行設定后,為電機進行正轉反轉驅動,操作簡單、穩定性好,滿足直流電機的大電流驅動條件。
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列C函數和少量C++類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
系統軟件設計采用Python語言編程實現,利用單片機PWM輸出模塊和普通I/O模塊和樹莓派高清夜視攝像頭等模塊來保證小車的運動進行,根據系統需求,對各個模塊進行初始化配置,以實現其相應功能。主程序流程如圖4所示。

圖4 主程序流程
將樹莓派攝像頭拍攝到的視頻流傳到PC端,并在PC端查看。目的是為了便于攝像頭姿態的調整和圖像處理算法的調試。我們使用UDP傳輸協議進行圖像傳輸。具體實現主要分為發送端和接收端兩部分:其中,發送端在樹莓派端運行,接收端在PC端運行。二者同時運行。
基于視覺opencv庫,使用pygame模塊來遠程控制機器人的前后左右移動,配合數據采集代碼,使攝像頭進行拍攝以及數據采集。數據采集完成后進行一些數據清洗的工作,將處理過的數據使用神經網絡模型對數據進行訓練,得到訓練好的模型。在樹莓派機器人上使用行駛模塊和訓練好的模型,載入模型,即可實現在原先道路的自動駕駛。根據模型,來進行自動行駛。
識別并定位攝像頭圖像中的各類常見物體。系統調用了TensorFlow Object Detection API,使用了訓練好的SSDLite目標檢測模型,在樹莓派端進行目標檢測。使用的SSDLite模型主要優點是運行速度快、占用內存小,適合在樹莓派端進行運算。
實現了超聲波測距和對測距進行移動平均來減小誤差。超聲波測距是通過控制口發一個10us以上的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開定時器計時,當此口變為低電平時就可以讀定時器的值,此時就為此次測距的時間,方可根據聲速算出距離。
(1)采用IO口TRIG觸發測距,給至少10us的高電平信號。
(2)模塊自動發送8個40khz的方波,自動檢測是否有信號返回。
(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=高電平時間*聲速/2。
電學性能測試:對所有設備進行上電,充電等操作,測試供電,充電電路設計是否合理。經過測試,設備正常上電運行,RevPi Core 3正常3.3伏供電,樹莓派攝像頭模塊,HC-05藍牙無線模塊都正常運行。鋰電池充放電正常,4.2伏充電截止,3.5伏截止放電,充放電指示燈正常表示信息。數據采集測試:RevPi Core 3與樹莓派攝像頭模塊上電后,按照寫定程序,正常執行應執行的任務。藍牙通訊測試:RevPi Core 3連接數字運動傳感器與主藍牙串口模塊正常上電。打開樹莓派的VNC桌面,單擊右上角的藍牙圖標,選擇Add Device。進而,進入藍牙搜索界面,稍等片刻,便正常運行查找到對應的HC-05模塊,點擊Pair進行配對,配對正常。
本文基于樹莓派4B和Arduino單片機設計了一款樓內智能服務機器人,可實現產品自主樓內運動。在程序的控制下,產品依托視覺檢測模塊和超聲波模塊實現自主運動以及避障,在工作同時可實時監測產品所處環境,通過交互系統為用戶提供環境信息。