2019/01/13 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #1
2019/01/21 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #2
2019/03/03 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #3
2019/03/11 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #4
2019/03/31 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #5
2019/06/09 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #6
2019/07/20 - [Study/아두이노] - [아두이노] 미니 드론 만들기 #7
한동안 다른 짓거리를 하느라 드론은 손을 못대었다. 콩알만한 것이 금방 될 줄 알았는데 참 여러모로
속을 썪인다…ㅠ.ㅠ 게다가 남은 작업들이 계속 부품들을 교체해가면서 문제의 원인을 찾는 일이다 보니
한번 일을 하려면 맘먹고 시간을 내야하는데 아무래도 좀 더 쉽고 흥미로운 관심사에 우선순위를 뺐기기
일쑤다.
그래도 매주 주말이면 잠깐의 짬이라도 내서 조금씩 문제를 해결해 가고는 있지만 아직도 제대로 동작을
안하고 있다. 오늘은 오랫만에 그간의 진행 상황을 정리해보려고 한다.
새로운 회로의 구성
지난번 포스팅에서 언급했던 새로 주문한 모터는 4월 23일경 도착했다. 주문한 날짜는? 2월 19일…-.-
무려 2달 하고도 4일이 더 걸린 것이다. 게다가 레이서스타 8520 모터의 경우 4개씩 2세트를 주문했는데
모터 한 개가 증발하여 총 7개밖에 안왔다…ㅠ.ㅠ
그래도 와준 것이 어딘가 싶어 주섬주섬 브레드보드를 이용하여 새롭게 회로를 구성하고 테스트를 시작
하였다. 가장 먼저 모터 드라이버의 문제가 아닌가 싶어 다른 모터 드라이버를 이용해보았다. 우선은
가지고 있는 모터 드라이버 중 가장 눞은 출력을 가진 L298N 드라이버를 이용하여 모터를 연결하고
테스트를 해보았다.
하지만 여전히 모터까지 전류가 흐르기는 하는 듯 모터에서 찌르르 하는 소리는 들리는데 정작 모터가
돌지 않는다. 일단 모터 드라이버의 문제는 아닌 것 같다.
다시 원래 사용했던 HR8833 기반의 초소형 모터 드라이버로 교체를 하고 여러가지 테스트를 해보았다.
여기서 발견한 것은 일단 모터 드라이버에 모터를 한 개만 연결하면 모터가 잘 돌아갔다. 하지만 하나의
드라이버에 모터를 2개 연결하는 경우에는 모터가 돌지 않았다.
코드의 변경
처음 사용했던 코드는 딜레이 없이 모터 4개를 돌리도록 되어있었다. 하지만 아무리 작은 모터라도 처음
구동시에는 스펙상의 가장 큰 전류가 흐르기 때문에 이 코드로는 무리가 있지 않을까 하는 생각이 들었다.
그래서 코드를 다음과 같이 수정하였다.
const int MS1=3;
const int MS2=5;
const int MS3=6;
const int MS4=9;
void setup() {
pinMode(MS1, OUTPUT);
pinMode(MS2, OUTPUT);
pinMode(MS3, OUTPUT);
pinMode(MS4, OUTPUT);
}
void loop() {
MA1_Forward(50);
delay(1000);
MB1_Forward(50);
delay(1000);
MA21_Forward(50);
delay(1000);
MB21_Forward(50);
delay(2000);
MA1_Forward(100);
MB1_Forward(100);
MA21_Forward(100);
MB21_Forward(100);
delay(2000);
}
void MA1_Forward(int Speed1)
{
analogWrite(MS1,Speed1);
}
void MB1_Forward(int Speed1)
{
analogWrite(MS2,Speed1);
}
void MA21_Forward(int Speed1)
{
analogWrite(MS3,Speed1);
}
void MB21_Forward(int Speed1)
{
analogWrite(MS4,Speed1);
}
처음 구동시 각 모터별로 1초 정도의 딜레이를 주고 순차적으로 돌리기 시작하였다. 반응이 없던 모터들이 제대로 돌기
시작한 것이다. 이로써 적어도 부품이나 회로의 구성 상에는 문제가 없다는 것을 확인할 수 있었다. 그렇다면 기존에
만들어놓은 회로에는 무슨 문제가 있는 것일까?
납땜의 문제
드디어 모터가 제대로 돌기 시작했다는 것은 분명 한발짝 앞으로 나아간 것이긴 하지만 기존에 만들어놓은 회로에서
제대로 동작하지 않는 것은 여전히 의문이었다. 구성 자체는 브레드보드를 이용한 회로와 동일하였으나 다른 점이
있다면 납땜을 하여 회로를 구성했다는 것이 차이라면 차이였다.
이전에 만들었던 회로에서는 전혀 동작을 하지 않는 것을 확인했고 또 이 회로는 너무 복잡하게 납땜을 해서 더이상
손볼 여지가 없었기 때문에 이 프로젝트 처음 시작할 때 만들었던 회로에 추가로 모터 드라이버를 위한 배선과 전원
배선을 납땜하여 테스트 해보기로 하였다.
하지만 추가로 구성한 회로 역시 문제가 있었다. 프로펠러가 장착되지 않은 상태에서는 모터가 원활하게 구동이
되었으나 프로펠러를 달기만 하면 모터가 제대로 돌아가지 않았다. 단 하나의 프로펠러만 달아도 전체 모터가
구동되지 않았다.
결국 의심할 수 있는 문제라고는 이 회로들을 만들 때 납땜을 잘못했다는 가정 뿐이었다. 아무래도 케이블이 적절한
위치에 붙지 않았거나 납땜한 부분들 중 쇼트가 나는 부분이 있거나 한 것으로 판단된다. 간혹 손으로 조금 건드려
주거나 눌러주면 모터가 정상적으로 돌아가는 경우도 있어 더 상황 판단을 어렵게 만들었다.
점퍼 케이블 버전으로 완성
2번의 시도 모두 납땜에서 문제가 생겼다는 결론을 내린 이상 더이상 나의 납땜 실력을 신뢰할 수 없는 상황이 되었다.
남은 방법은 브레드보드에 구성한 회로를 그대로 사용하는 것 뿐… 그렇다고 그 무거운 브레드보드를 그냥 사용할 수는
없고 1:N으로 연결되는 부분만 브레드보드를 사용하면 되므로 양쪽 전원부만 잘라서 사용하기로 하고 나머지 부품은
점퍼 케이블로 연결을 하였다. 결국 엄청 복잡한 형태가 만들어졌다…ㅠ.ㅠ
그리고 비록 험악한 몰골을 하고는 있지만 동작은 아주 만족스러웠다.
하지만 이렇게 되면서 숙제가 하나 생겼다. 바로 프레임을 어떻게 할 것이냐는 것이다. 이 모양으로는 일반적인
형태의 드론 프레임은 도저히 사용할 수 없는 상태이다. 사실 회로의 구성 자체에는 문제가 없으니 구매한 프레임에
만든 형태로 다시 차근차근 납땜을 해도 좋겠지만…두 차례 실패를 거듭한 현 상황에서는 엄두가 나질 않는다…ㅠ.ㅠ
결국 3D 프린터의 힘을 빌릴 수밖에 없는 상황이 되었다. 하지만 다룰 줄 아는 모델링 프로그램이라고는 123D
Design뿐인데다 그나마 익숙하지 않으니 어느 세월에 프레임을 만들까… 게다가 이렇게 복잡한 모양이 되어
버린 회로를 깔끔하게 담기 위해서는 얼마나 또 머리를 굴려야 할까…ㅠ.ㅠ
한동안 고생 꽤나 하게 생겼다.
정리
이번 작업으로 아주 중요한 교훈을 얻었다. 바로 납땜에 관련된 것…그 전까지는 아주 간단한 부분만 납땜을 해서
잘 몰랐는데, 그냥 땜납으로 붙어있다고 해서 납땜이 된 것이 아니라는 것을 알게 되었다. 앞으로도 다시 시도할
기회가 있겠지만 절대로 마구잡이로 할만한 작업은 아닌 것이다.
결국 차선책으로 아두이노용 점퍼 케이블을 이용하여 제대로 동작하는 버전을 만들기는 하였지만 역시나 흡족한
형태는 아니다. 다만 지금까지 너무 오랜 시간을 끌었기에 이 상태로 진행을 하고자 할 뿐…
당분간은 프레임 설계하고 출력 하느라 또 꽤 오랫동안 시간과 씨름을 해야 할 것 같다.
언제가 될 지는 모르겠지만 드론이 뜨기 전까지는 이 프로젝트는 끝나지 않을 것이다.
'Study > 아두이노' 카테고리의 다른 글
[아두이노] 미니 드론 만들기 #7 (10) | 2019.07.20 |
---|---|
[아두이노] 선택 가능한 개발환경 알아보기 #4 - Xcode + embedXcode (0) | 2019.05.06 |
[아두이노] 선택 가능한 개발환경 알아보기 #3 - Visual Studio (2) | 2019.04.28 |
[아두이노] 선택 가능한 개발환경 알아보기 #2 - Eclipse (0) | 2019.04.23 |
[아두이노] 선택 가능한 개발환경 알아보기 #1 - Atom + PlatformIO (2) | 2019.04.21 |