[아두이노] Differential Wheeled RC카 만들기 #0 "주말 프로젝트 계획."

    1. 아두이노(Arduino)

    ko.wikipedia.org/wiki/아두이노

     

    아두이노 - 위키백과, 우리 모두의 백과사전

    위키백과, 우리 모두의 백과사전. 아두이노(이탈리아어: Arduino 아르두이노[*])는 오픈 소스를 기반으로 한 단일 보드 마이크로컨트롤러로 완성된 보드(상품)와 관련 개발 도구 및 환경을 말한다.

    ko.wikipedia.org

    (이건 덤)

    en.wikipedia.org/wiki/Differential_wheeled_robot

     

    Differential wheeled robot - Wikipedia

    A three-wheeled differentially steered robot A differential wheeled robot is a mobile robot whose movement is based on two separately driven wheels placed on either side of the robot body. It can thus change its direction by varying the relative rate of ro

    en.wikipedia.org

    그냥 형식상으로 링크를 참조했다.

    그 이유는 나 본인조차도 위키백과는 2줄 이상 읽으면 죽는 난독증이 있기 때문이다.

     

    우리는 바쁜 현대인들이기에 첫 줄만 보자면,

    "아두이노는 오픈 소스를 기반으로 한 단일 보드 마이크로 컨트롤러로 완성된 보드(상품)와 관련 개발 도구 및 환경을 말한다."

    오픈 소스 : 공짜로 남들이 만든 프로그램을 사용할 수 있다.

    완성된 보드(상품) : '완성' = 조립할 것이 없음 = 돈만 주고 사면 된다.

     

    즉, 돈 주고 사면 완성된 하드웨어가 집 앞까지 배달되고, 초등학생일지라도 스마트폰과 인터넷만 있다면 오빠언니형님누나들이 공들여 작성한 프로그램을 복붙해서 사용할 수 있다는 말이다.


    2. 주말 프로젝트

    지금 회사에서 실험중인 지상 rover의 구동 방식이 바로 이 differential motor drive 방식이다.

    Pixhawk라는 아주 고오급진 컨트롤러를 사용하기 때문에 특별히 손을 댈 필요가 없다.

    대부분의 RC카는 위의 왼쪽 그림처럼 전/후진을 담당하는 고속 DC모터(혹은 기어/감속 모터)가 1개, 방향을 조절하는 서보 모터 1개로 구성되어 있을 것이다.

    이러한 경우 사실 컨트롤러도 필요 없고 그냥 RC 송/수신기의 바인딩(연결 혹은 페어링)을 마친 후 RC 수신기의 신호를 바로 모터나 모터 드라이브에 연결해도 된다.

    하지만 오른쪽처럼 좌/우 모터를 다르게 제어해야 하는 경우, MCU(아두이노)에서 RC 수신기로부터 전/후진 입력과 좌/우 입력을 따로 받아 적절한 로직으로 MIXER를 제작하여 각각의 모터에 제어 명령을 전달해야 한다.

     

    이 일련의 행위를 그동안은 pixhawk가 대신 해주었는데 문득 실제 알고리즘이 궁금하였다.

    지금까지는 pixhawk가 해줬지만, 언젠가는 pixhawk가 아닌 라즈베리 파이나 아두이노로 직접 프로그램을 작성하여 구동해야 할 순간이 찾아올 것이다.

    그 때를 대비하여 간단하게 먼저 짜보고 싶었다.

    "어차피 주말에 쉴거, 나한테 득이되고 영양분있는 무언가를 해 보자!"

    "0.1%라도 나의 가치를 키울 수 있는 행위를 하자."

    라는 마음으로 단기 주말 프로젝트를 진행하기로 마음먹었다.

     

    어차피... 주말에 집에 있으면... 망겜 히오스나 하고 있겠지...

    5년 전 일상이 학원 알바와 게임만 있었던 시절


    3. 준비물 (내돈내산)

    물품은 대부분 '디바이스마트'나 '엘레파츠'를 이용하는데, 이번에는 그냥 디바이스마트 한 군데에서 모두 구매할 수 있었다.

    사실 물품 구매하는데 큰 노력을 기울이지 않았다.

    그래서 가끔 충동구매를 할 때가 있다.

     

    3.1 필수 부품

    먼저 필수 부품만 보면 아래와 같다.

    3.1.1. 아두이노 Uno 정품 보드

    잘 모른다면 정품 보드를 사는 것이 정신 건강에 이롭다.

    RC카를 구동시킬 컨트롤러가 되겠다.

     

    3.1.2. 기체 섀시(Chassis)

    와! 단돈 4300원! (VAT 별도ㅎ)

    부가세 포함하면 스타벅스 아메리카노 Grande보다 100원 비싸다.

     

    3.1.3. 모터 드라이버

    가장 싸면서 2채널이길래 골랐다.

    2천원에 방열판은 ㅇㅈ이지.

     

    3.1.4. RC 조종기(RC Transmitter) 및 수신기(RC Receiver)

    FLY SKY사의 FS-IT3C라는 제품이다.

    수신기는 같은 회사의 FS-A3다.

    나는 이 제품을 원래 갖고 있어서 돈을 들이지 않았는데, 국내에서 검색해보니 수신기 포함 약 8만 5천원정도 하는 것 같다.

    송신기와 맞는 수신기는 FS-A3라는 제품이다.

    이 제품들은 해당 제품만의 고유한 특성이 있기 때문에 나중에 채널이 더 많은(최소 6채널 예상) 송/수신기를 구매할 예정이다.

     

    3.2 선택 부품

    다음은 옵션이다.

    3.2.1 거리 센서

    거리 센서를 찾다 보니 가장 싼 3200원부터 비싼 것은 2만원까지 있던 것 같다.

    나는 가장 싼것, 중간인 만원짜리를 각각 2개씩 구매했다.

    불규칙한 표면에서 센서값이 얼마나 정확한지, 흔들리는지 궁금했었다.

     

    3.2.2 릴레이

    동일한 4채널짜리 아두이노 릴레이 모듈이 2천원대였던 것 같다.

    그냥 하얀게 예뻐서 샀다.

     

    3.2.3 DC 전압 변환기(강하형)

    사무실에는 Li-po 4셀짜리가 가장 낮은 전압(약 16V)이었던 것 같은데 아두이노의 입력 전원은 9V(권장), 동작 전원은 5V이기 때문에 배터리의 전원을 낮춰 줄 녀석이 필요했다.

    FND가 예뻐서 샀으며, 없는 제품이 1~2천원대였던 것 같다.

     

    3.2.4 브레드보드

    개당 700원 ㅇㅇ.

     

    3.2.5 사치품

    솔직히 전부터 한번 사보고 싶었다.

    Cytron사의 Uno 호환 보드로, 디지털 I/O pin에 LED가 달려 있어 간지가 난다.

     

    정리하자면, 필수 제품들만 사더라도 약 12만원이다.

    나는 RC 조종기와 수신기가 있었으니 약 3만원.

    옵션은 용도에 따라 다르므로 (나의 충동 구매를)계산하지 않겠다.


    4. 조립

    장소 협찬 : 사무실

     

    모터를 고정 시키는 브라켓이 솔직히 브라켓이라고 하기도 민망할 정도로 고정이 안되서 좀 삐걱거렸다. 나중에 글루건으로 떡칠해야 겠다.
    모터 드라이버의 방열판 높이가 은근 높고, 단자들이 덮개에 가려지면 불편할까봐 덮개 아크릴을 잘라냈다.
    모터 드라이버와 아두이노를 연결하는 선만 연결하면 된다. 흰색, 노란색, 파란색 선이 RC 수신기에서 오는 신호선이다.
    일단 선을 대충 연결한 뒷 모습.
    일단 선을 대충 연결한 앞 모습.

    아침잠을 충분히 자고 일어나 점심을 든든히 먹고 출근하니 2시였다.

    생각보다 조립에 너무 많은 시간을 투자하였던 것인지, 첫 주는 조립 및 RC 수신기 신호만 확인하고 끝냈다.

    아크릴을 자를때 생각보다 많이 잘라내어 릴레이 모듈을 부착할 곳이 마땅치 않다...

    세로로 붙인 아두이노를 다시 가로로 붙여 빵판과 같이 셰시 뒤로 더 빼놓으면 앞 범퍼쪽에 공간이 나올 것 같다.

    조립 과정은 사진으로 대체하고 프로그램 내용은 추후 업데이트 할 예정이다.

    댓글

    Designed by JB FACTORY