1. 프롬프트

<aside>

claude에게

로보로보 ai자율주행 자동차 키트 샀는데 기본적인 바퀴 동작들이 되는지 확인할 수 있는 테스트 코드 만들어줘

</aside>

2. 결과 코드

// 로보로보 AI 자율주행 자동차 기본 동작 테스트 코드

// 모터 핀 설정 (실제 키트의 핀 번호에 맞게 수정하세요)
#define LEFT_MOTOR_PIN1 5
#define LEFT_MOTOR_PIN2 6
#define RIGHT_MOTOR_PIN1 9
#define RIGHT_MOTOR_PIN2 10

// 모터 속도 설정 (0~255)
int motorSpeed = 150;

void setup() {
  // 시리얼 통신 초기화
  Serial.begin(9600);
  Serial.println("로보로보 자동차 테스트 시작!");
  Serial.println("=========================");
  
  // 모터 핀을 출력으로 설정
  pinMode(LEFT_MOTOR_PIN1, OUTPUT);
  pinMode(LEFT_MOTOR_PIN2, OUTPUT);
  pinMode(RIGHT_MOTOR_PIN1, OUTPUT);
  pinMode(RIGHT_MOTOR_PIN2, OUTPUT);
  
  // 초기화 대기
  delay(2000);
}

void loop() {
  // 1. 전진 테스트
  Serial.println("1. 전진 테스트");
  moveForward();
  delay(2000);
  stopMotors();
  delay(1000);
  
  // 2. 후진 테스트
  Serial.println("2. 후진 테스트");
  moveBackward();
  delay(2000);
  stopMotors();
  delay(1000);
  
  // 3. 좌회전 테스트
  Serial.println("3. 좌회전 테스트");
  turnLeft();
  delay(1500);
  stopMotors();
  delay(1000);
  
  // 4. 우회전 테스트
  Serial.println("4. 우회전 테스트");
  turnRight();
  delay(1500);
  stopMotors();
  delay(1000);
  
  // 5. 제자리 좌회전 테스트
  Serial.println("5. 제자리 좌회전 테스트");
  spinLeft();
  delay(1500);
  stopMotors();
  delay(1000);
  
  // 6. 제자리 우회전 테스트
  Serial.println("6. 제자리 우회전 테스트");
  spinRight();
  delay(1500);
  stopMotors();
  delay(1000);
  
  // 7. 속도 변화 테스트
  Serial.println("7. 속도 변화 테스트");
  testSpeedControl();
  delay(1000);
  
  Serial.println("=========================");
  Serial.println("모든 테스트 완료! 5초 후 재시작");
  Serial.println("=========================");
  delay(5000);
}

// 전진
void moveForward() {
  analogWrite(LEFT_MOTOR_PIN1, motorSpeed);
  analogWrite(LEFT_MOTOR_PIN2, 0);
  analogWrite(RIGHT_MOTOR_PIN1, motorSpeed);
  analogWrite(RIGHT_MOTOR_PIN2, 0);
}

// 후진
void moveBackward() {
  analogWrite(LEFT_MOTOR_PIN1, 0);
  analogWrite(LEFT_MOTOR_PIN2, motorSpeed);
  analogWrite(RIGHT_MOTOR_PIN1, 0);
  analogWrite(RIGHT_MOTOR_PIN2, motorSpeed);
}

// 좌회전 (왼쪽 모터 느리게)
void turnLeft() {
  analogWrite(LEFT_MOTOR_PIN1, motorSpeed / 2);
  analogWrite(LEFT_MOTOR_PIN2, 0);
  analogWrite(RIGHT_MOTOR_PIN1, motorSpeed);
  analogWrite(RIGHT_MOTOR_PIN2, 0);
}

// 우회전 (오른쪽 모터 느리게)
void turnRight() {
  analogWrite(LEFT_MOTOR_PIN1, motorSpeed);
  analogWrite(LEFT_MOTOR_PIN2, 0);
  analogWrite(RIGHT_MOTOR_PIN1, motorSpeed / 2);
  analogWrite(RIGHT_MOTOR_PIN2, 0);
}

// 제자리 좌회전
void spinLeft() {
  analogWrite(LEFT_MOTOR_PIN1, 0);
  analogWrite(LEFT_MOTOR_PIN2, motorSpeed);
  analogWrite(RIGHT_MOTOR_PIN1, motorSpeed);
  analogWrite(RIGHT_MOTOR_PIN2, 0);
}

// 제자리 우회전
void spinRight() {
  analogWrite(LEFT_MOTOR_PIN1, motorSpeed);
  analogWrite(LEFT_MOTOR_PIN2, 0);
  analogWrite(RIGHT_MOTOR_PIN1, 0);
  analogWrite(RIGHT_MOTOR_PIN2, motorSpeed);
}

// 정지
void stopMotors() {
  analogWrite(LEFT_MOTOR_PIN1, 0);
  analogWrite(LEFT_MOTOR_PIN2, 0);
  analogWrite(RIGHT_MOTOR_PIN1, 0);
  analogWrite(RIGHT_MOTOR_PIN2, 0);
}

// 속도 변화 테스트
void testSpeedControl() {
  Serial.println("  - 저속 전진");
  motorSpeed = 100;
  moveForward();
  delay(1500);
  
  Serial.println("  - 중속 전진");
  motorSpeed = 150;
  moveForward();
  delay(1500);
  
  Serial.println("  - 고속 전진");
  motorSpeed = 200;
  moveForward();
  delay(1500);
  
  motorSpeed = 150; // 기본 속도로 복원
  stopMotors();
}

3. 문제점