2010년 10월 7일 목요일

[BTPT 2/3] 아두이노 모터 컨트롤 보드 만들기

아카데미 RC 탱크에는 기본으로 유선 조정기 (아래 그림에서 왼쪽 검은 뭉치)가 포함되어 있습니다.



유선 조정기는 모터마다 있는 접점 두 개 씩을 기계적으로 스위칭 할 수 있게 네 선으로 이루어져 있습니다.


건전지(AA*2)까지 조정기에 들어가기 때문에, 탱크의 몸체에는 모터를 제외하면 많은 부분이 빈 공간으로 남아 있습니다. 위 사진에서 바디에 올려둔 건전지 홀더는 크기를 가늠하기 위한 것으로 기본 포함 부품은 아니에요.


이 빈 공간에 아두이노를 올려 무선 조정을 해 보도록 하려고 합니다.


기본으로 들어있는 기어박스는 토이모터라고 부르는 3V DC 모터가 들어있습니다. 앞 포스트에서 썼던 것 같은 묵직한 로드는 필요 없을 것 같아 가장 싼 모터 드라이버 IC인 ba6208을 사서 테스트 해 보았습니다. 좌 우 채널에 각각 드라이버가 하나씩 들어가야 겠죠.




영 시원찮게 돌기에 기어박스 불량이 아닌가 하고...(아닙니다) 일단 계속 진행 합니다.


무선 통신을 위해 위드로봇의 블루투스 시리얼 모듈 myBluetooth-EX를 장만했습니다. 이 모듈은 속도가 고정된 대신 설정이 필요 없고, 아두이노의 기본 전압인 5V에 그냥 꼽아도 잘 동작합니다. (보통 무선 모듈들은 3.3V CMOS라 변환 회로가 필요해요)


해서 전체적인 구상은 아래와 같이 되었습니다.



단순한 구성이지만 기존 아두이노 보드는 탱크의 몸체에 들어가기 너무 크기에, ATmega8 칩을 사용해 필요한 기능을 넣어 다시 보드를 만들었습니다. 보드 뜨고 알게된 오류를 수정한 흔적이 있습니다. :)




또한 건전지 3V를 5V로 변환하기 위해 예전에 다뤄본 TL499ACP를 사용해 DC2DC 승압 회로도 포함시켰습니다.


TL499ACP의 최대 출력 A는 100mA인데, 다행히 myBluetoothEX가 사용하는 피크 전압 (약 50mA)을 충분히 커버할 수 있네요.


지그비(약 150mA)나 와이파이(약 500mA)로 갔으면 좃2the망 할 뻔 했다는.


블루투스 장치를 거의 사용하지 않아서 좀 애매한 무선 통신이 아닌가 했는데 전원 소모가 이렇게 작으니 모바일 기계에 표준 장창되는게 당연하게 느껴지는 대목이었습니다.


건전지 홀더를 AAA*4로 바꾸고, 다음과 같이 탱크 몸체에 적절하게 배치 가능하다는 희망이 보였습니다..




헌데.. 모터 드라이브 테스트에서 빌빌대던게 ba6208 때문이더군요.. (12V 모터에 적합) 싸구려 모터에 싸구려 드라이브라는 가정이 틀렸네요. 저전압 모터용 드라이브 IC인 lb1630을 다시 장만하고, 보드를 다시 뜨기는 싫어서(어짜피 모터 드라이버 IC는 전원2핀 입력 2핀 출력 2핀 이니까) LB1630-to-BA6208 보드를 만들었습니다.



 



BA6208을 뽑고 장착. 다행히 몸체의 높이를 넘지 않았네요. 



미리 마련해둔 ICSP를 사용해 Atmega8용 아두이노 부트로더를 심어 주었습니다.


이것으로 탱크 준비는 끝. 이제 조종기로 넘어가겠습니다. 


댓글 25개:

  1. 안녕하세요.
    재미있는걸 만드시고 계시네요.^^
    주제와 관련이 없지만, 딱히 질문드릴 공간이 없어서 여기 적어봅니다.
    용서해주세요.
    PIC 마이컴이 USB로 PC와 연결되고 있습니다.
    그런데, 여기에 USB2불루투스 동글(PC용)을 연결하면
    다른 불루투스 기기와 통신이 될까요 ?
    아둔한 질문일줄 느끼지만, 한번 여주어 봅니다.
    아니면 혹시 AVR or PIC 등의 USB 를 불루투스로 다른 기기와 통신하려면
    어떤 방법이 있을까요 ?

    답글삭제
  2. YJ 님/USB는 게스트끼리 연결할 수가 없어요. PIC쪽의 USB도 (아마도 Serial2USB를 통해) 나가는 방향이고, 블루투스 동글의 USB노 나가는 방향이니까요. (저도 BT동글이 모듈에 비해 훨씬 싸서 가능할까 생각해 봤드랬습니다 ^^) PIC/AVR를 USB호스트로 만드는건.. 어우... 엄두가 안나네요 :)
    마이컴에 BT를 달려면, 탱크 예제처럼 AVR이나 PIC의 RX/TX에 BT2Serial 모듈을 연결하는게 가장 간단한 방법입니다.

    답글삭제
  3. 수아파파님
    감사합니다.
    USB 게스트라... 배울게 많군요.^^

    답글삭제
  4. 글 잘읽었습니다 핸드폰으로 조종하는 RC 참 재밌겠네요!
    한가지 궁금한게 있는데 회로도와 아트워크 ,sch, .brd 는 어떤 프로그램으로 읽어야 하나요?

    답글삭제
  5. 안녕하세요 제가 학교에서 자바로 어플을 만들어서 파이오니아를 제어하려고 하는데 자바 사용법을 잘 몰라서요 오픈소스 받으신거라 수아파파님이 작성한 코드 설명좀 간단히 해주시면 안될까요?

    답글삭제
  6. 호로 님/ 회로도와 아트워크는 eaglecad 파일입니다. :)
    건대마씨 님/ 파이오니아가 뭐죠?

    답글삭제
  7. 자작하신 보드에 도포용액이 부식방지액 인거 같은데요
    어떻게 구하나요?

    답글삭제
  8. 궁금 님/ 우레탄 코팅 스프레이 입니다. 전자부품 매장에서 부품살 때 같이 샀습니다. http://goo.gl/4CEU8

    답글삭제
  9. 수아파파님 블로그 보면서 뜨문뜨문 만들어보고 있는데.... 거의 진도가 거북이 걸음입니다..ㅎㅎ 블루투스 모듈 장착해서 해보려고 하는데 모터 조절이 안되고 그냥 돌아가기만 하네요.. 블루투스 속도가 115.2kb 속도짜리를 구매해서 그럴까요? 수아파파님은 38.4kb속도로 사용하신거죠?....

    답글삭제
  10. 아! 38400을 115.2kb 이면 115200으로 바꿔줘야하는군요! 세상에... 질문 올리고 또 찾아보니 이제 발견했네요..참.. 모르겠어서 질문했는데- 유레카! ㅎㅎ

    답글삭제
    답글
    1. 블투모듈 넉넉하게 주문하시면 구매 가능할까요?
      가능하시면 메일 부탁드려요 ^^

      삭제
  11. 수아파파님의 글들을 보고 아두이노에 입문하게된 1인입니다.
    이제 막 처음 하는 거라서 아는 게 별루 없어요;;
    특히... 스펙을 잘몰라서 수아파파님이 올려놓으신대로 구입을 하는데.. myBluetooh-EX 모듈을 사려고 봤더니 품절이네요..ㅠ 벌써 1주일째..ㅜㅠ
    이상하게 싼것도 있고 비싼것도 있고 그런데 혹시나 아두이노에 연결이 안될지, 스마트폰과 연동이 안되는 거 아닌지...싶어서.. 물론 입력도 5V인지 어떤지도 모르겠고.. 고를수가 없어요.
    myBluetooh-EX 모듈을 대체할만한 거 없을까요? 가격도 싸고, 공대출신도 아닌 극심한 초보에게도 해볼만한... 부탁드려요ㅠㅜ

    답글삭제
  12. 블루투스 시리얼이나 SPP로 검색해 보시면 찾으실 수 있습니다.

    탱크를 하나 더 만드는데, 아래 모듈을 사용할 생각입니다. 가격이 참 착하죠.
    DX는 배송이 2주 이상 걸린다는 것 말고는 단점이 없어요. :)

    http://www.dealextreme.com/p/wireless-bluetooth-rs232-ttl-transceiver-module-80711

    답글삭제
  13. 수아파파님.. atmega8 보드만드는방법은 없나요...? 아두이노 본체가 겨우 탱크속에 들어가서

    블루투스도 같이 끼워넣으려니까 빵판하고해서 무지막지하게 커지네요...

    도움 부탁드립니다..

    답글삭제
  14. Atmega 칩에서 부터 아두이노 보드를 만드는 방법은, 제 HUMA보드나 BTPT 처럼 아두이노 호환 보드의 회로를 참고해 자신만의 보드를 만드시면 됩니다. 경험해 보니 재미도 있고 배우는 바도 많지만 결코 싸지 않은 과정입니다 참고하세요 ;)
    크기가 문제라면, 아두이노 나노를 사용하시는게 현실적인 해결책입니다.

    답글삭제
  15. 네 도움이 되었습니다. 감사합니다.^^

    수아파파님께서 만드신 미니보드는 포기해야겠네요..ㅜㅜ

    그래서 그냥 my블루투스 사고 아두이노 스타터키트 보드로 만들려고합니다.(크기가 크더라도..ㅜ)

    그런데 궁금한 점이 있다면.. 이것둘을 연결하는 회로도를 잘 모른다는 겁니다...

    rx tx 교차는 그 내부 회로 보고 교차되서 연결은 하겠는데 제가 파란꼬리님 블로그에 들어가보니까 상당히 복잡하게 결선이 되있더라구요.. 빵판에 그림보고 따라하고픈데 .. 이제 입문하는 초보라 보기가 어려워서 또다시 막혔네요..

    수아파파님 마지막 사진에 보면 상당히 간단하게 결선되있어서 도전하려 하였으나.. 막 시작하는 초보라 아두이노 스타터키트로 보드스케치 소스로 모터와 블루투스가 동작하는지 정도만이라도 성과가 있어야 하기에.. 글남깁니다.. 도와주세요...ㅜ 바쁘신데 죄송함니다...

    답글삭제
  16. 아참 그리고 통신속도는 얼마로 하셨는지...?

    답글삭제
  17. RX, TX를 교차해서 연결해야 하는 것 외에 특별히 주의해야 할 부분은 없던 것으로 기억합니다. 구성 해 보시고 안 되시면 구성한 내용을 회로도로 -어려우면 사진으로- 그려 물어봐 주세요.

    통신 속도는 myBluetoothEx -속도가 고정이며- 모듈의 경우 모듈에 적혀 있습니다. 모듈을 구입하실 때 속도를 선택하셨을 겁니다. 적힌 속도로 설정하면 됩니다.

    답글삭제
  18. 네 감사합니다.^-^
    louch master로 그린 회로도가 있어서 그것보고 따라하면 될꺼같네요..
    (그런 스타터키트가 아직안옴...ㅜㅜ 하지만 ..ㅋ 기대..ㅎㅎ)

    아참 어플리리케이션에 관한 질문인데요...ㅎ

    보통 안드로이드 apk로 빌드되어서 핸드폰에 깔면 바로 되던뎅
    위에 링크걸어놓은곳에 보니까 너무 복잡해서.. 혹시나 apk파일을 갖고 계시면..
    제 메일로 보내주시면 안될까요....ㅠㅡㅠ
    신세지능김에 확실히 져서 다음에 꼭 도움되는 사람이 되겠슴니당..(--)(__)꾸벅..v

    답글삭제
  19. apk 안 가지고 있습니다. 공개 소프트웨어는 딱 공개된 부분 까지만 공짜에요. apk 빌드에 비용을 지불하실 생각이 있으시면 다시 말씀해 주세요. ;)

    답글삭제
  20. 그 공짜인 부분을 빌드해야 하는데.. 제가 방법을 모릅니다...
    .비용이 얼마정도인가요?

    답글삭제
  21. 저도 시간이 남거나 재미가 있으면 그냥 해 드릴 수 있겠는데,
    전 이미 해 본 거라 흥미도 없고 남는 시간에는 수아랑 케이브스토리를 하는게 더 유익해서요...

    그럼, 비용 말씀드리겠습니다. :)

    우선, 안드로이드가 프로요라면 답이 없습니다. 저한테 프로요 디바이스가 없어서 빌드는 되어도 테스트 해 볼 방법이 없어요.

    안드로이드가 진저브래드라면, apk 빌드 비용은 주진우 기자가 쓴 "주기자" 한 권 입니다. (먼저 읽은 후에 보내주셔도 됩니다)

    안드로이드가 ICS이거나, 왠지 위에서 받은 apk가 실행이 안되서, 소스 수정이 필요한 경우 비용은 "X-BOX 키넥트 스타워즈 세트" 입니다. 비싸죠.. 비쌉니다.

    사실, 안드로이드 빌드에 필요한 지식들은 웹에 널리고 널렸습니다. 그러니까, 직접 익혀 보시길 권해 드립니다. BTPT 앱은 그냥 "아! 되네!" 정도에서 멈춘 상태라 개선할 부분이 정말 많습니다.

    제 블로그에서 지신 신세는, 물질적인 보답이 아니더라도, BTPT 코드를 개선해 제게 패치를 보내주시는 방법으로 갚으시면 됩니다. 다음에 언젠가 꼭 최대한 님에게 도움을 받게 되었으면 좋겠네요. :)

    답글삭제
  22. 안녕하세요^^ M1A1 전차를 사면 그 안에 모터 홀더라고 하나요?? 저 모터랑 기어 부분이 들어있나요?? 아니면 저 부분을 모터드라이브라고 하나요??ㅠ

    답글삭제
  23. 모터랑 기어가 들어있구요. 보통 기어박스라고 합니다.
    모터드라이버는 모터에 필요한 전류를 땡겨 주는 IC나 회로를 말 합니다.

    답글삭제
  24. 안녕하세요. 저는 산업디자인 공부하는 학생인데, L298N stepper motor driver 사용관련해서 도움을 요청하고자 이렇게 글 남깁니다. 하드웨어는 워낙 입문인데다가 여러가지 datasheet을 봐도 잘 이해가 안 가더라구요. 와이어링은 문제 없이 다 한 것 같고, 아두이노에서도 코드 올려놓은뒤에 업로딩 하고, 시리얼 모니터로 high low 확인하고 드라이버 보드에서도 불빛이 들어오는 걸 확인 했는데 왜 모토는 돌아가지 않는 건지 납득이 가지 않네요. 친구들 말로는 와이어 선들과 보드 접촉이 잘 안되서 그럴 수도 있다고 하는데, 제가 보기에는 접촉들은 문제가 없어 보이는 데 도대체 어떻게 문제를 해결해야 할까요? 질문이 좀 엉성하더라도 이해해 주시고, 만약 도와주실 수 있으면 제가 사진도 찍어서 여기 올려놓겠습니다.

    답글삭제