편집 기록

편집 기록
  • 프로필 김선우님의 편집
    날짜2018.06.21

    미리 패턴을 지정해놓고 기울기센서가 전,후,좌,우로 패턴에 맞게 움직이면 어떤 신호를 내보내는 코드를 짜려고 합니다.


    안녕하세요 졸업작품으로 패턴에 맞춰 기울기를 조정하면 특정한 출력을 내보내는 것을 하려고합니다.

    이미지 이미지 이미지

    위의 기울기 센서를 사용하는데요

    예를 들어 패턴을 전,후,좌,우로 하겠다고 설정해놓으면 그에 따라서 기기를 전,후,좌,우로 기울여야 특정한 신호를 내보내려고 합니다. 아두이노를 사용하고있습니다. 제가 지금까지 해놓은 것은 각각기울기에 따라서 led를 출력하는 것 까지는 해보았습니다. 그런데 그 이후로 패턴을 하나 지정해서 그거에 맞추면 신호를 내보내게끔 해야하는게 어떻게 해야할지 감이 오지않아서 여러분에게 조언을 구합니다ㅠ 이미지 이미지

    여기까지는 기울어진 방향에 따라서 각 LED를 켜는 동작이구요

    그 아래 추가로 이미지 이걸 작성해봤는데요 전혀 동작을 하질 않았습니다ㅠ 어떻게 코드를 짜야될지 조언 부탁드립니다 감사합니다!! 전후좌우 또는 어떤방향 순서든 상관없이 하나의 패턴을 만들어놓고 그 값과 현재값을 비교하면서 맞으면 계속 진행하고 다 맞을 경우 A스피커에 소리를 출력하고 틀리면 RESET하면서 B스피커에 소리를 출력하는 코드를 어떻게 설정해야할지 모르겠습니다 도움 부탁드립니다. 감사합니다.

    
    int  OUTA;
    int  OUTB;
    int  Red = A0;        //블루투스에 신호를 보내는 것을 led키는걸로 먼저 대신해보려고 합니다
    int sensor;            // 이번에 새로 추가해보았습니다
    typedef enum {UP, DOWN, LEFT, RIGHT} direction;
    direction sequence[] = {UP, DOWN, LEFT}; //상-하-좌의 패턴
    int position = 0;
    
    void setup() {
      pinMode(2, OUTPUT);
      pinMode(3, OUTPUT);
      pinMode(4, OUTPUT);
      pinMode(5, OUTPUT);
      pinMode(Red, OUTPUT);
      Serial.begin(9600);
    }
    void loop() {
      OUTA = digitalRead(6);
      OUTB = digitalRead(7);
      sensor = 2*OUTA + OUTB;   // OUTA와 OUTB를 sensor라는 하나의 값으로 표현하여 패턴비교를;쉽게하려고하는데 잘한게 맞는건가요??ㅎ
      if (OUTA == 0 && OUTB == 0) {
        digitalWrite(2, HIGH);
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
      }
      if (OUTA == 1 && OUTB == 0) {
        digitalWrite(2, LOW);
        digitalWrite(3, HIGH);
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
      }
      if (OUTA == 0 && OUTB == 1) {
        digitalWrite(2, LOW);
        digitalWrite(3, LOW);
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
      }
      if (OUTA == 1 && OUTB == 1) {
        digitalWrite(2, LOW);
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        digitalWrite(5, HIGH);
      }
      Serial.print("Photo 1:  ");                // outa와 outb그리고 센서값을 어떻게 읽는지 눈으로 확인하려고 만들었습니다
      Serial.print(digitalRead(6), DEC);
      Serial.print(" ; ");
      Serial.print("Photo 2:  ");
      Serial.println(digitalRead(7), DEC);
      Serial.print(" ; ");
      Serial.print("current_direction:  ");
      Serial.println(sensor, DEC);
      delay(1000);
      direction current_direction;
      //OUTA와 OUTB의 값에 따라 current_direction의 값을 저장하세요. 그 다음에
    
      if (sequence[position] == current_direction) {
        position++;
        if (position == 3)
        {
          digitalWrite(Red, LOW);
        }
      }
      else {
        int position = 0;
        digitalWrite(Red, HIGH);
      }
    }
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.05.30

    미리 패턴을 지정해놓고 기울기센서가 전,후,좌,우로 패턴에 맞게 움직이면 어떤 신호를 내보내는 코드를 짜려고 합니다.


    안녕하세요 졸업작품으로 패턴에 맞춰 기울기를 조정하면 특정한 출력을 내보내는 것을 하려고합니다.

    이미지 이미지 이미지

    위의 기울기 센서를 사용하는데요

    예를 들어 패턴을 전,후,좌,우로 하겠다고 설정해놓으면 그에 따라서 기기를 전,후,좌,우로 기울여야 특정한 신호를 내보내려고 합니다. 아두이노를 사용하고있습니다. 제가 지금까지 해놓은 것은 각각기울기에 따라서 led를 출력하는 것 까지는 해보았습니다. 그런데 그 이후로 패턴을 하나 지정해서 그거에 맞추면 신호를 내보내게끔 해야하는게 어떻게 해야할지 감이 오지않아서 여러분에게 조언을 구합니다ㅠ 이미지 이미지

    여기까지는 기울어진 방향에 따라서 각 LED를 켜는 동작이구요

    그 아래 추가로 이미지 이걸 작성해봤는데요 전혀 동작을 하질 않았습니다ㅠ 어떻게 코드를 짜야될지 조언 부탁드립니다 감사합니다!! 전후좌우 또는 어떤방향 순서든 상관없이 하나의 패턴을 만들어놓고 그 값과 현재값을 비교하면서 맞으면 계속 진행하고 다 맞을 경우 A스피커에 소리를 출력하고 틀리면 RESET하면서 B스피커에 소리를 출력하는 코드를 어떻게 설정해야할지 모르겠습니다 도움 부탁드립니다. 감사합니다.

    
    int  OUTA;
    int  OUTB;
    int  Red = A0;        //블루투스에 신호를 보내는 것을 led키는걸로 먼저 대신해보려고 합니다
    int sensor;            // 이번에 새로 추가해보았습니다
    typedef enum {UP, DOWN, LEFT, RIGHT} direction;
    direction sequence[] = {UP, DOWN, LEFT}; //상-하-좌의 패턴
    int position = 0;
    
    void setup() {
      pinMode(2, OUTPUT);
      pinMode(3, OUTPUT);
      pinMode(4, OUTPUT);
      pinMode(5, OUTPUT);
      pinMode(Red, OUTPUT);
      Serial.begin(9600);
    }
    void loop() {
      OUTA = digitalRead(6);
      OUTB = digitalRead(7);
      sensor = 2*OUTA + OUTB;   // OUTA와 OUTB를 sensor라는 하나의 값으로 표현하여 패턴비교를;쉽게하려고하는데 잘한게 맞는건가요??ㅎ
      if (OUTA == 0 && OUTB == 0) {
        digitalWrite(2, HIGH);
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
      }
      if (OUTA == 1 && OUTB == 0) {
        digitalWrite(2, LOW);
        digitalWrite(3, HIGH);
        digitalWrite(4, LOW);
        digitalWrite(5, LOW);
      }
      if (OUTA == 0 && OUTB == 1) {
        digitalWrite(2, LOW);
        digitalWrite(3, LOW);
        digitalWrite(4, HIGH);
        digitalWrite(5, LOW);
      }
      if (OUTA == 1 && OUTB == 1) {
        digitalWrite(2, LOW);
        digitalWrite(3, LOW);
        digitalWrite(4, LOW);
        digitalWrite(5, HIGH);
      }
      Serial.print("Photo 1:  ");                // outa와 outb그리고 센서값을 어떻게 읽는지 눈으로 확인하려고 만들었습니다
      Serial.print(digitalRead(6), DEC);
      Serial.print(" ; ");
      Serial.print("Photo 2:  ");
      Serial.println(digitalRead(7), DEC);
      Serial.print(" ; ");
      Serial.print("current_direction:  ");
      Serial.println(sensor, DEC);
      delay(1000);
      direction current_direction;
      //OUTA와 OUTB의 값에 따라 current_direction의 값을 저장하세요. 그 다음에
    
      if (sequence[position] == current_direction) {
        position++;
        if (position == 3)
        {
          digitalWrite(Red, LOW);
        }
      }
      else {
        int position = 0;
        digitalWrite(Red, HIGH);
      }
    }