Thông số kỹ thuật:
- Chất liệu: Gỗ
- Ốc + vít sử dụng cho lắp ghép
- Sử dụng 4 servo mg90 để lắp ráp hoàn thiện
Hướng dẫn sử dụng tham khảo:
Sử dụng 2 joystick đơn kết nối với Arduino Uno để điều khiển 4 servo.
- Sau khi lắp ráp sản phẩm như hình tiến hành kết nối: Cấp nguồn ngoài cho 4 servo, nhớ kết nối chung Mass với Arduino.
- Cấp nguồn cho joystick trực tiếp từ nguồn 5V arduino, chân tín hiệu của joystick và servo được kết nối với arduino.
————————————CODE THAM KHẢO—————————————
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
int pos1=90, pos2=60, pos3=90, pos4=45;
const int right_X = A2;
const int right_Y = A5;
const int right_key = 7;
const int left_X = A3;
const int left_Y = A4;
const int left_key = 8;
int x1,y1,z1;
int x2,y2,z2;
void setup()
{
// boot posture
myservo1.write(pos1);
delay(1000);
myservo2.write(pos2);
myservo3.write(pos3);
myservo4.write(pos4);
delay(1500);
pinMode(right_key, INPUT);
pinMode(left_key, INPUT);
Serial.begin(9600);
}
void loop()
{
myservo1.attach(A1);
myservo2.attach(A0);
myservo3.attach(6);
myservo4.attach(9);
x1 = analogRead(right_X);
y1 = analogRead(right_Y);
z1 = digitalRead(right_key);
x2 = analogRead(left_X);
y2 = analogRead(left_Y);
z2 = digitalRead(left_key);
// kẹp
zhuazi();
// xoay
zhuandong();
// servo trái
xiaobi();
// servo phải
dabi();
}
//kẹp
void zhuazi()
{
//claw
if(x2<300)
{
pos4=pos4-2;
myservo4.write(pos4);
delay(5);
if(pos4<45)
{
pos4=45;
}
}
if(x2>800)
{
pos4=pos4+8;
myservo4.write(pos4);
delay(5);
if(pos4>90)
{
pos4=90;
}
}
}
//******************************************************
// xoay
void zhuandong()
{
if(x1<300)
{
pos1=pos1-1;
myservo1.write(pos1);
delay(5);
if(pos1<1)
{
pos1=0;
}
}
if(x1>800)
{
pos1=pos1+1;
myservo1.write(pos1);
delay(5);
if(pos1>180)
{
pos1=180;
}
}
}
//**********************************************************/
//servo trái
void xiaobi()
{
if(y1>800)
{
pos2=pos2-1;
myservo2.write(pos2);
delay(5);
if(pos2<15)
{
pos2=15;
}
}
if(y1<300)
{
pos2=pos2+1;
myservo2.write(pos2);
delay(5);
if(pos2>120)
{
pos2=120;
}
}
}
//*************************************************************/
// servo phải
void dabi()
{
if(y2<300)
{
pos3=pos3+1;
myservo3.write(pos3);
delay(5);
if(pos3>140)
{
pos3=140;
}
}
if(y2>800)
{
pos3=pos3-1;
myservo3.write(pos3);
delay(5);
if(pos3<30)
{
pos3=30;
}
}
}







