作者:王晨曦, 敖欣, 王薇薇, 安尚琪
單位:北京理工大學
教練:李忠新, 朱杰
如今,輸送機在我們的生產經營和生活中扮演著越來越重要的角色,現代社會對公升降機的需求日益增加,市場的不斷擴大,使得公升降機的種類不斷豐富,以滿足不同作業場合的需求。 目前有移動式、固定式、車載式、鋁合金式、自走式等多種型別的公升降機,在大量社會需求的帶動下,公升降機的發展速度和空間也得到了拓展,無論是在工廠、企業、機場、碼頭、酒店等需要高空維護、安裝和清潔的地方,電梯的存在隨處可見, 這給我們的日常運營帶來了極大的便利。在設計之前,我們團隊對搬運機的工廠應用進行了一定的調查,主要得出以下結論:
在許多危險情況下,仍然需要人工操作才能實現貨物的運輸和堆垛,這不僅是對人力資源的浪費,也是對工人安全的不負責任。 由於各種特殊需求,一些工廠或倉庫需要運輸和儲存危險品,當需要在危險場景下進行起重和控制作業時,無人智慧型起重裝置就派上用場了。
有的加工生產線除了需要貨物能夠垂直公升降外,還可以完成裝置的一些功能,以水果加工為例,水果加工生產線需要提前清洗,這需要具備擦洗等輔助功能。
手動貨物裝卸。
水果生產線起重裝置。
2.1 五金件-公升降平台
(1)齒輪傳動-動力源
受各種物理書籍中經典示例問題的啟發:滑輪和鐵的經典組合,我們用齒輪組裝了乙個帶齒輪的滑輪,並利用齒輪將舵機旋轉的位移轉換為垂直方向的位移,從而實現電梯的公升降功能。
2)固定導軌-軌跡控制
為了使電梯在執行過程中更加穩定,我們在執行軌跡中額外使用了一根長鐵串,使公升降籃與鐵串配合,從而做成導軌(在紅濫用線中間),乙個可控性強、安全性高的公升降平台。
(3)金屬筐-裝貨
我們在齒輪製成的滑輪上將裝滿貨物的金屬籃子固定在細線上,通過控制滑輪的轉速來控制整體提公升速度,並在鐵筐中安裝了紅外感測器、氣孔和擦洗裝置,以便我們可以針對不同型別的貨物選擇不同的處理方法。
2.2 軟體部分
(1)程式設計軟體
我們使用Arduino作為程式設計的核心語言,為了簡化程式設計步驟,提高程式設計的準確性,我們採用了圖形化程式設計來控制整個裝置。
(2) 程式設計
在程式中,我們大多採用延時控制,通過計算機構整體公升降所需的時間,讓控制公升降的360舵機和控制推物的270舵機在完成相應的功能後,在原地延時停滯,直到另一部分功能完成再恢復運動, 直到它再次返回初始狀態進行下乙個動作。
該裝置的執行邏輯是以水果為貨物設計:
3.1 **運輸臂
*運輸臂整體設計如下圖所示
*運輸臂的旋轉功能是通過安裝在中心旋轉軸上的270°舵機實現的,為了保證旋轉的平穩性,我們在中心旋轉軸的底部安裝了四個小輪子,在臂的最前端安裝了萬向輪。 旋轉時,四個小輪子同時與中心軸線旋轉,前端的萬向輪以旋轉軸為圓心,在半徑不變的情況下做勻速圓周運動,從而保證了結構的穩定性,不影響旋轉的流暢性。
*運輸臂的伸縮功能是通過安裝在旋轉軸上方的聯動結構實現的,為了保證臂可以沿直線伸縮,我們增加了兩個導軌來約束臂的伸縮方向。 這樣可以收縮手臂,保證在旋轉過程中不影響其他平台的正常執行,實現各平台之間的連線平穩順暢。
推進裝置
輸送臂、清洗模組、剝皮模組、切割模組分別裝有伸縮推進裝置,主要通過連桿結構和導軌的配合,使推進片可以向乙個方向自由展開,從而實現推進功能,使果實在各個功能模組之間轉移。
以臂式運輸結構為核心,通過其旋轉和伸縮功能可以建立極坐標系,如下圖所示,第一機械臂可以通過一定的計算實現定點到達二維平面上幾乎任何位置,具有充分的自由度和可控性。
考慮到我們的機器需要涉水或在一些危險場景中工作,為了減少對舵機的損壞,我們決定採用方向舵向上的方式,儘量減少複雜的現場環境和危險品對裝置執行造成的障礙。
自動感應,強力配合,通過紅外感測器感應實現全程,減少人工操作與貨物的接觸,確保工作人員安全。 360°舵機的速度可以調節,改變貨物運輸的速度和公升降位置的高度,同時可以配合現有的叉車、輸送帶等裝置,實現更智慧型的工作,進一步減少工人與危險品的接觸,簡化工作流程。
只要將初始平台高度調整到每個模組之間保持一致,模組的高度就可以自由調節,以滿足各種複雜地形的需求,同時占地面積小,便於攜帶,適合家庭或個體工商戶在各種不同情況下使用。
起初,我們只打算通過旋轉或軌道的傳輸來完成各種功能的協調,後來發現各個單獨的模組與輸送裝置之間的協調會比較困難,所以我們大膽地利用極坐標的特點,設計了乙個伸縮旋轉的**輸送臂,如下圖所示, 這樣就可以輕鬆實現定點協調。
工廠執行時,我們發現球形貨物很容易滾動,從裝置上脫落,無法按照既定路線運輸。 因此,我們通過對程式的重寫和延遲的增加來改變伺服電機的執行速度,使推進裝置和旋轉裝置在運輸貨物和不運輸貨物時的速度不同,這樣既可以節省時間,又可以保證貨物在運輸過程中的穩定性。 同時,我們在許多水平或垂直執行結構中增加了導軌的限制,使其能夠沿著所需的方向平穩執行,減少了貨物運輸過程中的障礙物。
由於硬體裝置的原因,我們缺乏足夠的長桿來實現一次性推進的功能。 因此,我們利用兩個舵機的配合,採用了一些二次推進結構,如下圖所示,雖然結構不夠簡化,但最終實現了將水果運送到指定位置的功能。
部分
#include
servo servo_pin_7;
servo servo_pin_4;
servo servo_pin_11;
void setup()
pinmode( 14, input);
servo_pin_4.attach(4);
servo_pin_7.attach(7);
servo_pin_11.attach(11);
void loop()
if (!digitalread(14) )
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i = 0; i < 80; i++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 45000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k = 56; k < 85; k++)
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i2 = 0; i2 < 80; i2++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 2000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k5 = 85; k5 > 54; k5--)
delay( 1000 );
delay( 30000 );
for( int k6 = 54; k6 < 85; k6++)
delay( 2000 );
servo_pin_7.write( 100 );
delay( 28000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k7 = 85; k7 > 54; k7--)
delay( 1000 );
delay( 8000 );
for( int k3 = 54; k3 < 120; k3++)
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i3 = 0; i3 < 80; i3++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 40000 );
servo_pin_7.write( 60 );
delay( 2000 );
for( int k4 = 120; k4 > 30; k4--)
delay( 1000 );
servo_pin_7.write( 100 );
delay( 2000 );
for( int i4 = 0; i4 < 80; i4++)
delay( 2000 );
servo_pin_4.write( 0 );
delay( 2000 );
servo_pin_7.write( 60 );
delay( 2000 );
else
*欲瞭解更多資訊,請參閱:【S035】“AIBOT”-多功能貨物裝卸機