[Robot Arm Arduino Project] RAAP프로젝트 -아두이노 IDE 작성, 테스트
2024. 1. 23. 09:13ㆍUnity
728x90
반응형
전선도 다 이었고 이제 전원선을 연결해서 전원을 공급하고, USB를 끼워 아두이노 IDE 코드를 전송한다.
아래는 서보모터를 제어하기 위한 코드이다.
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#define MIN_PULSE_WIDTH 650
#define MAX_PULSE_WIDTH 2350
#define FREQUENCY 50
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();
int potWrist = A3;
int potElbow = A2; //Assign Potentiometers to pins on Arduino Uno
int potShoulder = A1;
int potBase = A0;
int hand = 11;
int wrist = 12;
int elbow = 13; //Assign Motors to pins on Servo Driver Board
int shoulder = 14;
int base = 15;
void setup()
{
delay(5000); // <-- So I have time to get controller to starting position
pwm.begin();
pwm.setPWMFreq(FREQUENCY);
pwm.setPWM(11, 0, 90); //Set Gripper to 90 degrees (Close Gripper)
pinMode(13,INPUT_PULLUP);
Serial.begin(9600);
}
void moveMotor(int controlIn, int motorOut)
{
int pulse_wide, pulse_width, potVal;
potVal = analogRead(controlIn); //Read value of Potentiometer
pulse_wide = map(potVal, 800, 240, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
pulse_width = int(float(pulse_wide) / 1000000 * FREQUENCY * 4096); //Map Potentiometer position to Motor
pwm.setPWM(motorOut, 0, pulse_width);
}
void loop()
{
moveMotor(potWrist, wrist);
moveMotor(potElbow, elbow);
//Assign Motors to corresponding Potentiometers
moveMotor(potShoulder, shoulder);
moveMotor(potBase, base);
int pushButton = digitalRead(13);
if(pushButton == LOW)
{
pwm.setPWM(hand, 0, 180); //Keep Gripper closed when button is not pressed
Serial.println("Grab");
}
else
{
pwm.setPWM(hand, 0, 90); //Open Gripper when button is pressed
Serial.println("Release");
}
}
테스트를 하니 잘 돌아가는 모터가 있었고 아닌 모터가 있었다. 작동되지 않은 부분에 대해 많은 가설을 세웠는데, 선이 단선되어 있는지, 맞는 핀에 꽂았는지, 코드가 잘못된 부분은 없는 지를 계속 살펴보고 수정하였다.
그러는 도중 코드를 수정하고 합선 여부를 살피다가 서보모터 드라이브에서 연기가 났다...
자세히 보면 POWER의 전원이 들어오는 부분 옆이 까맣게 탄 것을 볼 수 있다... 코드의 수정 + 포텐셜미터 부분 합선 문제인 것 같고 서보모터 드라이브는 다시 사서 테스트 해야할 것 같다.
이게 문제가 원래는 하나씩의 모터를 따로 테스트해보고 결합하는 형식으로 갔었어야 했는데 지금와서 보니 그렇게 진행하지 못했던 부분이 아쉽긴 하다. 한꺼번에 끼워놓고 테스트를 하려니 어떤 부분이 문제인지 파악하기가 어렵게 되었다.
728x90
반응형
'Unity' 카테고리의 다른 글
[Robot Arm Arduino Project] RAAP프로젝트 -테스트(3) 서보 모터 떨림 고치기 (0) | 2024.02.01 |
---|---|
[Robot Arm Arduino Project] RAAP프로젝트 -테스트(2), 회전 값 출력 (0) | 2024.01.26 |
[Robot Arm Arduino Project] RAAP프로젝트 -회로 완성 (0) | 2024.01.17 |
[Robot Arm Arduino Project] RAAP프로젝트 -컨트롤 로봇 조립, 전선 연결 (0) | 2024.01.11 |
[Robot Arm Arduino Project] RAAP프로젝트 -하부 로봇 조립 (1) | 2024.01.09 |