第1步:你需要什么 - 硬件和電子產品
原始項目設計師居住在歐洲,隨后使用公制測量和常用材料。例如,他用于身體的壓板是5mm厚的標準。美國的類似材料是1/8“,厚度約為3.7mm。這在開口處留下了一個間隙,最初設計為壓配合。而不是糾正圖紙,我只是使用Gorilla Glue來固定這些接頭。/p》
他還使用了M3螺紋螺母和螺栓,這些螺母和螺栓在美國當地的五金店不是標準配置。我只是在線訂購硬件,如下面的零件清單所示。
22 - M3 x 0.5 x 23mm支架
15 - M3 x 15mm墊片
40 - M3螺絲
M3六角螺母
M3 25mm螺絲
1 - 彈簧
3/4“雙面安裝膠帶
5 - SG 5010 TowerPro Servo
1 - SG92R TowerPro迷你伺服
1 - SG90 TowerPro迷你伺服
2.54 mm單排直針接頭
1 - 半尺寸面包板
1 - 女性/男性‘延長’跳線 - 40 x 6“
1 - 12”x 24“藍色亞克力板或您喜愛的服務提供商的激光切割件
2 - 3mm x 20mm + 4mm x 5mm關節軸承墊片3D打?。ㄒ娤挛模?/p>
1 - 控制面板 *參見接線注意事項章節
1 - 漫射RGB(三色)10mm LED
1 - Arduino Uno
1 - 標準LCD 16x2 +附加功能 - 白色藍色
1 - i2c/SPI字符LCD背包
1 - MCP3008 - 8通道10位A帶SPI接口的DC
DC Barrel Jack
AC至直流適配器
伺服延長電纜 - 各種長度
此臂的幾乎所有部件均采用1/8英寸丙烯酸切割而成。兩個關節軸承墊片確實需要然而,要打印。此外,原設計要求兩個關節間隔基座與軸承軸高7mm。當我開始組裝上臂時,由于TowerPro伺服系統的高度,很快就會發現它們太高了。我不得不用一個只有3毫米高的底座制作新的關節軸承,順便說一下,它仍然有點太高但可以控制。您需要記下伺服系統的相對高度并考慮兩個下臂之間的距離:
伺服高度+伺服喇叭+關節軸承+雙面膠帶= 47mm +/- 3mm。
第2步:手臂組裝
在開始之前,請確保將所有的伺服系統!如果在施工過程中的任何時候,如果您手動移動伺服的位置,則需要在將其固定到框架之前重新定位。對于始終需要一致移動的肩舵伺服系統尤為重要。
使用M3 25毫米螺釘和六角螺母將底座伺服系統安裝到頂部底板上。不要過度擰緊!
注意:您可能需要對螺紋進行鎖緊,以盡量減少使用過程中螺母的松動。
如果您使用我上面的零件清單,您接下來想要通過將每個M3 x 0.5 x 23mm支架螺紋連接在一起,然后用六角螺母將它們連接到上基板來組裝5個底座墊片。
用5個M3螺絲將下底板安裝到支座上。
使用丙烯酸安全粘合劑將肩板連接到兩個伺服安裝板上。我在這里使用了Gorilla Glue。
注意:兩個伺服板中的每一個都在后面有一個孔,允許插入一個加固墊片連接它們。確??讓R!
* 雖然您有方便的膠水,但請繼續將手腕安裝板與夾板主板連接。
* 您也可以選擇將腕部伺服板粘到兩個腕關節板上。我沒有選擇這樣做,而是將它們與支架連接在一起,如下所述。
將現已固化的肩部組件安裝到基座伺服系統上。我使用了伺服系統中最寬的喇叭,它是六根安裝喇叭。
將下臂框架添加到肩部伺服系統可能會非常棘手。我建議在繼續之前將喇叭固定在下臂框架上。
注意:確保在將肩胛骨組件安裝到框架上之前將其放在肩部組件的中心位置。這兩個伺服系統必須一致移動,如果它們未對準,則至少會導致伺服抖動,如果不對準,可能會損壞框架或伺服系統。
* 每個肩舵都安裝在安裝板背面的支架上,而不是讓舵機通過板 - 這樣就可以將喇叭推到伺服軸上以一定角度固定螺絲。尚未將伺服固定到安裝板上。
* 接下來,添加內部伺服并安裝臂
通過推動舵機穿過空間組裝上臂框架和伺服器在手臂中然后將墊片插入兩個上臂板之間并用M3螺釘固定。
在肘關節墊片的背面添加雙面膠帶并修剪多余的膠帶。
將墊片安裝在伺服器底部,作為彎頭執行器。
將上臂組件滑入下臂組件框架并固定伺服喇叭螺釘。
在兩個下臂板之間添加加固支架。我使用了兩個而不是全部四個來降低重量。
將雙面膠帶添加到上腕關節墊片的背面并修剪多余的膠帶。
將墊片安裝在伺服器底部,作為手腕執行器。
將外腕板連接到腕部伺服喇叭上,并用喇叭螺絲固定。
使用兩個腕關節板和支座組裝腕部伺服板。
使用伺服夾板將腕帶伺服固定在伺服板上。
由于喇叭螺絲被打開,因此在將夾具組件連接到該喇叭之前,您需要將腕帶固定到伺服器上。
在將夾具伺服喇叭連接到伺服系統之前,松散地組裝夾具以便貼合。這將允許您在上一步中擰緊喇叭。
將夾具喇叭安裝到伺服器上,然后擰緊固定夾具接頭的螺釘。
注意:不要完全擰緊這些螺母和螺栓,因為它們需要松動以使夾具移動。
第3步:布線和控制面板
我將這個項目構建為一個開發平臺,用于我以后的教育項目的一些想法。所以,我的大部分連接都是簡單的杜邦連接器。我做的唯一焊接是MCP3008。如果你能為這個組件找到一個分線板,那么你應該能夠構建這個無焊接臂。
有三組組件:
輸入 - 這些項目從用戶獲取信息,由操縱桿和mcp3008 ADC組成。
輸出 - 這些項目通過向用戶顯示狀態或使用位置數據更新伺服來向世界傳達數據。這些項目是LCD屏幕,LCD背包,RGB LED,伺服驅動板和最后的伺服。
處理 - Arduino匯總了最后一個從輸入接收數據的組,并根據代碼指令將數據輸出到輸出。
上面的Fritzing原理圖詳細介紹了所有組件的引腳連接。
輸入
我們將從輸入開始。操縱桿是模擬設備 - 意味著它們呈現可變電壓作為Arduino的輸入。三個操縱桿中的每一個都有兩個模擬輸出,用于X和Y(上,下,左),共有6個輸入到Arduino。雖然Arduino Uno有6個模擬輸入可供使用,但我們需要使用其中兩個引腳進行與屏幕和伺服控制器的I2C通信。
因此,我整合了MCP3008模數轉換器(ADC)。該芯片最多可接收8個模擬輸入,并通過Arduino的SPI通信引腳將其轉換為數字信號,如下所示:
MCP引腳1-6 》 可變輸出拇指操縱桿
MCP針腳7和8 》 無連接
MCP針腳9(DGND)》 接地
MCP引腳10(CS/SHDN)》 Uno引腳12
MCP引腳11(DIN)》 Uno引腳11
MCP引腳12(DOUT)》 Uno引腳10
MCP引腳13(CLK)》 Uno引腳9
MCP引腳14(AGND)》 接地
MCP引腳15和16 》 + 5V
示意圖中僅示出了原理圖中的操縱桿連接。根據購買的操縱桿及其安裝方式,您的連接可能與我的不同。不同品牌的操縱桿可以具有不同的引出線,并且還可以不同地定向X和Y.重要的是了解ADC上的每個輸入代表什么。每個引腳代表我的代碼中的以下關系:
引腳1 - 基極 - 此引腳上的模擬數據將旋轉機器人上的最低伺服
針腳2 - 肩部 - 此針腳上的模擬數據將旋轉基座伺服上方的兩個伺服電機
針腳3 - 肘部 - 此引腳上的模擬數據將從肩舵旋轉下一個伺服
引腳4 - UP/DN手腕 - 此引腳上的模擬數據將旋轉腕部伺服,上升和降低夾具組件
針腳5 - 夾具 - 此針上的模擬數據將打開和關閉夾具
針6 - 旋轉手腕 - 此針上的模擬數據將旋轉夾具
注意:購買和安裝零件清單中引用的拇指操縱桿時,請記住模塊的方向可能與我的不同,因此,測試x和y輸出以正確連接到ADC。此外,如果您使用我的3D打印控制面板,安裝孔可能會偏離我的。
輸出
Adafruit PWM/伺服控制器使這個項目變得非常簡單。只需將Servos連接到伺服頭,即可處理所有電源和信號連接。除非您發現帶有超長引線的伺服電機,否則您需要獲得一組不同長度的伺服電纜延長線,以便所有伺服電纜都能連接到控制器板。
伺服電機連接如下:
位置0 - 基礎伺服
位置1 - 肩部伺服(伺服Y電纜)
位置2 - 彎頭伺服
位置3 - 手腕1伺服
位置4 - 夾持器伺服
位置5 - 手腕2伺服
此外,VCC和V +都連接到+5 V和GND連接到地。
注1:這里有一個大注: 整個項目的供電電壓是通過伺服控制板上的電源接線盒。伺服控制器上的V +引腳實際上是從接線盒向電路的其余部分供電。 如果您需要對Uno進行編程,我強烈建議在將Uno連接到PC之前斷開V +引腳,因為從伺服器獲取的電流可能會損壞您的USB端口。
注2:我正在使用6V AC到DC墻式適配器為項目供電。我推薦一個可以提供至少4A電流的適配器,這樣當一個或多個伺服電機被綁定時,電流的突然上升不會使系統掉電并重置Arduino。
16X2 LCD屏幕連接到Adafruit LCD背包,以利用伺服控制器已經使用的I2C接口。伺服控制器上的SCL和背包上的CLK都連接到Uno上的Pin A5。同樣,伺服控制器上的SDA和背包上的DAT都連接到Uno上的Pin A4。此外,5V連接到+5伏,GND連接到地。背包上的LAT沒有任何連接。
最后,RGB LED連接到Uno上的引腳7(紅色),6(綠色)和5(藍色)。 LED的接地極通過一個330歐姆的電阻連接到地。
處理
最后但并非最不重要的是,未列出剩余的Arduino連接以上內容如下:引腳5V連接到+5伏,GND連接到地。
在我的設置中,我使用面包板的側軌將所有電源線和地線連接在一起,并將所有設備的I2C引腳連接在一起。
第4步:代碼
如前所述,我最初將此項目構建為本地制作者的演示馬戲團。我打算讓它成為兒童和成人在我們的展位上玩耍的東西。事實證明,它比我想象的更受歡迎 - 所以,孩子們正在爭奪它。因此,當重新編寫時,我加入了一個實現時間限制的“演示模式”。
手臂坐在那里等著有人移動操縱桿,當他們這樣做時,開始一個60秒的計時器。在60秒結束時,它停止從用戶輸入并“休息”15秒。短暫的注意力集中在他們身上,這個休息時間大大減少了對堅持時間的爭奪。
基本操作
以下參考部分列出的代碼非常簡單。數組使用最小,最大范圍,原始位置和當前位置跟蹤6個關節。當手臂通電時,啟動功能定義了與MCP3008,LCD背包(以及隨后的屏幕)通信所需的庫,并定義了LED引腳。從那里它做了一個基本的系統檢查,然后繼續回家。主頁功能從夾具開始向下移動到底座,這樣可以最大限度地減少在正常情況下綁定的可能性。如果手臂完全伸展,那么在給手臂供電之前最好手動將其固定住。由于通用伺服系統不提供其位置的反饋,因此我們需要將每個伺服系統放置在預定義的位置并跟蹤每個位置的移動距離。
主回路首先以等待模式啟動 - 尋找操縱桿離開其中心位置。一旦發生這種情況,主循環會將狀態更改為倒計時狀態。當用戶移動每個操縱桿時,操縱桿相對于中心的相對位置將增加或減去當前已知位置并更新適當的伺服。一旦伺服器在一個方向上達到其定義的極限,操縱桿就會停止。用戶需要向另一個方向移動操縱桿才能再次移動操縱桿。這是對伺服器施加的軟件限制,無論其硬件停止如何。此功能允許您在需要時將手臂的移動保持在指定的操作區域內。如果將操縱桿釋放到中心,則移動將停止。
這段代碼只是一個普遍的起點。您可以根據需要添加自己的模式。一個示例可以是無定時器的連續運行模式,或者可以將操縱桿按鈕添加為輸入并寫入記錄/回放模式。
-
機械臂
+關注
關注
12文章
519瀏覽量
24660
發布評論請先 登錄
相關推薦
評論