孫銘澤 李勝琴 康家豪 王 杰
(東北林業大學交通學院,黑龍江 哈爾濱 150040)
隨著交通發展,人們的出行頻率變得更加頻繁,行李箱的使用需求量也隨之增加,人們對于行李箱的使用性能有了更高層次的要求,在智能控制技術的支撐下,行李箱的功能不斷更新,出現了形式多樣的智能行李箱。智能行李箱利用UWB定位模塊實時檢測行李箱的位置[1]、利用STM32單片機做控制單元且擁有藍牙通信[2]和GPS高精度定位系統,它還利用NB-IoT[3]通信模塊為用戶提供全透明的數據傳輸模式,用戶能夠依托微信小程序平臺實時了解行李箱內部的環境參數并通過手機客戶端頁面上的相關操作對行李箱進行控制;除此之外,還通過結合PID、PWM算法控制行李箱驅動輪的轉動方向和速度等方式實現行李箱的智能跟隨及避障功能,但是智能行李箱都不具有穩速上下坡的功能,這容易導致行李箱在上下坡時因速度突變而發生傾倒,不能準確地跟隨避障,該文所述的基于Arduino設計的一種能夠穩速上下坡的自動避障跟隨行李箱能夠利用超聲波模塊、轉速傳感器和控制模塊檢形成閉環控制系統,檢測箱體運動狀態的變化并控制驅動電機的轉速,使行李箱運行更加平穩,跟隨避障功能更加精準。
該文設計的能夠穩速上下坡的自動避障行李箱由箱體[4]、電源模塊、超聲波模塊、控制模塊和驅動模塊組成,總體結構圖如圖1所示。電源模塊安裝在箱體內部,且與驅動電機相連,可以給箱體內各個模塊以及部件供電;超聲波模塊包括超聲波發生器和超聲波接收器,超聲波接受器安裝在箱體外的側壁上,超聲波發送器持于行人手中[5];控制模塊包括主控板和轉速傳感器,轉速傳感器與驅動電機相連,可以檢測驅動電機的轉速[6],主控板利用差速驅動原理來控制驅動電機的轉速,從而帶動驅動輪移動和轉向;驅動模塊包括驅動輪、驅動板和驅動電機,驅動輪安裝在箱體外底部,且與驅動電機相連,可以驅動箱體移動,驅動電機與驅動板的輸出端相連,可以為行李箱移動提供動力。

圖1 穩速上下坡自動避障行李箱的結構示意圖
該文采用雙超聲波傳感器實現自動跟隨及避障功能,由于單一超聲波傳感器存在跟蹤準確度不高、靈活性不好、跟蹤距離短以及跟蹤效果差等問題,因此該文選用雙超聲波跟隨模塊有效地避免了上述問題,實現了智能行李箱的自動避障跟隨功能,該文選用的超聲波模塊參數見表1。超聲波發送模塊通電后,超聲波發送模塊上的 LED 燈會有頻率的閃爍,這就證明發送超聲波模塊已經在正常工作了。當超聲波發送模塊通上電之后,就會與超聲波接收模塊對準,超聲波接收模塊的 LED燈也會有頻率的閃爍。證明此時超聲波接收模塊已經可以與超聲波發送模塊進行通信,并接收超聲波發送模塊發射的超聲波,超聲波接收模塊上接收到的數據就是超聲波發送模塊與超聲波接收模塊之間的距離數據。假設超聲波發送模塊與左右接收模塊之間的距離分別為L1和L2。行李箱在行駛時不斷判斷L1和L2值的大小,并設定1個“距離死區”,其目的在于當2個距離值在一個小的可接受值范圍時,行李箱可以停止行駛,在一定程度上避免行李箱出現抖動,并根據計算出的左、右兩側傳感器的距離差△L來控制電機的轉動。

表1 超聲波收發模塊
2.1.1 設計原理
為了實現自動跟隨及避障功能,在行李箱左前側和右前側的位置分別放置1個超聲波接收模塊,并設計一款超聲波發送裝置,跟隨過程中超聲波收發模塊的實物如圖2所示,通信過程如圖3所示。發送裝置為跟蹤目標,行李箱上2個超聲波接收模塊接收來自超聲波發送模塊發射的超聲波,從而判斷跟隨距離;再通過串口將超聲波發送與接收模塊之間的距離發給 Arduino[7]單片機主控板,單片機就可以根據與目標的距離來判斷智能行李箱的姿態,并通過驅動直流電機達到自動跟蹤的目的。

圖2 超聲波收發模塊

圖3 超聲波收發模塊通信過程
2.1.2 運行過程
在行李箱運行的整個過程中,利用遙控裝置切換自動跟隨以及避障行走模式,通過超聲波接收器和發射器的相互配合以及差速驅動來控制驅動電機的轉速,根據2個驅動輪轉速的快慢調整行李箱的運動方向。當單片機檢測紅外接收裝置接收的遙控器發送的指令時,會做出自動跟隨或避障行走模式的判斷,如果指令為“避障行走”那么遙控器會控制行李箱的運動;當遙控器的指令為“前進”,那么左、右兩側電機都向前轉動;當遙控器的指令為“后退”,那么左、右兩側電機都向后轉動;當遙控器的指令為“左轉”,那么左側電機向前轉動,右側電機向后轉動;當遙控器的指令為“右轉”,那么左側電機向后轉動,右側電機向前轉動。
如果指令為“自動跟隨”,那么單片機檢測2個超聲波接收模塊回傳數據的幀頭,當出現距離數據的幀頭時,讀取高八位數據存儲字節和低八位數據存儲字節,并按照串口通信協議解析2個接收模塊的距離值,判斷2個接收模塊的距離值是否在4 cm~400 cm,如果在該數據之外都為無效數據,那么左、右兩側電機都停止轉動;如果距離值不在4 cm~400 cm,那么該數據為有效數據。
距離值L1、L2都為有效值時,計算左、右兩側傳感器的距離差△L,并判斷△L是否在“距離死區”,當△L在“距離死區”時,行李箱停止前進;當△L不在“距離死區”時, 判斷△L的值,如果△L>0,那么控制左側電機后退,右側電機前進,最終行李箱向右轉,如果△L<0,那么控制左側電機前進,右側電機后退,最終行李箱向左轉。
為了實現穩速功能,要根據行李箱配重、路面坡度以及附著系數計算行李箱的最佳運行速度,在程序中提前為電機設置好轉速變化區間,驅動電機開始工作后,轉速傳感器開始對驅動電機的轉速進行檢測,并將檢測到的轉速信息反饋給主控板;當行李箱在平坦路面上行駛時,驅動電機按照預先設定好的轉速進行運轉,當行李箱處于下坡狀態時,行李箱會在重力的作用下加速運動,此時轉速傳感器檢測到加速信號,主控板根據轉速傳感器反饋的信號對驅動電機的轉速做出減速調整;當行李箱上坡時,行李箱由于克服重力作用,驅動電機轉速變慢,主控板發出指令,使驅動電機轉速加快,整個行李箱始終以設定好的初始移動速度前進,進而達到行李箱穩速上下坡的目的。
根據行李箱所能夠實現的自動跟隨、避障以及穩速上下坡的功能,采用Arduino 單片機作為主控板,利用C語言編寫程序,并利用PID[8]進行控制,程序流程圖如圖4、圖5所示。

圖4 穩速控制程序流程圖

圖5 自動跟隨避障原理程序流程圖
行李箱穩速行駛功能的流程如下:轉速傳感器實時監測驅動電機的轉速,檢測驅動電機的轉速是否發生變化,當行李箱上下坡時轉速會發生變化,此時單片機控制驅動電機的轉速做出加快或減慢的調整,保證行李箱的穩速運行。
自動跟隨避障功能的原理程序流程如下:通過遙控裝置切換自動跟隨以及避障行走模式,如果是避障行走模式,那么通過遙控裝置的“前進”、“后退”、“左轉”以及“右轉”命令控制行李箱的運動;如果是自動跟隨模式,那么需要超聲波收發模塊的配合作用,先判斷判2個接收模塊的距離值是否在4 cm~400 cm,如果是,就繼續運行,并判斷不在距離死區的情況下左、右兩側傳感器的距離差△L是否大于0,根據差速轉向原理,當△L>0時,行李箱右轉,當△L<0時,行李箱左轉。
基于Arduino設計的一種穩速上下坡的自動跟隨避障行李箱以Arduino 單片機主控板為控制核心,通過雙超聲波跟隨模塊來實現智能行李箱的自動避障跟隨功能,雙超聲波模塊的使用能夠讓行李箱的避障跟隨路線更加精準合理,且操作操作較簡單,技術容易掌握,可行性高。除此之外,結合轉速傳感器檢測驅動電機的轉速,并有控制中心控制電機轉速,使行李箱平穩運行,有效避免行李箱在上下坡時因突然加速或減速而造成箱體傾倒,進一步擴展了行李箱的功能,滿足人們的出行需求,提升人們的出行質量。