개발프로젝트

아두이노 로봇팔 코드

Hs’s Coding vlog 2024. 1. 3. 22:47

이번에 로봇팔을 만들게 되었는데 나는 로봇팔을 담당을 하게 되었다(ㅎㅎ)
로봇팔을 조이스틱을 활용해서 로봇팔을 움직이게 하는 거였는데 초반에는 코드를 어떻게 작성을 해야할지 
굉장히 헷갈렸지만 상단부 하단부 로봇의 동작들을 구분해서 코드를 작성을 해보니 해결이 되었다.

하단의 코드를 작성하면 로봇팔을 원하는대로 움직일수가 있다.

#include <Servo.h>

Servo motor1;  // 하단부 첫 번째 모터
Servo motor2;  // 하단부 두 번째 모터
Servo motor3;  // 상층부 모터 1
Servo motor4;  // 상층부 모터 2

// 하단부 조이스틱 핀 설정
int joyX1 = A0; // 하단부 조이스틱 X축
int joyY1 = A1; // 하단부 조이스틱 Y축

// 상층부 조이스틱 핀 설정
int joyX2 = A4; // 상층부 조이스틱 X축
int joyY2 = A5; // 상층부 조이스틱 Y축

void setup() {
  motor1.attach(9);  // 하단부 첫 번째 모터 핀
  motor2.attach(10); // 하단부 두 번째 모터 핀
 
  motor3.attach(7); // 상층부 모터 핀 1
  motor4.attach(4); // 상층부 모터 핀 2

  pinMode(joyX1, INPUT);
  pinMode(joyY1, INPUT);
  pinMode(joyX2, INPUT);
  pinMode(joyY2, INPUT);
}

void loop() {
  int xVal1 = analogRead(joyX1);
  int yVal1 = analogRead(joyY1);
  int xVal2 = analogRead(joyX2);
  int yVal2 = analogRead(joyY2);

  int m1Angle = map(xVal1, 0, 1023, 0, 180); // 하단부 첫 번째 모터 각도
  int m2Angle = map(yVal1, 0, 1023, 0, 180); // 하단부 두 번째 모터 각도

  int m3Angle = map(xVal2, 0, 1023, 0, 180); // 상층부 첫 번째 모터 각도
  int m4Angle = map(yVal2, 0, 1023, 0, 180); // 상층부 두 번째 모터 각도

  motor1.write(m1Angle);
  motor2.write(m2Angle);
  motor3.write(m3Angle);
  motor4.write(m4Angle);
}

 

작동하는 영상도있으니 참고할 분들은 참고하시길..

 

 

 

'개발프로젝트' 카테고리의 다른 글

블록체인 개발프로젝트  (0) 2023.12.26