Arduino設計記錄位置的自動機械臂

2021-10-01 19:36:01 字數 2221 閱讀 7965

(1)舵機復位

購買回來的舵機輪軸角度不一樣,需要手動進行調節。首先向左旋轉到盡頭,然後橫向安裝如圖扇翼,旋轉到90°既垂直位置,調節完畢。

(2)底盤舵機的安裝

底盤負責帶動機械臂上半部分的轉向,舵機跟地面方向平行,如圖所示。

底盤的拼接零件 大,複雜度小,因此過程很快。

(3)後臂的安裝

後臂驅動舵機和前臂驅動舵機如圖所示在機械臂的兩側,方向垂直於水平面,用於帶動機械臂垂直方向的運動。

(4)連線前臂舵機

前臂左邊的杆跟左邊的舵機進行連線,旋轉點落在後臂頂端,舵機通過後臂與結點連桿對前臂進行帶動控制。

(5)安裝機械爪

機械爪由乙個舵機控制,舵機通過齒輪結構帶動爪子張開閉合,安裝過程需要注意螺絲長度與規格,並且不能上太緊,同時檢測舵機角度是否已經調到合適位置。預計爪子閉合舵機角度90°,爪子張開,舵機角度0°。

(6)拼接前臂、後臂和機械爪

連線舵機上半身的三個結構,形成平面上的3自由度機械臂,旋轉舵機,檢視是否出現阻塞問題或部位太緊的問題。

(7)拼接機械臂與底盤

把舵機上半部分連線底盤,形成3維4自由度的機械臂,同時裝上負責驅動的arduino板,擴充套件版和電池。

至此,機械臂硬體組裝完成。

五、簡單自學習系統開發設計

(1)系統設計目標

簡單自學習系統要求機械臂能夠記錄夾取物體的位置和放置物體的位置,並且根據記錄的兩個位置完成夾取和放置工作。假設接近地面的位置會有其他物體阻擋,應當盡量避免與這些物體發生碰撞。本系統假設地面所處平面上方基本沒有障礙,機械臂抬高後可以無障礙運動。

完成自學習功能,首先要讓機械臂完成兩點位置的記錄。然後根據位置開啟自動移動功能。完成抓取與放置流程。這個過程需要規劃路線,盡量避免貼著低水平面移動機械臂,因為這樣會發生觸碰目標物體或者別的障礙物的風險。設計機械臂按照底盤、前臂、後臂、爪子的順序進行移動,這樣可以避免與路徑上的物體發生碰撞。同時在移動之前再次抬高機械臂(後臂、前臂的順序),避免與低水平面物體發生碰撞。如圖abc路徑為機械臂移動的大致路徑。

設計過程考慮位置記錄方法,考慮以機械臂底盤為o點建立座標系,但是空間座標計算過於複雜,時間有限無法實現,因此直接採用舵機角度的位置記錄方法,例如旋轉到左邊30°,後臂垂直位置向前傾45°,前臂左向下60°抓取乙個物體,則如圖所示(2d平面,地盤旋轉角度沒有畫出,只分析了機械臂上半身的運動),記錄(底盤舵機120°,後臂舵機135°前臂舵機)。

(3)簡易自學習系統儲存資料結構

記錄機械臂4個舵機的各種狀態,需要乙個大小為4的陣列,每個舵機需要記錄旋轉範圍(最小,最大),記錄當前角度,記錄初始狀態角度,記錄舵機當前執行方向至少5個資料量,因此需要乙個4x5大小的陣列對舵機的資料進行儲存。

簡易自學習需要記錄機械臂的抓取位置和放置位置,既記錄兩次4個舵機的角度,需要乙個2x4的陣列。

考慮到爪子只是一開一合(0-90),因此可以適當去掉關於爪子角度的儲存。

(4)機械臂控制移動實現設計

前期系統採用手柄移動控制機械臂運作,手柄由左搖桿和右搖桿組成,左遙感左右控制底盤左右移動,上下控制後臂上下移動,右搖桿左右控制爪子張開閉合,上下控制前臂上下移動。前臂的上下移動對應舵機角度的增加減少,前臂舵機移動角度範圍為(0-120),後臂上下移動對應舵機角度的增加減少,前臂舵機移動角度範圍為(0-100),底盤左右移動對應舵機角度的增加減少,前臂舵機移動角度範圍為(0-180),爪子舵機移動範圍(0-90),張開對應角度減少,閉合對應角度增加。

進行手柄控制移動時,首先檢測當前時刻下手柄按鍵,並且以此更改各個舵機所記錄的方向(可以是靜止)。然後根據舵機記錄的移動方向逐個移動舵機,每次移動2°,大概沒幾十毫秒檢測並移動一次,在手柄控制模式達到所有自由度同時控制移動的效果。

(5)簡易學習後自移動實現設計

在手柄控制模式下,第一次按下左遙感記錄第乙個位置,並認定為抓取位置,第二次按下記錄為第二個位置,認定為放置位置。

按下第二次左搖桿後進入自動模式,會按照上述設計的機械臂移動順序自動重複進行抓取和放置,**設計只需要for迴圈按照順序進行並移動到記錄位置即可。移動過程的程式設計非常的簡介且死板,具體可檢視附件處**檔案。

自動過程中手柄動作無效,除了右搖桿的按下設計為外部中斷,該中斷處理函式設定標誌位讓遙感執行完本次自動抓取放置後停止操作變回手柄控制模式。

八、附錄

(1)cad繪**件

cad資料夾中的繪圖,需要用cad軟體開啟

(2)arduino**檔案

arm資料夾中的是vs2017專案,可以用vs2017開啟,其中arm.ino是arduino專用的**檔案,可以用寫**的軟體開啟。

記錄 vivo的位置開關判斷

正常判斷gps定位或者網路定位是否開啟,可以直接使用 locationmanager.isproviderenabled locationmanager.gps provider locationmanager.isproviderenabled locationmanager.network pr...

用位置記錄資料出現的頻率

問題 返回第乙個丟失的正數 given an unsorted integer array,find the first missing positive integer.your algorithm should run in o n time and uses constant space.fo...

如何選擇客廳的位置設計

家裡的 客廳象徵著乙個家庭的運勢和家庭主人的健康 所以,如何去選擇乙個好的客廳位置,是我們家庭和睦十分重要的問題。客廳 一般是居家生活和接待客人的主要地方 所以客廳的環境 風水好與不好,是不是能 為家人帶 來幸福的關鍵 客廳是接待客人的 重要場所,若先經 過臥室或廚房才 能到達,則會讓 房子的內部格...