คำอธิบาย
รหัสสินค้า
- RBAE01 แบบชุดคิท ลูกค้าประกอบเองอุปกรณ์บรรจุแยกชิ้นส่วนอยู่ภายในกล่อง ลูกค้าต้องประกอบ ติดตั้งเซอร์โวมอเตอร์ และทดสอบการทำงานด้วยตนเอง ไม่รวมบอร์ด Arduino Uno
- RBAE02 แบบประกอบพร้อมใช้งาน พร้อมบอร์ด Arduino Uno R3 Compatibleทางร้านประกอบและทดสอบการทำงานให้เรียบร้อย พร้อมบอร์ด Arduino Uno R3 Compatible ฟรี สามารถนำไปทดลองเขียนโปรแกรมและใช้งานได้ทันที
หุ่นยนต์แขนกลเพื่อการศึกษาแบบ 6 แกน ควบคุมด้วย Arduino เหมาะสำหรับผู้เริ่มต้นเรียนรู้การเขียนโปรแกรม การควบคุมเซอร์โวมอเตอร์ และการประยุกต์ใช้งานหุ่นยนต์ในระบบอัตโนมัติ
คุณสมบัติเด่น
- หุ่นยนต์แขนกล 6 แกน ควบคุมด้วย Arduino
- ใช้เซอร์โวมอเตอร์ 6 ตัวสำหรับฐาน บ่า ข้อศอก ข้อมือแนวตั้ง ข้อมือหมุน และกริปเปอร์
- โครงสร้างผลิตจากพลาสติก ABS น้ำหนักเบา เหมาะสำหรับงานฝึกทดลอง
- รองรับการประกอบ ดัดแปลง และเขียนโปรแกรมควบคุมได้หลากหลาย
- Braccio Shield V4 มีระบบ Soft-start และฟิวส์ป้องกันเซอร์โวมอเตอร์
- เหมาะสำหรับการเรียนรู้ Forward Kinematics และ Inverse Kinematics
- รองรับการต่อยอดร่วมกับกล้อง ระบบ Vision สายพานลำเลียง และเซนเซอร์
สเปกสินค้า (Specifications)
- รุ่นผู้ผลิต: TinkerKit Braccio US T050000
- จำนวนแกนการเคลื่อนไหว: 6 แกน
- วัสดุโครงสร้าง: พลาสติก ABS
- การควบคุม: Arduino และ Braccio Shield
- การเชื่อมต่อกับคอมพิวเตอร์: USB 2.0 ผ่านบอร์ด Arduino
- แหล่งจ่ายไฟ: 5 VDC 5 A
- น้ำหนักรวมเมื่อประกอบแล้ว: 792 กรัม
- ระยะเอื้อมแนวนอนสูงสุด: 80 เซนติเมตร
- ความสูงแนวตั้งสูงสุด: 52 เซนติเมตร
- เส้นผ่านศูนย์กลางฐาน: 14 เซนติเมตร
- ระยะเปิดกริปเปอร์สูงสุด: 90 มิลลิเมตร
- ความยาวสาย: 40 เซนติเมตร
- Payload ที่ระยะเอื้อม 32 เซนติเมตร: 150 กรัม
- Payload เมื่อจัดแขนในตำแหน่งระยะสั้นสุด: สูงสุด 400 กรัม
เซอร์โวมอเตอร์และช่วงการเคลื่อนไหว
- M1: SR431 Base ช่วง 0°–180°
- M2: SR431 Shoulder ช่วง 15°–165°
- M3: SR431 Elbow ช่วง 0°–180°
- M4: SR431 Wrist Vertical ช่วง 0°–180°
- M5: SR311 Wrist Rotation ช่วง 0°–180°
- M6: SR311 Gripper ช่วง 10°–73° โดย 10° คือเปิด และ 73° คือปิด
รายละเอียดเซอร์โวมอเตอร์
- SR431 Servo Motor จำนวน 4 ตัว ควบคุมด้วยสัญญาณ PWM Analog แรงบิด 14.5 kg·cm
- SR311 Servo Motor จำนวน 2 ตัว ควบคุมด้วยสัญญาณ PWM Analog แรงบิด 3.8 kg·cm
Braccio Shield V4
- ฟังก์ชัน Soft-start ช่วยให้แขนกลเริ่มทำงานอย่างนุ่มนวลในช่วง 8 วินาทีแรก
- Resettable Fuse ช่วยป้องกันความเสียหายเมื่อแขนกลชนหรือติดขัด
- M1 ถึง M4 จำกัดกระแสที่ 1.1 A
- M5 และ M6 จำกัดกระแสที่ 750 mA
- LED ON สีเขียวแสดงว่าชีลด์เปิดทำงาน
- LED OK สีเขียวแสดงว่าแรงดันไฟเลี้ยงถูกต้อง
- LED ERR สีแดงแสดงว่าแรงดันไฟเลี้ยงไม่ถูกต้อง
เอกสารและซอฟต์แวร์
ในชุด RBAE01 แบบชุดคิทประกอบด้วย
- ชิ้นส่วนแขนกลพลาสติก ABS จำนวน 21 ชิ้น
- สกรูจำนวน 21 ตัว
- แหวนรองจำนวน 16 ชิ้น
- น็อตหกเหลี่ยมจำนวน 7 ตัว
- สปริงจำนวน 2 ตัว
- เซอร์โวมอเตอร์ SR311 จำนวน 2 ตัว
- เซอร์โวมอเตอร์ SR431 จำนวน 4 ตัว
- Braccio Shield จำนวน 1 บอร์ด
- Power Supply 5 VDC 5 A จำนวน 1 ชุด
- ไขควงแฉกจำนวน 1 อัน
- Spiral Cable Protection Wrap จำนวน 1 ชุด
- แผ่นฐานบอกองศาขนาด 18 × 18 เซนติเมตร จำนวน 1 แผ่น
Arduino Braccio Robot Arm – Technical Specifications (Fully Assembled)

ตัวอย่างการประกอบชิ้นส่วน

นอกจากจะทำเป็นแขนกลแล้ว ผู้ใช้งานยังสามารถ ดัดแปลงให้ฐานของแขนกล สามารถติดตั้งอุปกรณ์อื่นๆ เพื่มเติมได้เช่น กล้อง โทรศัพท์ หรือ แผงโซล่าร์เซล เป็นต้น

ตัวอย่างโปรแกรม

เมื่อโหลดโค้ดข้างต้นแล้ว จะได้แขนกลเป็นลักษณะดังนี้

การเขียนโปรแกรมควบคุมแขนกลอย่างง่าย

ตัวอย่างโปรแกรม แขนกลหยิบลูกปิงปองที่อยู่บนพื้นขื้นมาโชว์แก่ผู้ควบคุม


ตัวอย่าง Arduino Code
- braccioOfUnoWiFi
- ciaoBraccio
- simpleMovements
- takethesponge
- testBraccio90
Braccio Arduino Library
/*
testBraccio90.ino
testBraccio90 is a setup sketch to check the alignment of all the servo motors
This is the first sketch you need to run on Braccio
When you start this sketch Braccio will be positioned perpendicular to the base
If you can't see the Braccio in this exact position you need to reallign the servo motors position
Created on 18 Nov 2015
by Andrea Martino
This example is in the public domain.
*/
#include <Braccio.h>
#include <Servo.h>
Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_ver;
Servo wrist_rot;
Servo gripper;
Braccio braccio = Braccio(base, shoulder, elbow, wrist_ver, wrist_rot, gripper);
void setup() {
//Initialization functions and set up the initial position for Braccio
//All the servo motors will be positioned in the "safety" position:
pinMode(12, OUTPUT); //you need to set HIGH the pin 12
digitalWrite(12, HIGH);
// initialization pin Servo motors
#if defined(ARDUINO_ARCH_SAMD)
base.attach(11);
shoulder.attach(7);
elbow.attach(9);
wrist_ver.attach(6);
wrist_rot.attach(8);
gripper.attach(3);
#else
base.attach(11);
shoulder.attach(10);
elbow.attach(9);
wrist_ver.attach(6);
wrist_rot.attach(5);
gripper.attach(3);
#endif
braccio.home();
}
void loop() {
/*
Step Delay: a milliseconds delay between the movement of each servo. Allowed values from 10 to 30 msec.
M1=base degrees. Allowed values from 0 to 180 degrees
M2=shoulder degrees. Allowed values from 15 to 165 degrees
M3=elbow degrees. Allowed values from 0 to 180 degrees
M4=wrist vertical degrees. Allowed values from 0 to 180 degrees
M5=wrist rotation degrees. Allowed values from 0 to 180 degrees
M6=gripper degrees. Allowed values from 10 to 73 degrees. 10: the toungue is open, 73: the gripper is closed.
*/
// the arm is aligned upwards and the gripper is closed
//(step delay, M1, M2, M3, M4, M5, M6);
braccio.ServoMovement(20, 90, 90, 90, 90, 90, 73);
}
Simple Movement
/*
simpleMovements.ino
This sketch simpleMovements shows how they move each servo motor of Braccio
Created on 18 Nov 2015
by Andrea Martino
This example is in the public domain.
*/
#include <Braccio.h>
#include <Servo.h>
Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_ver;
Servo wrist_rot;
Servo gripper;
Braccio braccio = Braccio(base, shoulder, elbow, wrist_ver, wrist_rot, gripper);
void setup() {
//Initialization functions and set up the initial position for Braccio
//All the servo motors will be positioned in the "safety" position:
pinMode(12, OUTPUT); //you need to set HIGH the pin 12
digitalWrite(12, HIGH);
// initialization pin Servo motors
#if defined(ARDUINO_ARCH_SAMD)
base.attach(11);
shoulder.attach(7);
elbow.attach(9);
wrist_ver.attach(6);
wrist_rot.attach(8);
gripper.attach(3);
#else
base.attach(11);
shoulder.attach(10);
elbow.attach(9);
wrist_ver.attach(6);
wrist_rot.attach(5);
gripper.attach(3);
#endif
braccio.home();
}
void loop() {
/*
Step Delay: a milliseconds delay between the movement of each servo. Allowed values from 10 to 30 msec.
M1=base degrees. Allowed values from 0 to 180 degrees
M2=shoulder degrees. Allowed values from 15 to 165 degrees
M3=elbow degrees. Allowed values from 0 to 180 degrees
M4=wrist vertical degrees. Allowed values from 0 to 180 degrees
M5=wrist rotation degrees. Allowed values from 0 to 180 degrees
M6=gripper degrees. Allowed values from 10 to 73 degrees. 10: the toungue is open, 73: the gripper is closed.
*/
//(step delay, M1, M2, M3, M4, M5, M6);
braccio.ServoMovement(20, 0, 15, 180, 170, 0, 73);
//Wait 1 second
delay(1000);
braccio.ServoMovement(20, 180, 165, 0, 0, 180, 10);
//Wait 1 second
delay(1000);
}
Braccio shield V4
- มี feature : “Soft-start” ฟังก์ชันนี้รวมอยู่ในฟังก์ชัน Braccio.begin() และสตาร์ท Braccio อย่างนุ่มนวลและปลอดภัยเพื่อปกป้องเซอร์โวมอเตอร์ในช่วง 8 วินาทีแรก
- “Soft-start” ทำงานทุกครั้งที่เราเรียกใช้ Braccio.begin() ในระหว่างเฟสนี้ ชิลด์ไม่ให้ระดับแรงดันไฟฟ้าสูงสุดแก่เซอร์โวมอเตอร์ และไม่ควรใช้ Braccio ยกของหนัก
- หาก Braccio เกิดการชนอะไรบางอย่างหรือถูกล็อค Resettable Fuse จะ Reset เพื่อป้องกัน ความเสียหาย
- จำเป็นต้องถอดสายไฟหรือถอดปลั๊กอะแดปเตอร์ และเสียบใหม่
Pin 12 ใช้เพื่อจัดการระดับแรงดันไฟฟ้าของ Soft-start (บน shield จะมีจุด dot แทน”12″)
หากคุณต้องการปิดใช้งานฟังก์ชัน Soft-start:
pinMode(12, OUTPUT); you need to set HIGH the pin 12 digitalWrite(12, HIGH); Braccio.begin(SOFT_START_DISABLED); and set a proper parameter to disable the soft start
มอเตอร์แต่ละตัวมีฟิวส์ป้องกัน:
- M1 ถึง M4 ถูกจำกัดไว้ที่ 1.1A
- M5 และ M6 ถูกจำกัดไว้ที่ 750mA
มอเตอร์เชื่อมต่อกับ Arduino pin
| Connector Name | Shield pin |
|---|---|
| M1 | 11 |
| M2 | 10 |
| M3 | 9 |
| M4 | 6 |
| M5 | 5 |
| M6 | 3 |
| I0 | A0 (aka 14) |
| I1 | A1 (15) |
| I2 | A2 (16) |
| I3 | A3 (17) |
| I4 | A4 (18) |
| I5 | A5 (19) |
| TWI | SCL, SDA |
| Serial | RX0, TX0 |
TWI แบบ 4 pin ช่วยให้บอร์ด Arduino สามารถสื่อสารกับอุปกรณ์ที่สนับสนุนโปรโตคอล TWI (Two Wire Interface) หรือ I2C (Inter-Integrated Circuit) ผ่าน Wire library
หมายเหตุ:
- บน Arduino UNO บัส I2C ใช้อินพุตแบบอะนาล็อก (A4 และ A5) ในขณะที่
- บน Arduino Mega บัส I2C จะอยู่ที่ pin 20 และ pin 21 การใช้ขั้วต่อ TWI บน UNO จะขัดขวาง การใช้อินพุตแบบอะนาล็อก (A4 และ A5)
- ขั้วต่อ SERIAL 4 pin ช่วยให้บอร์ดสามารถสื่อสารกับอุปกรณ์อื่นๆ ที่สนับสนุนการสื่อสารแบบ SERIAL
- หากกำลังมีการสื่อสารข้อมูลระหว่างคอมพิวเตอร์ผ่าน SERIAL อยู่ก่อน SERIAL นี้จะไม่ทำงาน
- ปุ่มกดขนาด 6 มม เพื่อรีเซ็ตการทำงานบอร์ด
- DC แจ็คสำหรับแหล่งจ่ายไฟ 5V/A
บอร์ดที่เข้ากันได้:
- Uno, Uno SMD, Uno WiFi, Due, Mega 2560, Ethernet, Leonardo, Leonardo ETH, M0, M0 Pro, Yun*, Tian*
การคำนวณ Kinematic ผกผัน Inverse Kinematic Calculations
- พิกัด x, y, z สำหรับจุดยึด
- มุมของด้ามจับจากแนวนอน
- ความกว้างของ Grippers
ใช้เซอร์โวมอเตอร์หกตัวที่ควบคุม ตำแหน่งของแขนและกริปเปอร์ จะใช้ในการดำเนินการจลนศาสตร์ผกผัน inverse kinematic ที่จำเป็น ในการคำนวณเพื่อกำหนดมุมของเซอร์โวมอเตอร์แต่ละตัวเพื่อวางตำแหน่งกริปเปอร์ในพิกัด x, y, z
เซอร์โวมอเตอร์หกตัวที่ควบคุมการเคลื่อนไหวของ
- แขนหุ่นยนต์:
- ฐาน
- บ่า
- ข้อศอก
- ข้อมือ (การหมุนข้อมือ)
- มือจับ
การไปยังพิกัด x, y, z สำหรับแขนถูกกำหนดไว้ดังนี้:
- ฐานของแขนหุ่นยนต์วางอยู่บนระนาบ x, y
- แกนแนวตั้ง z ตั้งฉากกับระนาบ x, y
- ศูนย์กลางของฐานถูกกำหนดเป็น x, y, z = 0, 0, 0

แอปพลิเคชันตัวอย่าง
- ยกวัตถุจากตำแหน่งที่ระบุ และย้ายไปวางที่ตำแหน่งปลายทาง





รีวิว
ยังไม่มีบทวิจารณ์