这是一个关于 SCARA 臂的项目,它由操纵杆控制并通过蓝牙模块发送位置。
这个项目诞生于我们决定使用 Arduino Uno 制作一个小型机械臂,该机械臂由一个按钮控制(用于控制伺服器下降)
一个控制器由一个钢球和一个操纵杆组成(里面有两个电位器,每个电位器“驱动”一个伺服器)。
我们在网上看到后,决定制作一种“不寻常”的机械臂:SCARA。
零件组装
组装技巧:3D打印部件上的孔可能太小,无法安装热嵌件(这取决于热嵌件的外径,因此建议使用直径为3毫米或5毫米的嵌件),所以您必须在打印部件上钻孔,使孔达到嵌件的深度和直径。在我们的案例中,法兰上的孔也太小,所以我们不得不使用3毫米钻头进行钻孔。
组装 Scara 机器人的所有部件并不难。主要步骤如下:
1. 3D打印Scara的塑料部件(我们使用了笛卡尔3D打印机);
2.安装插件(最简单的方法是用烙铁加热);
3. 将第一个 DS3218MG 伺服器放入“底座”中,并将“顶部”部件放在其上,然后用 M4x10 螺钉(用于伺服器)和 M4x20 螺钉(用于“顶部”)挡住这些部件;
4. 用四颗M3x15螺钉和螺母将“机械臂”下侧的法兰挡住(螺母将固定在舵机和法兰之间)。然后将一个垫圈和一个M3x15螺钉放入中间的孔中;
5. 将钢球放入其座中,然后将“臂”放在其上(对于“分配器”部分重复这两个步骤(4-5));
6.用四颗M4螺丝将另一个DS3218MG伺服器固定在“分配器”上;
7.将SG90(倒置)放在分配器的支架上,用热胶将其封住;
工作原理
Scara 的操作过程非常简单。操纵杆中有两个电位器(也有一个按钮,但我们决定在本项目中使用单独的按钮),机器人的整个机构中有三个伺服器(两个“大”且强大的伺服器和一个小的伺服器),因此我们决定用一个电位器驱动每个 DS3218MG,用按钮驱动另一个伺服器:更具体地说,每当电位器到达其一端时,伺服器就会向右或向左旋转 5°(取决于电位器到达的一侧),并且每次按下按钮时,较小的伺服器就会掉落一个钢珠。







项目代码
#include <Servo.h> //include the library about servo
Servo servo_base; //give a name to the servo
Servo servo_arm;
Servo servo_dispenser;
int val = 0;
int val1 = 0;
int n = 0;
int t = 0;
int pos = 0;
int pos1 = 0;
int pos2 = 0;
void setup() {
servo_base.attach(9); //set the pin 9 for servo
servo_arm.attach(10);
servo_dispenser.attach(11);
pinMode(A0, INPUT); //set the pin A0 and A1 to receive data from the joystick
pinMode(A1, INPUT);
pinMode(8, INPUT); //set the pin 8 to receive data from the buttom
Serial.begin(9600); //start the serial monitor
}
void loop() {
val = int (map(analogRead(A0), 0, 1023, -550, 550) / 512); //map the value read from A0 ad take the integer
val1 = int (map(analogRead(A1), 0, 1023, -550, 550) / 512);
pos2 = map(digitalRead(8), 0, 1, 130, 100);
pos = n + 1 * val; //add up the value with the previous
pos1 = t + 1 * val1;
pos = constrain(pos, 0, 180); //limit the value of the variable between 0 and 180
pos1 = constrain(pos1, 0, 180);
servo_base.write(pos); //turn the servo of the angle we want
servo_arm.write(pos1);
servo_dispenser.write(pos2);
n = pos; //store the position
t = pos1;
delay(10);
Serial.print("servo-base "); // send the value to the bluetooth
Serial.print(pos);
Serial.print("servo-arm ");
Serial.print(pos1);
Serial.print("servo-dispenser ");
Serial.println(pos2);
}
附录
【Arduino 动手做】由操纵杆控制的 SCARA 机械臂
项目链接:https://www.hackster.io/311549/scara-arm-controlled-by-joystick-486870
项目作者:Fil2002•恩里科·泰斯塔2002
项目视频 :https://www.youtube.com/watch?v=odhzglLJJUI
项目代码:https://www.hackster.io/code_files/409605/download
3D 文件:
https://hacksterio.s3.amazonaws.com/uploads/attachments/1030502/base_ONlQ7vP0SX.stl
https://hacksterio.s3.amazonaws.com/uploads/attachments/1030503/arm_pUrL8jj9RV.stl
https://hacksterio.s3.amazonaws.com/uploads/attachments/1030505/funnel_ylHEXpXi9P.stl

评论