본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA
Study/아두이노

[아두이노] 아두이노 4족보행 로봇 만들기 Season II - 2 : 보양식좀 먹여볼까?

by 마즈다 2016. 8. 29.
반응형


좌충우돌 로봇 만들기 Season II - 2 : 영양식좀 먹여볼까?


지난 번 글에서는 주로 모터에 대한 이야기를 다루었습니다.
하지만 모터만 해결된다고 될 문제가 아니었습니다.
모터를 잘 움직이게 해줄 무언가가 필요했고 전 그걸 몰랐습니다.
오늘은 ‘그 무엇’에 대한 이야기입니다.



이 과정에서 도움을 주신 페이스북 아두이노 사용자 모임의 김재유님과 차형도님께
감사 인사 드립니다^^


문돌이의 한계 3 - 모터에 대해 더 알아야 할 것들


지난 글에서 우선 모터의 torque에 대해 간단하게 알아보았다.
그리고 torque를 고려하여 몸통의 구조도 바꿔보았다. 크게 바뀌지는 않았지만…
하지만 개선된 것은 없었고 무엇이 문제인가를 좀 더 생각해보아야 했다.


나름 잔머리를 굴려 로봇의 동작 방식을 바꿔보기로 했다.
현재 로봇의 보행은 2개의 다리가 동시에 움직이도록 되어있고 이는 결국 2개의 다리가 앞으로
움직이는 동안 2개의 다리로만 전체 무게를 지탱해야 한다. 하지만 한 번에 하나의 다리만을
움직이도록 구현을 한다면 3개의 다리로 무게를 지탱할 수 있어 문제가 해결될 것이라 생각했다.
아래 그림에서 보면 빨간색으로 칠해진 다리가 무게를 지탱해야 하는 다리이다.


2다리로 지탱3 다리로 지탱


짧은 시간이기에 새로운 보행을 완벽하게 구현하지는 못하고 우선 제자리에서 다리를 들었다 놓도록
구현 후 테스트를 해보았다. 하지만…문제가 해결되지 않았다. 여전히 동작을 시작하면 얼마 안되어
주저 앉고 말았다(아쉽게도 동영상을 찍지 못했다).


여전히 해결이 안되기에 일단 인터넷 검색을 통해 좀 더 알아보다가 페이스북 아두이노 사용자 모임에 
질문을 올렸다. 그리고 무언가 단서를 찾았다.



다시 한 번 MG996R 모터의 데이터 시트를 열어보았다.
거기에 적힌 스펙 중 다음 내용이 눈에 들어왔다.


• Stall Current 2.5 A (6V) 


즉, stall torque를 내기 위해서는 2.5A의 전류가 필요하다는 것이다.
우리가 보통 배터리를 이용할 때 사용하는 단위가 mA이므로 2.5A라면 상당히 큰 전류이다.
그래서 이제 관심은 배터리로 옮겨갔다.


문돌이의 한계 4 - 배터리와 전기


누구나 알고 있듯이 모터는 전기라는 동력원을 통해 움직이는 장치이다.
하지만 나같은 문돌이가 알고 있는 모터들은 1.5V AA 전지 하나 연결해주면 쌩쌩 돌아가는
그런 모터들이다. 하지만 앞서 간략하게 설명한 바와 같이 이 서보모터라는 놈은 성격이 달랐다.
꽤 큰 힘을 쓰는 놈이다보니 먹는 것도 달라야 했다.


처음 2관절로 제작을 했을 때는 모터가 총 8개였고 전원으로는 1.5V AA 배터리 4개를 직렬로 연결하여
총 6V의 전압으로 테스트를 했다. 이전 글에서 보았듯이 무난한 움직임을 보여주었다. 하지만 벌써
이 때부터 전조 증상이 있었다. 한 2~3분 연속으로 움직이고 나면 이내 비실비실해지는 것이었다.
당시에는 그저 ‘그놈 참 배터리먹는 귀신이네’라고 단순하게 생각했다. 하지만 지금 생각하니 내가 배터리와
전기에 대해 몰라도 너무 몰랐던 것이다.


처음에는 무작정 배터리 용량이 빨리 소모되었기 때문이라고 생각했다. 그래서 4구 홀더 2개를 병렬로
연결하여 전압은 6V로 동일하게 하고 용량만 2배로 만들었다. 하지만 여전히 증상은 동일했다.


다음으로는 전압을 높여보기로 했다. 우선 총 6개의 배터리를 연결하여 9V의 전압을 만들었다.
(아래 테스터기에는 6.72V가 찍혀있으나 배터리 홀더 단자에 바로 연결하여 테스트한 것은 정확히
9V정도가 표시되었고 빵판에 연결한 후 빵판에 테스터 단자를 연결하니 아래와 같이 찍힌 것이다.)




하지만 여전히 결과는 동일했다. 아래 동영상은 지난 글에도 링크한 것이지만 다시 한 번 올린다.




다음은 배터리 8개를 직렬로 연결하여 12V까지 올려보았다. 데이터 시트에는 MG996R 모터의 동작
전압이 4.8V~7.2V까지로 나와있으나 12V까지는 사용가능하다 하여 무리를 해보았다.
(역시 직접 배터리 단자에서 테스트하면 12V가 표시되나 빵판에서 측정하니 아래와 같이 나왔다)




이렇게 하니 확실히 움직임이 달라지긴 했다. 처음 일어설 때와 움직일 때의 힘이 나아진 것 같았다.
하지만 그도 오래가지 못했고 만족할만한 수준은 아니었다.


게다가 조금 지나니 어디선가 연기가 솔솔…이놈이 좌절감에 담배를 피우나 했다.
스위치와 빵판을 연결한 점퍼 케이블에서 연기가 나고 있었던 것이다. 확인해보니 아래 사진과 같이
눌어있었다.




일단 여기까지 하고 하도 답답하여 페이스북 아두이노 사용자 모임에 질문을 올렸던 것이다.
그리고 조금 더 연구를 거듭한 결과 배터리에는 방전률이라는 것이 있다는 것을 알았다.


문돌이의 한계 5 - 배터리와 전기 : 조금 더 상세하게


역시나 문돌이 이기 때문에 자세한 설명은 할 수 없고 필요한 선에서만 간략하게 정리한다.


기본적으로 우리가 흔히 접하는 전기적 단위에는 전압(V)과 전류(A 또는 mA)가 있다.
그리고 배터리 중 충전이 가능한 2차전지에는 용량이 표시되는데 이 때는 mAh라는 단위가
사용된다. 각각의 뜻을 보면


  • 전압 (V) : 전기적인 위치의 차이(전위차)를 나타내는 단위. 물이 높은 곳에서 낮은 곳으로
    흐르며 이 높이의 차이를 수위차라고 하듯이 전기적인 높이의 차이가 있어야 전류가 흐른다.
  • 전류의 세기(A, mA) : 전위차에 의해 전자가 이동을 하게 되는데이를 전류라고 하며 정해진 
    시간 동안 얼마나 많은 전자가 이동하는지를 전류의 세기라고 하고 그 단위가 A 또는 mA이다.
  • 용량 (Ah, mAh) : 한시간 동안 사용할 수 있는 전류의 세기를 용량으로 표시한다.
  • 저항 (Ω) : 전류의 흐름을 방해하는 정도를 저항이라 하며 다양한 환경이 영향을 미친다.


일단 이정도는 상식선에서 모두 알고 있는 내용이다.
중요한 것은 이 성질들의 관계가 어떻게 조합되어 어떤 결과를 만들어내는지 이다.
사실 일반적인 생활에서는 배터리가 필요한 전자기기에서 필요로 하는 전압만 알면 되지만…


우선 사용 중인 모터 MG996R의 데이터 시트로 되돌아가 보자. 이미 위에서 언급했지만
Stall Current 2.5 A (6V)라는 내용이 있다. stall torque를 내기 위해 필요한 전류…
바로 앞에 설명한 개념에 따르면 전압이 있어야 전류가 흐른다. 게다가 높은 곳에서 떨어지는 물이
낮은 곳에서 떨어지는 물보다 세차게 흐르듯 전압이 높으로면 전류도 세진다. 여기까지만 보면
별 문제가 없어보인다.


똑같은 물의 비유지만 이번엔 물총을 생각해보자.
물총의 방아쇠를 당기면 처음에는 멀리 나가다가 점점 힘이 약해지면서 결국에는 코앞에 물이 떨어진다.
1차 전지가 바로 이와 같다. 전류의 사용량이 많아지면 급격하게 전압이 떨어지면서 필요한 전류를 보내지
못하게 되는 것이다.


이러한 특성 때문에 8개나 되는 배터리를 직렬 연결하여 전압을 12V로 높여도 순식간에 전압이 낮아져
모터를 제대로 구동시키는 못하는 상황이 된 것이다. 그러기에 일정시간 강한 힘을 필요로 하는 경우에는
2차 전지를, 그 중에서도 고방전 배터리라고 부르는 것들을 사용하게 된다. 이런 배터리들은 주로 RC
구동용으로 많이 사용되는데 더이상의 설명은 복잡해지므로 아래 링크로 대신한다.


http://tip.daum.net/openknow/38738178


또하나의 변수 - 전선


어쨌든 페이스북 아두이노 사용자 모임 회원분들의 도움과 다양한 검색질을 통해 배터리에 문제가 있다는 것을
확인한 후 비교적 방전률이 높다는 3.5V 3500mAh 18650 리튬-이온 배터리를 2개 구입하였다.
그런데 착각을 한 것이 리튬-이온 배터리라고 모두 고방전을 지원하는 것은 아니라는 것이다. 다만 고방전
배터리들은 보호회로가 없어 위험을 감수해야 한다. 어쨌든 내가 산 배터리도 지속적으로 3.4A 정도의 출력을
보장해 준다고 한다.


그리고 첫 테스트…리튬-이온배터리를 직렬로 연결하는 배터리 홀더에 장착한 후 로봇을 기동하였다.
아래 동영상에서 보듯이 일단 초기 구동이 꽤 기운차 보인다. 그리고 뒤에 설명하겠지만 보행 방식 변경을 위한
테스트도 움직임이 가벼워보인다. 그런데 막상 기존 보행 방식으로 구동을 하니 기존 일반 배터리 사용시보다는
나아보이나 여전이 불만족 스럽다. 그리고 동영상 마지막에서 보여지는 황급함…-.-
불나는 줄 알았다.





배터리 홀더를 스위치와 연결하고 스위치를 빵판과 연결하였는데 스위치와 빵판을 연결할 때 일반적인 아두이노
점퍼케이블을 사용을 하였더니 이 점퍼케이블이 전류를 버티지 못하고 타버린 것이다. 전류의 흐름이 전선의
길이와 두께에도 관련이 있다는 것을 몰랐던 것이다(물론 저항과도…). 일단 아두이노용 점퍼 케이블은 
5V 이하에서 사용을 해야 할 것 같다.


결국 기존에 넉넉하게 사둔 AA 배터리용 배터리 홀더의 전선을 잘라 스위치와 빵판을 다시 연결하였다.


한 고비를 넘기다.




이제 연기도 안 내뿜고 제법 무게도 버티면서 잘 나간다(뭔가 각도 조절이 잘못된 듯 2개의 다리를 너무 높이
쳐드는 것만 빼고…).


여전히 만족스럽지는 못하지만 더이상 하드웨어에 투자하기는 힘들 것 같다(만일 투자를 한다면 고방전을 지원하는 
니켈-수소 배터리와 전용 충전기 그리고 고출력 모터 4개 정도가 될텐데 최소 40만원은 들 것같다…ㅠ.ㅠ).
그래서 이후에는 소프트웨어적인 방법으로 보완을 해나가려고 한다. 


그 중 첫번째가 글 서두에 언급한 보행 방식의 변경이다. 


현재는 2개의 다리가 동시에 움직이므로 한번에 2개이 다리로 전체 무게를
지탱해야 한다. 그만큼 모터에 부하가 걸리는 것이다. 이 것을 한 번에 하나의 다리가 움직이는 방식으로 변경하면
동시에 무게를 지탱하는 다리가 3개가 됨으로써 부가가 경감될 것이다


다음으로는 기존 보행 방식을 그대로 쓰되 움직임을 줄이는 것이다. 현재는 모든 움직임이 45º 범위에서 움직이는데
이 각도를 30º 정도로 줄일 예정이다.


아무튼 이렇게 해서 일단 한고비는 넘긴 듯하다.
다음 시간부터는 프로그래밍을 통한 세부 조정에 대해 정리를 하겠다.
뭔가 무리인듯한 작업이었지만 나름 많은 것을 배워가고 있는데 만족을 느낀다.
한 번 제대로 만들어봐야겠다. ^^

반응형