40
這次機械手臂專題中,我們利用了 Arduino 晶片來控制,優點在於我們可 用程式來控制步進馬達進而達到我們所需要的位置以及角度....,我們使用的 步進馬達屬於複合式步進馬達,綜合了其他兩種步進馬達的優點,轉動的角 度可以較小相對精度也較大,利用 Arduino 程式給的脈波數,依比例追隨脈波 信號而轉動,因此能達到精確的角度位置和速度的控制且穩定性佳,機械手 臂控制範圍預設在手臂打平五十公分的範圍內。 I

Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

摘 要

這次機械手臂專題中,我們利用了 Arduino 晶片來控制,優點在於我們可

用程式來控制步進馬達進而達到我們所需要的位置以及角度....,我們使用的

步進馬達屬於複合式步進馬達,綜合了其他兩種步進馬達的優點,轉動的角

度可以較小相對精度也較大,利用 Arduino 程式給的脈波數,依比例追隨脈波

信號而轉動,因此能達到精確的角度位置和速度的控制且穩定性佳,機械手

臂控制範圍預設在手臂打平五十公分的範圍內。

I

Page 2: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

致 謝

本專題可以進行的那麼順利以及遇到困難時可以即時得到解答,這都要

感謝我們的指導老師歐乃瑞老師,我們都知道老師在學校有很多事情要忙,

但是他每個禮拜還是抽空來跟我們開會討論有關專題的事情,也會及時的給

我們很有幫助的訊息,同時我們也在其中學會了遇到困難如何去排除解決,

專題就是要讓我們學習凡是遇到難題要如何從中找出問題並加以解決完成它,

很感謝歐乃瑞老師在這次的專題中不辭辛勞的教導我們讓我們成長了許多,

也相互勉勵給了我們很多在現在以及未來都很有幫助的話。

II

Page 3: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

目 錄

摘 要 ........................................................................................................................ I

致 謝 ....................................................................................................................... II

目 錄 ..................................................................................................................... III

圖目錄 ................................................................................................................... IV

表目錄 ..................................................................................................................... V

第 1 章 緒論 ............................................................................................................ 1

1.1 前言 ............................................................................................................... 1

1.2 研究動機 ....................................................................................................... 2

1.3 研究方向 ....................................................................................................... 2

1.4 研究目的 ....................................................................................................... 3

1.5 時間進度管制 ............................................................................................... 4

1.6 工作分配 ....................................................................................................... 5

第 2 章 研究方法 .................................................................................................... 6

2.1 機械手臂介紹 ............................................................................................... 6

2.2 步進馬達介紹 ............................................................................................... 7

2.3 機械手臂規格 ............................................................................................... 8

2.4 ARDUINO 程式 .............................................................................................. 14

第 3 章 3D 圖與成品圖 ........................................................................................ 24

3.1 使用材料 ..................................................................................................... 24

3.2 所需材料表 ................................................................................................. 24

3.3 3D 草圖與成品圖 ........................................................................................ 25

第 4 章 結果與討論 .............................................................................................. 32

4.1 預計成果 ..................................................................................................... 32

4.2 實際成果 ..................................................................................................... 33

4.3 結論 ............................................................................................................. 34

4.4 建議 ............................................................................................................. 34

參考文獻 ................................................................................................................ 35 III

Page 4: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖目錄

圖 2-1馬達計算圖 1 ................................................................................................. 8

圖 2-2馬達計算圖 2 ............................................................................................... 10

圖 2-3馬達計算圖 3 ............................................................................................... 12

圖 3-1結構立體圖 .................................................................................................. 25

圖 3-2步進馬達 1 ................................................................................................... 25

圖 3-3步進馬達 2 ................................................................................................... 26

圖 3-4 步進馬達 3 .................................................................................................. 26

圖 3-5 步進馬達 4 .................................................................................................. 27

圖 3-6 繼電器電路板 ............................................................................................. 28

圖 3-7 驅動器 ......................................................................................................... 28

圖 3-8 極限開關 ..................................................................................................... 29

圖 3-9 極限開關 ..................................................................................................... 29

圖 3-10 極限開關 ................................................................................................... 30

圖 3-11 成品圖 ........................................................................................................ 30

圖 3-12 電路圖 ....................................................................................................... 31

圖 4-1 各軸標示圖 ................................................................................................. 32

圖 4-2 各軸標示圖 ................................................................................................. 33

IV

Page 5: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

表目錄

表一 進度表 ........................................................................................................... 4

表二 工作分配表 ................................................................................................... 5

表三 預設需求表 ................................................................................................... 8

表四 42 型馬達 ...................................................................................................... 9

表五 行星齒輪箱尺寸及性能表............................................................................ 9

表六 57 型馬達 .................................................................................................... 11

表七 減速比 ......................................................................................................... 11

表八 86 型馬達 .................................................................................................... 13

表九 減速比 ......................................................................................................... 13

表十 遙控器按鈕 ................................................................................................. 13

表十一 所需材料表.............................................................................................. 24

表十二 各軸預設範圍.......................................................................................... 32

表十三 各軸實際範圍.......................................................................................... 33

V

Page 6: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

第1章 緒論

1.1 前言

現今社會科技越來越發達,然而機械手臂在自動化的應用也已經相當廣

泛,每個國家的產業分布不均,對機械手臂的需求也會有不一樣的差異性,

機械手臂主要是用於人工無法進行、工作環境危險或是需要耗費較多的時間

來做的工作,機械手臂在精密度以及耐用度上大大提升。

機械手臂的應用從原本的汽車工業、模具製造、電子製程等相關產業,

拓展到農業、服務業、自動化工業、甚至醫療開刀方面也有機械手臂的存在,

多軸機械手臂的研發方面,多軸式機械手臂較廣泛被用於汽車製造、汽車零

件、電子相關產業,機械手臂可以提升技術與產品品質,而這些初期工作大

多可以藉由機械手臂來完成,它的精準、零誤差,對於產品的品質掌控以及

縮短製造時間有相當的優勢,可以減少在品管這方面所花費的時間、人力以

及金錢。在機械工業的應用上,以裝配、加工、焊接、切削、加壓、檢測以

及搬運貨物等。

1

Page 7: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

1.2 研究動機

機械手臂主要是為了要了解步進馬達的作用原理以及 Arduino 如何來應

用,步進馬達作動的原理是當轉子通電時由於切割定子所產生的磁力線而旋

轉扭距造成電動機轉子轉動,步進馬達驅動原理也是如此,但是若以驅動訊

號的觀點來看,一般直流馬達與交流馬達所用的驅動電壓訊號為連續直流訊

號與交流訊號,而步進馬達則是不連續的脈波訊號,然而利用 Arduino 寫程式

控制步進馬達,利用不同的脈波訊號,讓步進馬達可以任意轉動角度以及調

整轉動速度快慢來達成我們所需要的動作。

1.3 研究方向

近年來台灣已經從傳統產業慢慢地轉型為高科技產業,在早期的自動化

控制,都以各種感測元件所組成,例如電磁閥開關、計時、計數器、按鈕開

關等﹒﹒﹒,但所占的空間大,配線困難與不容易修改線路,因此在成本上

人工放料也已經慢慢地被機械手臂給取代掉,減少成本以及增加工作效率,

也能大大改善工安危險的發生機率。目前機械手臂可用軟體 Arduino 來控制它,

因為我們可以在辦公室利用電腦來監視著,有問題也可以立即發現,工廠自

動化已經為工業界在提升品質與產量方面導入新的階段,而機械手臂在其中

更扮演著不可或缺的角色。

機械手臂勢必會越來越廣泛使用,不只是在自動化量產上下料的部分,

焊接零件、零件組裝也都能仰賴機械手臂,機械手臂是具有模仿人類手臂功

能並可完成各種作業的自動化控制設備,機構上由機械主體、控制器、伺服

機構和感應器所組成,並由程式作業需求設定其一定的指定動作。

2

Page 8: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

1.4 研究目的

這次專題之所以研究機械手臂,是因為科技越來越發達,慢慢的工廠也

開始導入了機械手臂,成為了工作上的好助手,現在的機械手臂不再只是能

夾夾東西,而是開始導入了許多自動控制以及遠端監控的功能,這時候我們

可以不必待在旁邊或是工廠內,而是可以透過遠端操控來進行工作,遠端操

控適合用在高危險工作環境上,這樣能有效降低工安意外的發生,不僅僅如

此,遠端遙控也能在工廠發生問題時,能即時監控不必再親自到現場。

然而減少人力成本是我們的目標,機械手臂也是許多工廠必定會用到的

設備之一,藉由圖形監控及遠端監控設備,我們只要在一個工作室內,看著

螢幕監視著機器的運作,一旦問題發生也可以立刻發覺,由於現在生產技術

發展的速度以及產品品質要求不斷提升,品質穩定度也是一大考驗,而機械

手臂不只生產速度快,品質更是穩定,機械手臂的技術發展都是為了讓人類

在工作與生活中得到更多的便利性。

3

Page 9: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

1.5 時間進度管制

本專題主要工作項目分為訂定題目和討輪、資料收集與資料整合、設計

草圖、收集材料、材料製作以及組裝測試、傳寫報告,各工作項目時間進度

如下圖所示。(表一)

預定進度 實際進度

(表一)進度表

月次

工作項目

第 1 月

第 2 月

第 3 月

第 4 月

第 5 月

第 6 月

第 7 月

第 8 月

第 9 月

第 10 月

第 11 月

第 11 月

1.訂定題目和討輪

2.資料收集

3.資料整合

4.設計草圖

5.收集材料

6.材料製作

7.組裝測試

8.最後修改

9.傳寫報告

預定進度累計百分比 10% 15% 20% 30% 40% 50% 60% 70% 80% 85% 95% 100%

4

Page 10: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

1.6 工作分配

學號 姓名 工作項目

BA100035 趙哲愷 資料收集

設計草圖 材料製作

BA100025 方品介 資料整合

設計草圖 傳寫報告

BA100009 湯宗霖 資料收集

資料整合 組裝測試

BA100002 陳冠豪 資料收集

資料整合

傳寫報告

(表二)分配工作表

5

Page 11: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

第2章 研究方法

2.1 機械手臂介紹

目前市面上的機械手臂種類繁多,任何環境任何工作內容都有可能用到

機械手臂,為了因應各種環境所需,所以機械手臂的種類繁多,如:醫療用安

全機械手臂、連續衝床用之雙臂式送料機械手臂、可做零件切離定位置入機

械手臂、多前臂機械手臂、運輸晶圓之機械手臂、具有分離式總和機械手臂

等....,機械手臂關節軸數越多,相對的自由度靈活度也越高。

在醫療行為的過程中,最重要的是以病人的整體狀況為優先考量,達文

西手術系統正在改變醫生的觀念及經驗。與傳統開腹手術或腹腔鏡手術相比,

使用達文西手術系統,可有效減少失血量、傷口小降低疼痛、縮短住院天數、

降低術後感染風險、患者術後恢復速度較快,同時達到相同或更好的預後效

果。

達文西手術系統可讓醫師透過醫師控制台和四隻機械手臂特殊的設計,

利用 3D 立體超高解析度視野的準確度,經由如鑰匙孔般大小的傷口,進行高

度複雜的微創手術。達文西手術系統可協助醫師準確判斷病兆位置,其優異

的縫合功能對於血管縫合更加有其助益,幫助醫師進行組織血管的剝離,避

免損害重要神經。醫師利用精密的達文西手術系統來執行手術,已成為傳統

手術與腹腔鏡手術之外的另一項新選擇。

達文西手術系統,可消除主刀醫師因生理產生不必要之顫抖,避免對病

患產生影響。人體工學設計的醫師控制台,提供高解析 3D 立體手術視野,讓

醫師以坐姿遠距操作機械手臂執行手術,減少醫師因長時間進行手術的疲累。

由於達文西獨家設計的器械具有 7 個自由度控制,540 度靈活旋轉角度,可

模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

不易使用,進入人手與腹腔鏡器械無法觸及的狹小空間內進行手術。超越人

手的精細與穩定度的達文西機械手臂,大幅提昇了手術的精準度與靈活度,

提供病患更精細、高品質的手術治療選擇。

6

Page 12: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

2.2 步進馬達介紹

步進馬達為脈衝馬達的一種,其具有如齒狀的突起相鍥合的定子與轉子,

可藉由切換流向定子線圈的電流,以一定角度逐步轉動的馬達,所以步進馬

達可正確的依比例追隨脈波信號而轉動,也因此能達到精確的位置和速度的

控制且穩定性佳,步進馬達的種類可依照結構來分成三種:

1.永久磁鐵 PM 型

PM 式步進馬達的轉子是以永久磁鐵製成,線圈繞在定子上,在定子線圈

加上直流電時會產生電磁吸引力,因而帶動轉子旋轉,所以具有保持力,由

於機械加工的問題,轉子較大,慣性慣量較大,出力也會較大,但影響度較

慢,其特性為線圈無激磁時,由於轉子本身具有磁性顧仍然產生保持轉矩,

PM 型步進馬達的步進繳依照轉子材質不同而有所改變。

2.可變磁阻 VR 式

VR 式步進馬達的轉子是以高導磁材料加工製成,由於是利用定子線圈產

生吸引歷史轉子轉動,因此當線圈為激磁時無法保持轉矩,因在轉子較小的

情況下,慣性慣量較小,出力也會較小但響應速度較快經由設計提高效率,

故 VR 式步進馬達可以提供較大的轉矩,通常運用於需要較大轉矩與精確定位

之工具機上,VR 式的步進角一般均為 15 度。

3.複合式

複合式步進馬達是在轉紫外圍設置許多齒輪狀的突出電極,同時在其軸

向亦裝置永久磁鐵,可視為 PM 式與 VR 式的合體也相對的結合 PM 型及 VR

型兩種步進馬達的優點,故稱之為複合式步進馬達因此具備高精確度與高轉

矩的特性,複合式步進馬達的步進角較小,一般介於 1.8 度~3.6 度之間,轉子

由軸向磁化的磁鐵所製成,並且在圓周加工成齒輪狀,相對應於轉子的定子

部分也加工成小齒狀,如此做法使解析度變得更精細,力量也大得多,常運

用於 OA 器材如影印機、印表機或攝影器材上。

7

Page 13: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

2.3 機械手臂規格

這次的機械手臂,我們以軟體 Arduino 來控制機械手臂中的伺服馬達,在

透過齒輪比的部分讓他精準的轉動到我們要的角度位子,以下為機械手臂的

需求(表三):

一、需求

設計需求 額定

附載 3KG

範圍 50CM(0.5M)

(表三)預設需求表

二、選擇馬達與減速機

1.馬達大小選用 圖 2-1、圖 2-2、圖 2-3

圖 2-1馬達計算圖 1

8

Page 14: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

因為前頭 故選用最小的 42 馬達(表四)

附載 3KG故選用較接近的 扭矩 42L48 減速比 19

42

L2

mH

Kg*

cm

num

Kg*

cm2

kg

42BYGH3401 1.8 34 3.8 0.95 4 3 2.7 4 0.034 0.2

42BYGH403 1.8 40 2.4 1.65 1.5 2.7 3.5 4 0.054 0.25

42BYGH4817 1.8 48 2.4 1.65 1.7 3 3.5 4 0.054 0.35

42BYGH4812 1.8 48 2.4 1.2 3 5.5 4.3 4 0.054 0.35

42BYGH603 1.8 60 4 1.2 1.6 3 5.2 4 0.082 0.45

(表四)42 型馬達

二.行星齒輪箱尺寸及性能表

減速比

ZQ

減速機長

L1

傳動效率

η

齒輪額定使用附載

Kg*cm

5.18 28.5 90% 3

13.7 35 81% 20

19 35 81% 20

27 35 81% 20

(表五) 行星齒輪箱尺寸及性能表

9

Page 15: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 2-2馬達計算圖 2

以 42(最小的馬達)計算算最終點的地方

桿 2=0.2m=20cm 會用到 2顆 42馬達

馬達+減速機重量 42約等於 0.5KG

0.5x2*20=20kg-cm

附載 3kg

3*20=60kg-cm

共需要 80kg-cm

故選用 57較接近的電機大小 57L76+18減速比 18

10

Page 16: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

57

L2

歐姆

mH

Kg*

cm

num

Kg*

cm2

kg

57BYGH001ZQ 1.8 41 3.3 1.5 1.8 4 4 4 0.1 0.45

57BYGH101ZQ 1.8 45 1 1 1.1 2 4.5 4 0.12 0.56

57BYGH201ZQ 1.8 51 2.6 2 1.3 4 9 4 0.275 0.65

57BYGH301ZQ 1.8 56 3.3 3 1.1 4.5 11 4 0.3 0.7

57BYGH748ZQ 1.8 76 3 3 1 4.5 16 4 0.3 0.8

57BYGH1001ZQ 1.8 100 4.7 3.5 1.35 3.75 25 4 0.8 1.6

57BYGH1501ZQ 114 114 3.5 3.5 1 2.3 28 4 0.811 1.6

(表六)57型馬達

二.速比

減速比 ZQ 減速機長 L1 傳動效率η

1:4.25 53 90%

1:18 55 81%

1:77 64 81%

(表七)減速比

11

Page 17: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 2-3馬達計算圖 3

57約等於 1.5KG

桿 1=0.3m 1.5*0.3=0.45kg-m=4.41N-m

桿 2=0.2+0.3=0.5m 0.5x2*0.5=0.5kg-m=4.9N-m

附載=3*0.5=1.5kg-m=14.7N-m

桿重=約 1.5kg=1.5*0.25=0.375kg-m=3.675

需 14.7+4.41+4.9+3.675=27.685 N-m

故最終選用 86L126 減速比 24

12

Page 18: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

86

L2

歐姆

mH

Kg*

cm

num

Kg*

cm2

kg

86BYGHG001SC 66 1.9 3 0.63 2.8 2.5 4 0.1 0.45

86BYGHG103SC 76 1.5 5 0.3 2.5 3.45 4 0.12 0.56

86BYGHG201SC 80 2 5 0.4 3.5 3.5 4 0.3 0.7

86BYGH1148SC 114 3 5 0.6 6 7 4 3 3.6

86BYGH602SC 126 3.4 5.4 0.63 5.8 7.4 4 4 4.3

86BYGH603SC 150 2.5 5 0.5 5.5 10 4 3.6 5

(表八)86型馬達

2.減速機比較

日本 台灣 大陸

精度(秒) 1~2 7~8 15

價格 高 中 低

(表九)減速比

手動遙控器

一軸 F 一軸 E 五軸 D 五軸 C

二軸 B 二軸 3 夾爪關 6 夾爪開 9

三軸 A 三軸 2 速度- 5 速度+ 8

四軸 0 四軸 1 移動量- 4 移動量+ 7

(表十)遙控器按鈕

13

Page 19: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

2.4 Arduino 程式

//定義輸出接腳 pul dir

/*

#define pul0 22

#define dir0 23

#define pul1 24

#define dir1 25

#define pul2 26

#define dir2 27

#define pul3 28

#define dir3 29

#define pul4 38

#define dir4 40

*/

#include <Process.h>

//按鈕設定------start

#include <Keypad.h>

const byte ROWS= 4; //four rows

const byte COLS= 4; //three columns

/*

char keys[ROWS][COLS] = {

{'F','E','D','C'},

{'B','3','6','9'},

{'A','2','5','8'},

{'0','1','4','7'}

};

*/

byte keys[ROWS][COLS] = {

{1,2,9,10},

{3,4,11,12},

14

Page 20: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

{5,6,13,14},

{7,8,15,16}

};

byte rowPins[ROWS] = {5, 4 , 3, 2,}; //connect to the row pinouts of the

keypad

byte colPins[COLS] = {9,8,7,6}; //寫反 剛好正面看是照順序

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS,

COLS );

//按鈕設定--------end

const byte AXIS= 5; //軸的數量

//各軸減速機比

int gear[AXIS] = {24, 24, 18, 19, 19};

//各軸 pls 量

int onepls[AXIS] = {400, 400, 400, 400, 400};

//定義輸出接腳 pul dir

int pul[AXIS] = {22, 26, 30, 34, 38}; //pul 群

int dir[AXIS] = {24, 28, 32, 36, 40}; //dir 群

//定義 極限訊號

int lsr[AXIS] = {23, 27, 31, 37, 39}; //cw 極限

int lsl[AXIS] = {25, 29, 33, 35, 41}; //ccw 極限

//定義 按鈕

//int pbcw[5] = {2, 4, 6, 8, 10}; //正轉

//int pbccw[5] = {3, 5, 7, 9, 11}; //反轉

//定義剎車

int breakin=51;

int breakout=50;

//定義夾爪

int takeopen=52;

int takeclose=53;

String str; 15

Page 21: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

String cov;

void setup() {

Process p;

// put your setup code here, to run once:

//pb 按鈕初始 2~13

for(int i =2;i<=13;i++){

pinMode(i, INPUT);

digitalWrite(i, HIGH);

}

for (int i = 0; i < 5; i++) {

pinMode(pul[i], OUTPUT);

pinMode(dir[i], OUTPUT);

pinMode(lsr[i], INPUT);

pinMode(lsl[i], INPUT);

digitalWrite(lsr[i], HIGH);

digitalWrite(lsl[i], HIGH);

}

// pinMode(pb1, OUTPUT);

// pinMode(pb2, OUTPUT);

// digitalWrite(pb1, HIGH);

// digitalWrite(pb2, HIGH);

Serial.begin(9600);

Serial.println("init");

//處理剎車--------------------

pinMode(breakin, INPUT);

pinMode(breakout, OUTPUT);

digitalWrite(breakin, HIGH);

digitalWrite(breakout, HIGH);

bool br;

do 16

Page 22: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

{

// br=digitalRead(breakin);

Serial.println(br);

delay(50);

}

while (digitalRead(breakin)==1);

delay(2000);

digitalWrite(breakout, 0);

Serial.println("start break");

//處理剎車------------------------

//處理夾爪-----------------

pinMode(takeopen, OUTPUT);

pinMode(takeclose, OUTPUT);

//處理夾爪----------------

keypad.addEventListener(keypadEvent); //add an event listener for this

keypad

keypad.setHoldTime(1000);

}

int conread;

void loop() {

// put your main code here, to run repeatedly:

if (Serial.read() == '\n') {

conread = Serial.read();

Serial.println("I get");

Serial.println(conread);

conread=0;

}

for (int i = 0 ; i < 5 ; i++) {

if (digitalRead(lsl[i]) == LOW) {

Serial.println("lsl");

Serial.println(i); 17

Page 23: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

delay(10);

}

if (digitalRead(lsr[i]) == LOW) {

Serial.println("lsr");

Serial.println(i);

delay(10);

}

}

//印出按的按鈕

byte key = keypad.getKey();

if (key!= NO_KEY){

//Serial.println(key);

}

delay(1);

}

///主程式結束

int movespeed=1000;//速度

int movepls=100; //pls 量

///軸運動---------------start

//多軸用 1 軸 2pul 量 3 速度

void rotatepls(int axis, int steps, int maxsp) {

//rotate a specific number of microsteps (8 microsteps per step) - (negitive

for reverse movement)

//speed is any number from .01 -> 1 with 1 being fastest - Slower is

stronger

//sp 速度限制

int dircw = (steps > 0) ? HIGH : LOW; //判斷 cw ccw

int stopaxis= (dircw) ? lsr[axis]:lsl[axis]; //判斷藥用正轉還是反轉

18

Page 24: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

digitalWrite(dir[axis], dircw); ; //判斷 cw ccw

Serial.println(axis);

Serial.println(steps);

steps = abs(steps);//變整數

//Serial.println(steps);

for (int i = 0; i <= steps; i++) {

if(digitalRead(stopaxis)== LOW){

Serial.print(axis);

Serial.println(" break");

break;

}

else

{

digitalWrite(pul[axis], HIGH);

digitalWrite(pul[axis], LOW);

delayMicroseconds(maxsp);

}

}

}

void rotatedeg(int axis, float Deg, float maxsp) {

int steps = Deg * onepls[axis] * gear[axis] / 360; //Deg*pls=1 度 圈數

rotatepls(axis, steps, maxsp);

}

///軸運動---------------end

///按鈕---------------

void keypadEvent(KeypadEvent key){

switch (keypad.getState()){

case PRESSED:

switch (key){

case 1:

//rotatepls(0, movepls, movespeed);

Serial.println(key);

19

Page 25: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

break;

case 2:

rotatepls(0, -movepls, movespeed);

break;

case 3:

rotatepls(1, movepls, movespeed);

break;

case 4:

rotatepls(1, -movepls, movespeed);

break;

case 5:

rotatepls(2, movepls, movespeed);

break;

case 6:

rotatepls(2, -movepls, movespeed);

break;

case 7:

rotatepls(3, movepls, movespeed);

break;

case 8:

rotatepls(3, -movepls, movespeed);

break;

case 9:

rotatepls(4, movepls, movespeed);

break;

case 10:

rotatepls(4, -movepls, movespeed);

break;

case 11://開爪

digitalWrite(takeopen, LOW);

digitalWrite(takeclose, HIGH);

Serial.println("11");

break; 20

Page 26: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

case 12://開爪

digitalWrite(takeclose, LOW);

digitalWrite(takeopen, HIGH);

Serial.println("12");

break;

case 13://減速

movespeed=movespeed-100;

Serial.println(movespeed);

break;

case 14://加速

movespeed=movespeed+100;

Serial.println(movespeed);

break;

case 15://減量

movepls=movepls-100;

Serial.println(movepls);

break;

case 16://加量

movepls=movepls+100;

Serial.println(movepls);

break;

}

case HOLD:

switch (key){

case 1:

break;

case 2:

break;

case 3:

break;

case 4:

21

Page 27: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

break;

case 5:

break;

case 6:

break;

case 7:

break;

case 8:

break;

case 9: //回原點設定

break;

case 10:

break;

case 11:

break;

case 12:

break;

case 13:

break;

case 14:

break;

case 15:

break;

case 16:

break;

}

break;

case RELEASED:

{

key=0; 22

Page 28: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

}

break;

}

}

//一軸用

/*

void rotate1(int steps, float sp){

//rotate a specific number of microsteps (8 microsteps per step) - (negitive

for reverse movement)

//speed is any number from .01 -> 1 with 1 being fastest - Slower is

stronger

int di = (steps > 0)? HIGH:LOW;

digitalWrite(dir4,di);

Serial.println(steps);

steps=steps*400; //steps 圈數

steps = abs(steps);

Serial.println(steps);

for(int i=0; i < steps; i++){

digitalWrite(pul4, HIGH);

digitalWrite(pul4, LOW);

delayMicroseconds(sp);

}

}

*/

23

Page 29: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

第3章 3D 圖與成品圖

3.1 使用材料

鐵合金、步進馬達、arduino 電路板、繼電器、電源供應器、馬達驅動器、

極限開關、電線、夾爪。

3.2 所需材料表

編號 名稱 備註

1 鐵合金

2 步進馬達 5 個

3 arduino

4 繼電器 19 個

5 電源供應器 24 伏、48 伏

6 馬達驅動器

7 極限開關 8 個

8 電線

9 麵包板

夾爪

(表十一) 所需材料表

24

Page 30: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

3.3 3D 草圖與成品圖

圖 3-1 結構立體圖

圖 3-2 步進馬達 1

25

Page 31: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 3-3 步進馬達 2

圖 3-4 步進馬達 3

26

Page 32: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 3-5 步進馬達 4

27

Page 33: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 3-6 繼電器電路板

圖 3-7 驅動器

28

Page 34: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 3-8 極限開關

圖 3-9 極限開關

29

Page 35: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 3-10 極限開關

圖 3-11 成品圖

30

Page 36: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

圖 3-12 電路圖

31

Page 37: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

第4章 結果與討論

4.1 預計成果

為了設計這次的機械手臂,我們利用了 SolidWorks繪圖軟體模擬了機械

手臂各個關節所能做動的最大極限角度,以及手臂所能工作的最大範圍,以

下為模擬出來的角度以及最大範圍。

圖 4-1

軸一 190 度

軸二 220 度

軸三 330 度

軸四 180 度

軸五 360 度

工作範圍 60CM

(表十二)各軸預設範圍

32

Page 38: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

4.2 實際成果

實際成品的工作範圍以及實際做動角度如下圖表格:

圖 4-2

軸一 170 度

軸二 200 度

軸三 270 度

軸四 150 度

軸五 360 度

工作範圍 50CM

(表十三)各軸實際範圍

各軸轉動的角度範圍會加裝極限開關,避免在旋轉的同時發生碰撞,然

而極限開關裝設位置的改變,也會稍微影響到機械手臂實際操作時所能轉動

的最大角度。 33

Page 39: Arduino 晶片來控制,優點在於我們可ir.hust.edu.tw/bitstream/310993100/4919/1/BA100035機械手臂.pdf · 模仿人類雙手做旋轉、抓取、捏夾的動作,更優於傳統腹腔鏡手術器械僵直

4.3 結論

專題製作過程,考驗了組員間的互相信任,以及對機械多元化的經驗與

考量,包括繪圖能力、程式撰寫、組裝功能以及本身的想像力。一個天馬行

空的想法,慢慢的從無到有的做出成品,讓我們感到無比成就,之間發生許

多爭執與問題,讓我們學會如何與人際溝通協調,解決問題。這對未來的職

場工作有著相當大的幫助。

4.4 建議

研究的過程中,要不斷地蒐集、整理資料,並將課程所學做統整的應用,

將知識變成實際的經驗,已達學以致用之效。

從研究的過程中,才可以去了解到空有構想是不足以完成作品,而且實

際的加工過程,也還是會和原先假想的有所差別,必須一邊製作、一邊調整。

在繪圖、模擬的過程中,也許只要利用一些時間及電腦軟體的應用,就可以

繪出假想的作品。但實際上在製作的時候不只是需要想法,還需要考慮零件

的配合以及實際操作的可行性,加工的過程也會遇到很多瓶頸需要去克服,

不是想像中的一般簡單。

經由這次的機會,讓我們在加工上的觀念更加清楚,因為不斷解決問題、

尋求答案,讓我們知道團隊合作是多麼重要,可以體會到研究的意義。

34