상세 컨텐츠

본문 제목

how to, 아두이노 드론 #9 : 트러블슈팅, arduino drone troubleshooting

how to, 아두이노 드론/project

by 퍼블리셔환 2020. 8. 31. 14:43

본문

0. 똑같은 일을 반복하면서 다른 결과를 기대하는 것은 멍청한 짓이라고 아인슈타인은 말했다. 우리는 멍청이들이 아니다. 나쁜 결과를 바꾸기 위해서는 이전과는 다른 행동을 해야된다.

 

1. 아두이노 프로 미니 5V 16 MHz / arduino pro mini 5V 16 MHz

 

이 드론 프로젝트를 하면서 알게 된 사실인데, 아두이노 프로 미니에는 4 가지 종류가 있다. 5V와 3.3V 이렇게 정격전압별로 2가지와 8 MHz, 16 MHz 주파수별로 2가지 해서 총 4가지의 종류이다. 그런데 우리의 드론에 사용되는 프로 미니는 5V, 16 MHz용인데, 만약 잘 못해서 3.3V 나 8 MHz를 구매하면 아예 연결 부품이 작동을 안 하게 된다. 처음 주문을 할 때 아두이노 프로 미니에 별다른 말이 없어서 당연히 우리가 찾는 부품이겠거니 했는데 도착한 부품을 보니 3.3V였다. 

 

컴퓨터에 연결해서 업로드를 했는데도 업로딩이 되지 않길래 FTDI문제인 건가 싶었는데, 아예 아두이노 IDE에서 포트에 문제가 있다고 에러 메시지가 떠서 알게 되었다. 기본적으로 자이로가 신호를 못 받는 것 같고, 그래서인지 multiwii가 작동이 안 된다. 잘못 주문한 부품은 누구의 잘못도 아닌, 내 잘못이다. 

아두이노 프로 미니의 두 가지 종류. 야속하게도 생긴 모습은 똑같다.

 

2. NRF24 L01

 

nrf 모듈은 굉장히 예민하다. 

 

우리가 처음 멀티위 세팅에 관해서 고생을 많이 하고 있었을 때, 정말 최소 부품만 연결해서 멀티위가 되는지를 확인해 보려고 했었다. 그래서 아두이노 프로 미니에 자이로만 달고 확인해보니 멀티위가 잘 작동되는 것을 확인했다. 그 뒤에 nrf를 연결해서 멀티위를 시도하려고 하는 순간 작동이 안 된다. 

 

어떻게 nrf의 연결 불량이 멀티위에 악영향을 미치는지는 아직도 잘 모르겠지만, nrf를 연결해서 멀티위를 잘 작동시키기 위해서는 다음과 같이 정말 지켜야 할 부분들이 많다. 

 

. nrf 모듈에 들어가는 전압 확인

nrf24 모듈의 정격전압은 3.3v이다. 만약 여기에 3.7v의 lipo 배터리를 연결하거나 5v의 아두이노 vcc 핀을 연결하면? 무조건 고장 난다. 장담할 수 있다. 왜 이렇게 모듈이 허약한지는 모르겠지만, 꼭 이 3.3v를 지켜줘야 된다. 3.3v 보다 더 큰 전압에서 3.3v로 떨어트리기 위해서는 voltage regulator라는 부품을 사용해야 된다. 이 voltage regulator에 관한 내용은 뒤에 후술 하겠다. 

 

. nrf에는 noise가 굉장히 많이 생기고, 연결이 불안정하다.

이 문제는 다음과 같은 두 가지 방법으로 어느 정도 완화할 수 있다. 

 

    ⅰ. nrf의 그라운드(gnd)와 vcc사이에 캐패시터 연결하기. 

 

vcc 와 gnd 사이에 캐패시터를 연결한 모습

 

이 vcc와 gnd 사이에 캐패시터를 연결하면 노이즈를 줄이고 연결을 강화할 수 있다. 우리가 사용한 캐패시터의 크기는 10 µF이었다. 일반적으로 캐패시터의 역할은 ripple을 줄여주는 역할인데, 이 ripple은 원하는 결괏값 주변으로 값이 요동치는 것을 의미한다. 이러한 ripple을 없애는 것보다 더 중요한 캐패시터의 역할이 있다. 

 

ripple이 생기는 모습

 

이전에 작성했던 8번 게시글 중에 nrf를 손으로 잡지 않으면 연결이 불안정하다고 쓴 내용을 기억하시는지?

이 문제 역시 캐패시터를 달아줌으로써 해결할 수 있었다. 이 현상에 대한 우리의 추측은 손으로 잡으면 vcc와 gnd 사이에 미세전류가 흐르기 때문에 연결이 한층 강화된다는 것인데, 캐패시터를 납땜함으로써 비슷한 효과를 낼 수 있는 것 같다. 

2020/08/31 - [how to, 아두이노 드론/hardware] - how to, 아두이노 드론 #8 To infinity… and beyond!

 

    ⅱ. nrf의 miso-mosi 연결선 꼬아주기

 

꼬아져 있는 miso-mosi 연결선

 

miso는 master input slave output,

mosi는 master output slave input의 약자이다.

이 두 연결선을 서로 꼬아주면 연결의 레이턴시가 굉장히 감소한다. 컨트롤러의 조이스틱을 움직였을 때 반응속도가 빨라진다는 의미이다. 우리도 인터넷에서 봐서 반신반의하면서 시도해보았는데, 실제로 확연히 체감될 만큼 반응속도가 빨라지는 결과를 얻어서 굉장히 놀랐다. 

 

참고로 말하자면, 위 사진처럼 nrf 모듈과 아두이노 프로 미니의 윗판에다가 납땜을 진행하는 것은 최대한 지양하는 것이 좋다. 이유는 다음 게시글을 확인하면 된다.

 

. 연결 배터리 잔량 확인

 

만약 컨트롤러와 메인보드의 통신이 다음과 같이 불안정하다면 각각의 배터리를 새 배터리로 바꿔서 문제를 해결할 수 있다. 

    ⅰ. multiwii에 연결했는데, 오른쪽에 보이는 throttle, pitch, yaw, roll 등의 값이 매우 불안정할 때

    ⅱ. 아두이노 프로 미니의 nrf통신 상태를 나타내 주는 LED의 밝기가 굉장히 약할 때

    ⅲ. 컨트롤러에서 arm을 시도했을 때 LED가 깜빡일 때

통신상태를 표시해주는 LED 점등

 

이런 문제들은 놀랍게도 배터리를 새 것으로 갈아 끼우면 대부분 해결된다. 생각보다 통신에 쓰이는 배터리 소모량이 큰 것 같다. 

 

3. Voltage Regulator

 

볼티지 레귤레이터의 역할은 공급해주는 전압을 부품에서 요구하는 정격전압으로 바꿔주는 것이다. 각 부품에 따라서 각기 다른 정격전압이 있기 때문에 이 전압을 맞춰주는 것은 필수적이라고 볼 수 있다. 

 

일반적으로 가장 널리 사용되는 레귤레이터는 AMS1117이다. 하지만 이 레귤레이터에는 굉장히 큰 단점이 있는데, 바로 voltage drop이다. 전압강하라고 번역할 수 있는데, 우리의 드론 메인보드에서 nrf에 필요한 전압은 3.3v이다. 그런데 AMS1117을 사용하게 되면 밑 표에서 볼 수 있는 것처럼 전압강하가 1V이상 생기게 돼서 실제로 공급되는 전압은 채 2v가 안될 수도 있다. 이렇게 되면 당연히 nrf는 잘 작동하지 않는다. 

 

AMS1117 datasheet

 

그래서 우리는 전압강하가 더 작은 레귤레이터를 찾았고, 역시 두드리면 열린다고, 찾았다. 

 

HT7333 datasheet

 

위의 표는 HT7333의 voltage drop을 표기한 내용이다. 위의 표에서 확인할 수 있듯, HT7333의 전압강하는 최대 300mV이고, 평균적으로 90mV이다. 3.3V에서 0.09V밖에 떨어지지 않기 때문에 nrf는 잘 작동하게 된다. 

 

한 가지 단점은, 찾기 힘들다는 점이다. 물론 가격 자체는 싸기 때문에 부담스럽지는 않지만, 인터넷으로 해외배송 주문을 하면 대략 일주일 정도 걸린다. 

 

만약 이중에서 여러분이 잘 지키지 않아서 그 뒤로 작동하지 않는 부품이 있다면, 심폐소생을 몇 번 해보고 그래도 안되면 포기하자. 죽은 자식 불알 만지기는 고통만 배가시킨다.

 

 

publisher, 환

관련글 더보기

댓글 영역