본문 바로가기
핸드이노 (아두이노 의수)

핸드이노 시리얼 통신으로 가위, 바위, 보 제어하기

by SwMaker_Jun 2023. 5. 3.
728x90
반응형

 

 

 

1. 핸드이노 시리얼 통신으로 무조건 이기는 가위, 바위, 보 코드 만들기

      - 아두이노 시리얼 통신을 통해 문자가 전송되어 올때 그것을 읽어 각 문자에 대해 조건문으로 

        핸드이노 손동작을 만들어 보자

 

        ■ rock 대신  '' r " 로 짧게 변환  -->  핸드이노 보자기 출력

        ■ paper 대신  '' p " 로 짧게 변환  --> 핸드이노 가위 출력

        ■ scissors 대신  '' s " 로 짧게 변환  --> 핸드이노 주먹 출력

 

 

 

2. 코드 설명

============================================================================

 


#include<Servo.h> 
Servo servo_1;
Servo servo_2;
Servo servo_3;
Servo servo_4;
Servo servo_5;      

void setup() {
  Serial.begin(9600);    // void setup()함수는 수정하지 말것  
  servo_1.attach(12); 
  servo_2.attach(10);
  servo_3.attach(9);
  servo_4.attach(6);
  servo_5.attach(2); 
  delay(500);
  servo_1.write(165);
  servo_2.write(165);
  servo_3.write(165);
  servo_4.write(165);
  servo_5.write(165);
  delay(5000);
}


void loop() {
  while (Serial.available() > 0) {                   // 시리얼 통신으로 데이터가 들어올 때까지 대기
    char data = Serial.read();                        // 시리얼 통신으로 받은 데이터를 읽어옴
    if (data == 'r') {                                        // 만약 데이터가 'r'이면
      servo_1.write(165);                               // 핸드이노 보자기 출력
      servo_2.write(165);
      servo_3.write(165);
      servo_4.write(165);
      servo_5.write(165);   
    }
    if (data == 'p') {                                         // 만약 데이터가 'p'이면
      servo_1.write(0);                                    // 핸드이노 가위 출력
      servo_2.write(165);
      servo_3.write(165);
      servo_4.write(0);
      servo_5.write(0); 
    }
    if (data == 's') {                                         // 만약 데이터가 's'이면
      servo_1.write(0);                                    // 핸드이노 주먹 출력
      servo_1.write(0);
      servo_2.write(0);
      servo_3.write(0);
      servo_4.write(0);
      servo_5.write(0); 
    }
    if (data == 'n') {                                          // 만약 데이터가 'n'이면
      servo_1.write(165);                                 // 핸드이노 손펴있는 보자기 출력
      servo_2.write(165);
      servo_3.write(165);
      servo_4.write(165);
      servo_5.write(165); 
    }
  }
}

 

===============================================================================

 

아두이노 코드 다운받기

handino_serial__scissors.ino
0.00MB

 

 

 

3. 시리얼 모니터를 켜고 문자를 전송하기

      아래와 같이 시리얼 모니터에 각  " r " / " s " / " p " / " n "  문자를 전송하여 

      핸드이노가 작동하는지 테스트 해보자.

시리얼 모니터를 띄우고 각 문자를 넣고 전송을 클릭

 

시리얼통신으로 핸드이노가 제어되는 영상

 

 

 

 

728x90
반응형