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; } } }