Introduction: 六軸機械手臂

Arduino 是一塊Open Source電路板,

開發者可以利用這塊板子去做到一些電子器材的控制,

這篇主要教大家怎麼寫出控制六軸舵機的簡單操作,

後面會教大家如何用PS2搖桿控制六軸機械手臂。

1.購買Arduino開發版與Arduino晶片

2.下載Arduino IDE開發工具

3.在電腦上安裝Arduino的Driver

4.寫個簡單應用並燒錄上去Arduino,也可以上網參考其他人公布的資料函數庫來使用

Step 1: 【第一步、購買Arduino開發板與晶片】

在開發前,大家一定要有一塊Arduino電路板,基本上在Y拍,露天,淘寶就買得到了,一塊基本的價格大概在600~1000左右!因為其實Arduino板子有分很多種,而且有的還算是擴充加強版!但都大同小異。

Step 2: 【第二步、下載Arduino IDE】

接著去Arduino官方網站下載開發程式軟體,

這樣才能寫入程式與函數庫,並且燒錄到Arduino開發板上。

下載網址:https://www.arduino.cc/en/Main/Software

下載下來後解壓縮並安裝即可。

Step 3: 【第三步、安裝Driver】

有些電腦一插入USB,就會自動安裝驅動程式軟體。

如果找不到Driver,這時候就【我的電腦點選右鍵】,【管理】,【裝置管理員】,

裡面會有個驚嘆號(無法辨識的裝置),在該裝置上點選右鍵,選擇內容,

然後選擇要安裝驅動的路徑,安裝後即可使用

Step 4: 【第四步、實現手臂組裝】

1.首先要先決定手臂材料,材料可以選用的材料非常多,例如3D列印,雷射切割,自行購買材料組裝,我們最後選用較為堅固的金屬合金當作我們手臂的材料。

2.再來就是手臂組裝的過程,組裝的過程中,小細節要非常注意,有可能因為一顆螺絲的滑牙,造成整組手臂結構不穩,甚至在做動作的過程中翻覆。

3.手臂與舵機的結合,舵機在放入手臂中時,必須要先做好定位,這個動作有可以有效的固定手臂的活動範圍,以防手臂過度的動作,這也可以讓手臂更加的擬真。

4.在組裝完成後,測試一些基本的動作,手臂大致上完成了。再來就是細節的動作設計了。(後面詳細敘述)

Step 5: 【第五步、打開Arduino】

前面我們已經完成手臂的組裝了,但是現在只是一副空殼,

它的核心內容-Arduino程式碼還沒燒錄,現在來教大家如何編寫程式碼,

來使你們的機械手臂能做些簡單操作。

首先先打開剛剛在電腦上安裝好的Arduino程式,

最先要注意的是你的開發版與處理器是甚麼型號,在上面工作列選擇Tools-Board與Processor,

那我們這邊是Arduino Nano與ATmega328,如果這邊選擇錯誤的話,在燒入時會出現錯誤喔!

Step 6: 【第六步,程式碼編寫前言】

我們要開始寫程式碼前,要先簡單了解整個Arduino程式語法,

Arduino的程式語法是基於C/C++,簡單來說就是客製化的C/C++語言,而其開發工具 Arduino IDE 則是衍生自以 Processing 為基礎的電子開發設計平台 Wiring。

Arduino程式可由五個部分組成:

1.匯入函式庫與定義

#include "include.h"

#define LED 8
#define BUZZER 9

#define KEY A7

2. 宣告常數與全域變數

int A;

char B;

3.設定函式 //這是一定要寫的

void setup() {}

4.無限迴圈 //這是一定要寫的,程式碼會無限迴圈這段程式碼

void loop() {}

5.自訂的函式

void peter(){

}

Step 7: 【第七步、設定舵機pin腳】

上面已經先簡單介紹程式碼大致上的結構了,接下來終於可以來寫主程式了,

先介紹一下舵機函數的幾個常用語句,

attach(接口): 設定舵機的接口

write(角度): 用於設定舵機旋轉角度的語句,可設定的角度範圍是0°到180°

read(): 用於讀取舵機角度的語句,可理解為讀取最後一條write()命令中的值

Arduino參考程式碼如上圖

為了讓整體舵機運行更加精細,我們使用PWM脈衝寬度來控制所有舵機,

設置500到2500的脈衝寬度來取代原來的0到180度。

Step 8: 【第八步、PS2X函式庫下載】

設定完舵機參數之後,我們希望能用PS2手把來控制機械手臂。

可以從網路搜尋關於PS2X的函式庫,下載函式庫之後,將函式庫丟入Arduino子資料夾libraries。

就可以打相關函式#include "PS2X_lib.h"匯入函式庫。

PS2函式庫載點

Step 9: 【第九步、PS2程式碼編寫】

要使用PS2手把來控制舵機,除了下載函式庫,

還必須設定PS2的接口,讀取手把按鍵數據。

除此之外,我們還需要分別設計每個按鍵的動作,按下所設定的PS2按鈕會執行裡面的函式。

上圖截錄自我們編寫的部分程式碼。

Step 10: 【第十步、舵機運行】

前面已經介紹完如何設定舵機pin腳與用PS2搖桿設置,接著教大家如何讓舵機執行。

最簡單的就是以下這段程式碼,是指將參數 myservo[0] 所設定的pin腳舵機執行90度

myservo[0].write(90); //

但這程式碼缺點是一執行就會馬上到達90度,無法控制執行時間,容易使舵機損壞,

教大家可以控制舵機執行時間的方法,避免舵機過度執行。

參考程式如上圖

我們設置了一個函數,輸入為pin腳,要到達的角度,舵機目前角度,想要他執行的時間,

接著我們將預計完成的時間除以20等於將時間分割成數個以20ms為單位的間隔,

將要移動的總角度除以間隔次數,即可得到每20ms要移動的小角度,

再用for迴圈以每20毫秒的速度輸入角度到舵機,即可達成目標囉

Step 11: 【第十一步、燒入Arduino開發版】

在編譯上傳前先確認 Arduino Board 與 Serial Port 是否選擇正確,確認完成後點選上傳按鈕進行程式編譯上傳。

即可完成使用搖桿控制六軸機械手臂的簡單操作囉

完整程式碼放在如下