[2014] 드론(Drone) - 6 : 슈펑유지 & 센서값 추출




하 ... 이거 1시가 다되가서 자야되는데 포스트를 하고 있네요.

얼마나 보실줄은 모르겠지만, 한분이라도 제 글을 보신다면 도움이 되었으면 좋겠어요.
저번에 거치를 만들고(SeeSaw) 그걸 이용하여 PID값을 잡아보겠어요!

그럼 일단 언제나 같은 마인드맵 먼저 보시죠 ^_^

동영상 추가! 



HardWare Part


1. x,y 축 테스트
 처음에는 전체 방향을 테스트하기 보다는 x축 y축 이렇게 한 부분씩 테스트를 해서 수평제어를 테스트하고 값을 조정한 후 그 다음 전체 방향에 대한 수평유지 테스트를 진행 해야 한다.

 수평을 유지할 수 있는지 테스트하기 위해 임의로 한 쪽 방향으로 기울어지게 해 보았으며 그 결과 x,y 축에 대해서는 스스로 균형을 회복할 수 있다는 것을 확인하였다.

2. 전체 방향 수평유지 테스트
 x,y 축에 대한 테스트 후 전체 방향에 대해서도 수평을 유지 할 수 있는지 확인하기 위해 앞서 제작한 거치대에 장착하여 테스트를 진행 해 보았다.

 x,y 축에 대한 테스트와는 다르게 수평유지를 잘 하지 못 하였으며 자세 변동의 폭이 커 부상의 위험도가 높아 다른 테스트 방법을 찾을 필요를 느꼈다.
부상 위험도를 줄이기 위해 안전장치를 해 둔 후 기체에서 멀리 떨어진 상태로 테스트를 진행 했다.

 반복해서 테스트를 한 결과 x,y축에서는 수평을 제대로 잡았지만 전체적인 수평유지에서는 아직 불안정한 모습을 보였다. 이 부분을 다음 주차에서 수정을 해야할 것 같다.



3. 방해 요소 조사
 지자계 센서 등 수평을 유지해 주는 센서들을 방해하는 요소들을과 매뉴얼등을 조사 해본 결과 지자계 센서와 같은 경우는 프로펠러에서 만들어 들어가는 바람이 센서값에 혼동을 줄 수 있고 메인 보드 위로 전원 케이블과 다른 핀 커넥터 선들이 많이 지나가면 보드와 센서 전체에 영향을 줄 수 있다는 점을 파악했고 이 부분을 처리하기 위해 배선전체를 정리하기로 하였다.
4. 선 정리
 지자계 센서 같은 경우 전 주에서 커버를 장착하였으므로 선들만 정리하기로 하였다.

 보드 위의 전원 선과 핀 커넥터 선들을 최대한 보드 밖으로 밀어 낸 후 연필 같은 것에 선을 감아 말아서 둔 후 케이블 타이와 테이프등을 이용하여 보드 바깥 쪽 프레임에 부착할 수 있도록 선들을 정리 하였다.

 배선 정리 후 전원 선은 보드 위로 지나가지 않으며 핀 커넥터 선들도 최대한으로 정리 되어 센서에 오차를 줄 일이 줄어들었다.


SoftWare Part

소프트웨어 개발 (목표)
지자계 센서와 자이로 센서 초기화 및 사용 하기위한 아두이노 소스 설정
 1. Compass (지자계 센서)
  1 _1. compass driver
 지자계 센서를 사용하기 위한 기본적인 설정 소스임.
이 소스에서 지자계 센서를 사용하기 위한 driver와 변수를 설정하게 됨.

 1 _2. compass sensor Board 설정.
 위에서 지자계 센서 driver와 변수를 설정하는 것이 기초적인 작업이었다면, 지금하는 소스설정은 지자계 센서를 사용하기 위한 통신과 설정과 보드에 대한 설정.

  위의 SPI와 I2C는 통신방식을 뜻하는 용어임. SPI(Serial Peripheral Interface Bus)통신의 약자이다. 장점은 단순한 하드웨어 인터페이스 처리임. I2C(Inter-Integrated Circuit)의 약자. I²C 는 빠른 속도를 요구하지 않는 간단하고 저비용의 주변 장치들에 적합.


2. Gyro sensor (자이로 센서)
 2 _1. Gyro Sensor사용을 위한 헤더파일
 위의 소스에 핵심이 되는 부분은 AP_InertialSensor.h 이 부분. 이 부분이야 설정되지 않는다면 Gyro 센서는 작동하지 않는다.

 2 _2. Gyro Sensor사용을 위한 변수설정.
 
 이 부분을 설정함 으로써 Gyro 센서에서 보내는 정보를 수치화 하여 저장 및 이용할수 있다.

 2 _3. 비행시 Gyro에 의해 수평을 유지하게 하는 소스
 Gyro에 의해서 수평을 유지하게 해주는 소스 부분. 즉, motors.ext_gyro_gain = tuning_value; 이 부분에 의해서 모터의 출력이 달라지게 되고 그에 다라 기체가 수평을 유지할수 있게 되는 것.
 
 위의 소스는 만약 쿼드콥터에 카메라를 달게 되면 그에 따라서 조정해주는 소스이다.

1.지자계 센서
지자계 센서 모듈 사진[그림 1]
지자계 센서를 이용한 어플리케이션[그림 2]
위의 [그림 1]은 일반적인 시제품을 제작하기 위해 사용하는 모듈이다. 그리고 그것을 이용한 어플리케이션이 [그림 2]이다. [그림 2]와 같이 나침판의 기능과 같이, 지구의 자기장과 관련된 센서이다. 즉, 이 센서를 이용하면 핸드폰의 기울기라든지 남과 북 즉, 방향을 가리키는 용도로 사용된다.

2. 지자계 센서의 원리
지자기 [그림 3]
위의 사진처럼 지구는 자기장이 존재한다. 이 자기장을 이용한 것이 지자계 센서인 것이다.

3. 자이로 센서와 지자계 센서 초기화 및 설정
자이로 센서 초기화 및 설정
자이로 센서는 저번 주와 마찬가지로 동일한 방법으로 셋팅해 주면 된다. 즉, 화면에서 취하는 모습과 동일한 방향으로 향해주면 된다.
지자기 센서 초기화 및 설정 [그림 1]
지자기 센서 초기화 및 설정 [그림 2]
의 사진은 지자기 센서 초기화를 위해서 기체를 움직이며 자자기 센서의 값을 표시해 주는 것이다.

이 초기화를 통해서 기체의 움직임에 대한 방향을 알수 있다.

댓글

  1. 안녕하세요~ 저는 드론을 제작하고 있는 학생인데요.. PID 제어 실험을 진행중인데 양축 테스트 기구부를 어떻게 설계해야되나 고민 중이었는데 위 동영상을 보게되었어요. 축 테스트 기구부를 어떻게 설계하셨는지 굉장히 궁금하네요... ㅠㅠ 답변 주시길 부탁드리겠습니당~!

    답글삭제

댓글 쓰기

이 블로그의 인기 게시물

[2014] 드론(Drone) - 8 : 송수신기 & 비행 테스트

아이패드, 아이폰 비활성화 푸는 방법

[2011] Project : 지렁이 게임(Goni Worm)