学校举办的机器人大赛需要用arduino uno开发板做一辆小车,同时需要我们配套制作一个机械臂安装在上面。
于是我用储存了好久的纸板制作了一个非常简陋的“机械臂”--↑↑↑↑↑
但我忽略了一个问题:
纸板太重了,舵机运行的时候只能自转,无法带动机械臂旋转。只有加重舵机的质量(用手按住舵机)才能够控制机械臂旋转。
下面是我的arduino代码,非常繁琐(QAQ)
#include <SoftwareSerial.h>
#include <Servo.h>
#define Servo_1 2
#define Servo_2 3
#define Servo_3 12
#define Servo_4 13
SoftwareSerial BT(8,9);
int serialData;
int Pin_1 = 5;
int Pin_2 = 6;
int Pin_3 = 10;
int Pin_4 = 11;
int a = 0,b = 0,c = 0,d = 0;
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
void setup() {
pinMode(Pin_1,OUTPUT);
pinMode(Pin_2,OUTPUT);
pinMode(Pin_3,OUTPUT);
pinMode(Pin_4,OUTPUT);
pinMode(Servo_1,OUTPUT);
myservo1.attach(Servo_1);
pinMode(Servo_2,OUTPUT);
myservo2.attach(Servo_2);
pinMode(Servo_3,OUTPUT);
myservo3.a ttach(Servo_3);
pinMode(Servo_4,OUTPUT);
myservo4.attach(Servo_4);
Serial.begin(9600);
BT.begin(9600);
}
void loop() {
if( BT.available()>0 ){
serialData = BT.read();
if(serialData == '1'){
digitalWrite(Pin_1,LOW);
digitalWrite(Pin_2,HIGH);
digitalWrite(Pin_3,LOW);
digitalWrite(Pin_4,HIGH);
} else if(serialData == '2')
{
digitalWrite(Pin_1,HIGH);
digitalWrite(Pin_2,LOW);
digitalWrite(Pin_3,LOW);
digitalWrite(Pin_4,HIGH);
} else if(serialData == '0'){
digitalWrite(Pin_1,LOW);
digitalWrite(Pin_2,LOW);
digitalWrite(Pin_3,LOW);
digitalWrite(Pin_4,LOW);
} else if(serialData == '3')
{
digitalWrite(Pin_1,LOW);
digitalWrite(Pin_2,HIGH);
digitalWrite(Pin_3,HIGH);
digitalWrite(Pin_4,LOW);
} else if(serialData == '4')
{
digitalWrite(Pin_1,HIGH);
digitalWrite(Pin_2,LOW);
digitalWrite(Pin_3,HIGH);
digitalWrite(Pin_4,LOW);
} else if(serialData == 'a')
{
if(a>-180) a -= 10;
myservo1.write(a);
} else if(serialData == 'b')
{
if(a<180) a += 10;
myservo1.write(a);
} else if(serialData == 'c')
{
if(b>-180) b -= 10;
myservo2.write(b);
} else if(serialData == 'd')
{
if(b<180) b += 10;
myservo2.write(b);
} else if(serialData == 'e')
{
if(c>-180) c -= 10;
myservo3.write(c);
} else if(serialData == 'f')
{
if(c<180) c += 10;
myservo3.write(c);
} else if(serialData == 'g')
{
if(d>-180) d -= 10;
myservo4.write(d);
} else if(serialData == 'h')
{
if(d<180) d += 10;
myservo4.write(d);
}
}
}
我试图把舵机和机械臂黏在一起,但无奈并没有用,手边材料有限——只有牙签,纸板等。所以最终也没能得到解决。
以后再想想办法吧,提醒大家如果制作机械臂的时候一定要注意这一点,不要重蹈我的覆辙。