• Home
  • About
    • HYEMIJEONG photo

      HYEMIJEONG

      My homepage contains the contents of my activities.

    • Learn More
    • Email
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

아두이노 우노와 센서연결

21 Jan 2021

Reading time ~3 minutes

*드론을 만들기 전 센서에 관한 실험을 하기 위해 조사한 내용이며 드론을 만들면서 추가하거나 수정할 예정입니다.


1. 자이로+가속도 센서</br>

드론의 균형 유지를 위해 기울기, 회전한 정도를 감지하는 센서 즉, 자이로, 가속도 센서가 필요하다. 가속도 센서는 지구의 중력가속도를 기준으로 사물이 얼마만큼의 힘을 받고 있는지를 측정하는 센서이며, 자이로센서는 물체의 각속도를 측정하는 센서이다.


1-1. 각도를 측정할 자이로+가속도 센서 선택

자작 드론에서 사용하는 대표적인 IC는 MPU6050이며, 자이로+가속도 센서로 구성된다. 여기에 지자계 센서까지 추가한 것이 MPU9250이다. 우리가 사용할 것은 MPU6050이다.</br></br></br>

축 : MPU6050에 포함되어 있는 축은 가속도 3축, 자이로 3(2)축, 온도센서까지 총 7(6)가지다.

주의할 점 : 상온에서는 가속도, 자이로 센서가 온도에 크게 영향을 받지 않기 때문에 온도센서를 사용하지 않는다. 하지만 영하로 내려가거나 기온이 너무 높은 등 상온에서와 온도 차이가 큰 경우에는 가속도, 자이로 값이 온도에도 영향을 받기 때문에 사용해야 한다.</br></br>

  • Roll : 좌,우 기울어짐 정도

  • pitch: 전, 후 기울어짐 정도

  • Yaw : 수평 회전 정도

1-2. 아두이노 우노와 자이로+가속도 센서 연결

Arduino UNO MPU6050
5V VCC
GND GND
A5(or 다른 아날로그 핀) SCL
A4(or 다른 아날로그 핀) SDA
D2(or 다른 디지털 핀) INT

*위의 아두이노 핀 번호 일부는 임의로 지정한 것이므로 후에 바뀔 수 있다.



1-3. 실험방법

⓵ 준비물(아두이노 우노, 센서, 점퍼케이블 등)준비, 핀 연결(1-2내용 참고)


⓶ 라이브러리 설치(MPU-6050, 12Cdev라이브러리 필요)

  • 구글 검색을 통해 외부 라이브러리를 다운받은 후 아두이노 IDE 라이브러리 관리창에서 설치하거나 아두이노 IDE 라이브러리 관리창에서 “MPU-6050”를 검색해서 설치한다.

⓷ 코드 작성 및 업로드

  • 아직 드론을 만들면서 코드를 작성하지 않았기 때문에 내용은 생략한다. 이 과정을 통해 알 고 싶은 데이터를 제대로 출력할 수 있도록 코드를 작성 및 수정한다. 자이로 센서와 가속도 센서를 조합해 출력할 수도 있고 따로 출력할 수도 있다고 한다. 대략적인 내용을 설명하자면 센서를 통해 x, y, z축 값을 받기 위해 변수를 설정하고 값을 받아와 시리얼 모니터를 통해 나오도록 출력해서 값을 확인하고 후에 이 값들을 블루투스 통신을 통해 전달받을 수 있도록 할 것이다.

  • 코드 작성 및 수정이 모두 끝나면 아두이노 우노에 업로드한다.

⓸ 시리얼 모니터 확인 및 보완

  • 움직이면서 시리얼 모니터에 값이 제대로 출력되는지 확인하고 코드를 수정하거나 다른 자료들을 찾아 참고하면서 보다 정확한 움직임을 구현할 수 있을 때까지 보완해나간다.



1-4. 참고 링크

(https://steemit.com/kr-arduino/@codingman/mpu-6050-processing)

(http://blog.naver.com/PostView.nhn?blogId=eduino&logNo=221081288204)

(https://deneb21.tistory.com/335)

(http://makeshare.org/bbs/board.php?bo_table=processing&wr_id=10)

(https://m.blog.naver.com/eduino/221081288204)

(https://zxff.tistory.com/30?category=576769)




2. 지자기(자기장) 센서


다음으로, 드론이 위치와 방향을 찾기 위해서 지자기(자기장)센서 또한 필요하다.

2-1. 센서 알아보기

나침반 3축 자기장 지자기 센서는 지구 자기장을 인식하는 센서로 나침반처럼 사용해 위치, 방향을 찾아야 할 때 활용되는 센서이다. 드론의 기울기, 위치, 회전을 추정하는데 활용된다. 사용한 센서는 QMC5883L이다.



3축 : 자기장 세기 측정할 수 있는 센서가 X, Y, Z축 방향으로 3개가 내장되어있다. 이 3개 센서 간의 출력 벡터 합으로 센서에 미치는 자기장 방향을 측정하게 된다.



주의할 점 : 기존 나침반들이 강한 자기장 내에서 정상적인 작동을 하지 않는 것처럼 지자기 센서 또한 자석 근처 등 강한 자기장 내에서 정확한 값을 출력할 수 없다. 사용하는 환경에 영향을 받는다.




2-2. 아두이노 우노와 지자기 센서 연결 </br>

| Arduino UNO | QMC5883L |:————————:|:——–: | 5V | VCC
| GND | GND
| A4 (or 다른 아날로그 핀) | SDA
| A5(or 다른 아날로그 핀) | SCL
| D2(or 다른 디지털 핀) | INT

*위의 아두이노 핀 번호 일부는 임의로 지정한 것이므로 후에 바뀔 수 있다.


2-3. 실험방법

⓵ 준비물(아두이노 우노, 센서, 점퍼케이블 등)준비, 핀 연결(2-2내용 참고)

⓶ 라이브러리 설치

  • 구글 검색을 통해 외부 라이브러리를 다운받은 후 아두이노 IDE 라이브러리 관리창에서 설치한다.



⓷ 코드 작성 및 업로드

  • 아직 드론을 만들면서 코드를 작성하지 않았기 때문에 내용은 생략한다. 이 과정을 통해 알고 싶은 데이터가 제대로 출력될 수 있도록 코드를 작성 및 수정한다. 대략적인 내용을 설명하자면 센서를 통해 x, y, z축의 기울기 및 회전 값을 받기 위해 변수를 설정하고 값을 받아와 시리얼 모니터를 통해 나오도록 출력해서 값을 확인하고 후에 이 값들을 블루투스 통신을 통해 전달받을 수 있도록 할 것이다.</br></br>

  • 코드 작성 및 수정이 모두 끝나면 아두이노 우노에 업로드한다.



⓸ 시리얼 모니터 확인 및 보완

  • 움직이면서 시리얼 모니터에 값이 제대로 출력되는지 확인하고 코드를 수정하거나 다른 자료들을 찾아 참고하면서 보다 정확한 움직임을 구현할 수 있을 때까지 보완해나간다.



2-4. 참고 링크

(https://m.blog.naver.com/eduino/222065595739)

(http://www.jkelec.co.kr/img/sensors/manual/hmc5883l_gy271/hmc5883l_gy271_manual.html)



Share Tweet +1