當然,你們中的許多人都在科幻電影中看到科學家或極客如何擁有一個可以控制一切並可以像人類一樣拾取物體或執行功能的機械手臂。由於某些事情變得越來越有可能 Hardware Libre 和 Arduino 專案。但什麼是機械手臂呢?這個小工具有什麼功能呢?機械手臂是如何製造的?下面我們就來一一解答這些問題。
什麼是機械臂
機械臂是具有電子基座的機械臂,可對其進行完全編程。 另外,這種類型的手臂可以是單個元素,但也可以是機器人或其他機器人系統的一部分。 與其他類型的機械元件相比,機械臂的質量是 機械手可以完全編程,而設備的其餘部分則不能。 此功能使我們可以使用一個機械臂來執行各種操作,並執行各種不同的活動,這些活動可以通過電子板(例如Arduino板)來執行。
機械臂的功能
機器人手臂的最基本功能可能是輔助手臂功能。 在某些操作中,我們將需要支持某些元素的第三隻手臂,以便一個人可以構建或創建某些東西。 對於此功能,不需要特殊的編程,我們只需要關閉設備本身即可。
機器人手臂可以用各種材料製成,從而可以用來代替危險的操作 像操縱污染化學元素一樣。 只要機械手臂由堅固耐用的材料製成,它也可以幫助我們執行繁重的任務或需要足夠壓力的任務。
建築所需的材料
接下來,我們將教您如何為每個人快速,簡單,經濟地構建機械臂。 但是,這種機械臂不會像我們在電影中看到的那樣強大或有用,但可以用來了解其操作和構造。 以便, 我們將需要用來製造該設備的材料是:
- 一個碟子 Arduino UNO REV3或更高版本。
- 兩個開發板。
- 兩軸並聯伺服
- 兩個微型伺服器
- 兩個並行的模擬控件
- 開發板的跨接電纜。
- 膠帶
- 支架的紙板或泡沫板。
- 一把剪刀和剪刀。
- 非常耐心。
集會
該機械臂的組裝非常簡單。 首先,我們必須用泡沫切出兩個矩形。 這些矩形中的每一個都是機械臂的一部分。 正如您在圖片中看到的那樣,儘管建議您將這些矩形設置為我們想要的尺寸 其中之一的尺寸為16,50 x 3,80厘米。 第二個矩形的尺寸為11,40 x 3,80厘米.
一旦有了矩形,在每個矩形或條帶的一端,我們將為每個伺服電機貼上膠帶。 這樣之後 我們將切成泡沫的“ U”形。 這將作為手臂的握持部分或末端部分,對於人類來說就是手。 我們將把這塊連接到最小矩形的伺服電機上。
現在我們必須製造下部或底座。 為此,我們將執行相同的過程: 我們將切出一個正方形的泡沫,並將兩軸伺服電機平行放置,如下圖所示:
現在,我們必須將所有電機連接到Arduino板。 但是首先,我們必須將連接連接到開發板,然後將其連接到Arduino板。 我們將黑色導線連接到GND引腳,將紅色導線連接到5V引腳,將黃色導線連接到-11,-10、4和-3。 我們還將把機械臂的操縱桿或控件連接到Arduino板,在這種情況下,如圖所示:
連接並組裝好所有組件後,我們必須將程序傳遞到Arduino板,為此,我們需要將Arduino板連接到計算機或筆記本電腦。 將程序傳遞給Arduino板後,我們必須確保 將電纜連接到Arduino板上,儘管我們始終可以繼續開發板並拆解一切,如果我們只希望它學習,則為後者。
操作所需的軟件
儘管看來我們已經完成了機械臂的製造,但事實是,仍然有很多工作要做,也是最重要的事情。 創建或開發使我們的機械臂具有生命力的程序,因為沒有它,伺服電機將不會停止成為無意義旋轉的簡單時鐘機制。
通過將Arduino開發板連接到我們的計算機即可解決此問題,然後打開程序 Arduino IDE,我們將計算機連接到板上,並在空白文件中寫入以下代碼:
#include <Servo.h> const int servo1 = 3; // first servo const int servo2 = 10; // second servo const int servo3 = 5; // third servo const int servo4 = 11; // fourth servo const int servo5 = 9; // fifth servo const int joyH = 2; // L/R Parallax Thumbstick const int joyV = 3; // U/D Parallax Thumbstick const int joyX = 4; // L/R Parallax Thumbstick const int joyP = 5; // U/D Parallax Thumbstick const int potpin = 0; // O/C potentiometer int servoVal; // variable to read the value from the analog pin Servo myservo1; // create servo object to control a servo Servo myservo2; // create servo object to control a servo Servo myservo3; // create servo object to control a servo Servo myservo4; // create servo object to control a servo Servo myservo5; // create servo object to control a servo void setup() { // Servo myservo1.attach(servo1); // attaches the servo myservo2.attach(servo2); // attaches the servo myservo3.attach(servo3); // attaches the servo myservo4.attach(servo4); // attaches the servo myservo5.attach(servo5); // attaches the servo // Inizialize Serial Serial.begin(9600); } void loop(){ servoVal = analogRead(potpin); servoVal = map(servoVal, 0, 1023, 0, 179); myservo5.write(servoVal); delay(15); // Display Joystick values using the serial monitor outputJoystick(); // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyH); servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180) myservo2.write(servoVal); // sets the servo position according to the scaled value // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyV); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo1.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyP); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo4.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there // Read the horizontal joystick value (value between 0 and 1023) servoVal = analogRead(joyX); servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180) myservo3.write(servoVal); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there /** * Display joystick values */ void outputJoystick(){ Serial.print(analogRead(joyH)); Serial.print ("---"); Serial.print(analogRead(joyV)); Serial.println ("----------------"); Serial.print(analogRead(joyP)); Serial.println ("----------------"); Serial.print(analogRead(joyX)); Serial.println ("----------------"); }
我們將其保存,然後將其發送到盤子 Arduino UNO. 在完成代碼之前,我們將進行相關測試以驗證操縱桿是否正常工作。 並且該代碼沒有任何錯誤。
我已經安裝好了,現在呢?
當然,您中很多人都沒有想到過這種類型的機械臂,但是由於它的基礎,成本以及教授如何製造機器人的方法,因此它是理想的選擇。 從這裡開始,一切都屬於我們的想像。 也就是說,我們可以更改材料,伺服電機,甚至可以完成編程代碼。 不用多說 我們可以將Arduino電路板模型更改為更強大,更完整的模型,從而使我們可以連接遙控器 或使用智慧型手機工作。簡而言之,廣泛的可能性 Hardware Libre 和機械手臂。
更多信息 - 指導性
無疑,3D打印是通向偉大事物的大門。 我在自己的設計上使用Lion 2進行了工作,結果使我著迷。 由於建議我閱讀 http://www.leon-3d.es 它已經引起了我的注意,當我嘗試並目睹了自動找平和最終結果中的細節時,我知道我做了一筆不錯的投資。